Einführung in Subnetting / IP-Berechnung
=========================================
Anfangs noch ein paar Übungsbeispiele unter: http://www.eex-online.de/informatik.html
Das Dokument zum herunterladen: Einführung in Subnetting
Rechner im Internet werden über IP-Adressen angesprochen, die eindeutig sind.
Eine IP-Adresse (IP) ist eine 32-bit-Zahl und enthält sowohl die Netzkennung als auch die Hostkennung eines Rechners.
In der kürzeren Dezimalschreibweise sieht eine IP zum Beispiel aus wie „192.168.0.1„, jede der 4 durch Punkte getrennten Zahlen repräsentiert eine 8bit-Binärzahl.
Sie wird auch als Oktett bezeichnet und kann Werte zwischen 0 (binär 00000000) und 255
(binär 11111111) annehmen.
Die zur IP gehörende Subnetmaske (ebenfalls 32bit) gibt an, welcher Teil der IP Hostkennung und welcher Netzkennung ist. Sie ermöglicht die Teilung eines Gesamtnetzes in mehrere kleinere Teilnetze.
Am besten ist dies in der Binärdarstellung der Netmask zu sehen :
Die Netzkennung ist (von links nach rechts betrachtet) der Teil der IP, bei dem die Bits der Netmask 1 sind.
Als Beispiel betrachten wir die häufig in privaten LANs genutzte IP 192.168.0.1 mit einer typischen Subnetzmaske von 255.255.255.0.
//Darstellung 1 : Dezimal- und Binärschreibweise von Subnetzmasken
IP(dez) : 192 168 0 1
SNM(dez) : 255 255 255 0
SNM(bin) : 11111111 11111111 11111111 00000000
|<——– Netzkennung ——————->| |<– Hostkennung –>|
Wie anhand der Darstellung zu sehen ist, befindet sich der Host im Subnetz 192.168.0. und
ist hat die erste Hostadresse in diesem Netz.
Da eine Subnetzmaske definiert, wie viele Bits zur Adressierung des Hosts, und wie viel zur
Adressierung des Netzes zur Verfügung stehen, legt sie die maximale Anzahl der Hosts und Netze
Fest.
Je mehr Bits für die Hostkennung verwendet werden, desto weniger stehen für die
Netzkennung zur Verfügung. Der gesamte IP4-Adressraum ist zwar relativ gross, aber begrenzt.
Auch die CIDR-Darstellung der Netzwerkmaske lässt sich an obiger Darstellung gut illustrieren.
Es handelt sich hierbei um eine Kurzdarstellung der Netzmaske, die die Anzahl der auf 1 gesetzten
Bits in der Subnetzmaske angibt. Ihr wird meist ein Slash („/“) vorangesetzt, so dass man an Stelle
unserer Darstellung
„IP : 192.168.0.1, SNM : 255.255.255.0“
in CIDR-Schreibweise auch „192.168.0.1/24“ schreiben kann. Dies gibt an, das die Subnetzmaske
24 Bits hat, die auf 1 gesetzt sind (siehe Darstellung 1).
Früher teilte man die IP-Adressen in Klassen ein, je nach Subnetzmaske. Gebräuchlich waren
die Subnetzmasken 255.0.0.0 („Klasse-A-Netze„), 255.255.0.0 („Klasse-B-Netze„) und
255.255.255.0 („Klasse-C-Netze„). Unsere IP 192.168.0.1/24 wäre also ein Rechner in einem
Klasse-C-Netz.
Man Beachte: Es spricht nichts dagegen, Subnetzmasken wie /21 oder /7 zu benutzen, bei denen
die Trennung von Host- und Netzteil in dezimaler Schreibweise nicht zwischen
den einzelnen Oktetten liegt. Dies war aber damals nicht notwendig und daher nicht vorgesehen. Lediglich /8, /16 und /24 Netze (also Klasse A,B, und C) waren in Benutzung, man spricht daher von diesem Schema als klassenbasierte IP-Adressierung.
Man teile die das Internets also in Klasse A, B, und C-Netze auf und definierte
Adressbereiche für die einzelnen Netztypen :
klassenbasierte IP-Adressierung
Adressklasse | Netzbits | Hostbits | Adressbereich* | Anzahl Netze | Anzahl Hosts | Subnetmask |
A | 8 | 24 | 0- 126 | 126 | 16777216 | 255.0.0.0 |
B | 16 | 16 | 128- 191 | 16384 | 65536 | 255.255.0.0 |
C | 24 | 8 | 192- 223 | 2097152 | 256 | 255.255.255.0 |
* erstes Oktett der IP in Dezimalschreibweise
Man Beachte : Es spricht ebenfalls nichts dagegen, dass ein Rechner die Adresse
IP : 10.11.12.12 SNM : 255.255.255.0 besitzt, obwohl das erste Oktett der Definition nach ein Klasse A Netz sein sollte und somit eine SNM von 255.0.0.0 habe sollte. Dies widerspricht lediglich der damaligen Definition, ist aber möglich.
Beim Betrachten von Tabelle 1 ist auffällig, dass einige Adressbereiche nicht aufgeführt sind.
Diese Bereiche sind für besondere Aufgaben reserviert. Siehe dazu Anhang B.
Jeder, der öffentliche IP-Adressen benötigte, bekam ein (oder auch mehrere) Adressbereiche zugeteilt – je nach Bedarf an IP-Adressen ein Class-A, -B oder -C-Netz. Bald wurden die ~ 4 Milliarden IP-Adressen knapp, und es wurden Massnahmen zur Bekämpfung des Mangels eingeführt.
NAT (network address translation, Nutzung einer gemeinsamen öffentlichen IP durch viele Rechner
mit privaten IPs hinter einem Router) und die klassenlose IP-Adressierung das Ergebnis.
Man bezeichnet häufig Subnetze, die keine der SNMs von /8, /16 oder /24 haben, als klassenlose
Subnetze. Durch klassenlose Adressierung lässt sich die Anzahl der maximalen Hosts pro Subnetz
besser dosieren, weniger IP-Verschwendung ist die Folge.
Hinweis:
Eine längerfristige Lösung war die Einführung von IPv6, das die Adresslänge von 32 auf 128 Bit erhöht, und damit natürlich die Anzahl der zur Verfügung stehenden IP-Adressen dramatisch erhöht.
Bis heute ist aber IPv4 die mit Abstand am weitesten Verbreitete Adressierungsmethode, IPv6-Testnetze existieren aber seit geraumer Zeit, erste Produktionsumgebungen mit IPv6 bestehen ebenfalls.
Berechnen von Subnetzeigenschaften – kommentierte Beispiele
============================================================
Beispiel 1:
Gegeben sind eine IP und die dazugehörige Subnetzmaske in Dezimalschreibweise. Berechnen Sie die Netzwerkadresse des zugehörigen Subnetzes, dessen Broadcast-Adresse und die Anzahl der Hosts, die maximal in diesem Subnetz untergebracht werden können.
Gegeben: IP 113.8.66.42, Netmask 255.255.255.240
Schritt 1 -Umwandlung der dezimalen Netmask in CIDR-Schreibweise
Die dezimale Darstellung der Netmask ( hier z.B. 255.255.255.240) ist dem Verständnis
der CIDR-Schreibweise eher hinderlich. Also wird die SNM zuerst in binary umgewandelt,
daraus kann man die CIDR einfach ablesen:
dezimal 255 255 255 240
bin 11111111 11111111 11111111 11110000
Anzahl Bits 1 : 8 + 8 + 8 + 4 = 28
CIDR /28 –> Die CIDR ist folglich 28.
Schritt 2 –maximale Anzahl Hosts pro Subnetz bestimmen
Mit Hilfe der CIDR kann die maximale Anzahl von Hosts berechnet werden, die in jedem einzelnen der entstehenden Subnetzte untergebracht werden können :
Eine IP-Adresse hat 32 Bit, eine CIDR von 28 bedeutet, dass 28 Bit davon Netzkennung sind.
Folglich bleiben 4 Bit für die Hostkennung übrig. Wir könnten also theoretisch 2^4 Hosts pro Subnetz unterbringen. Die erste IP des Subnetzes ist jedoch als Netzwerkadresse des Subnetzes selbst reserviert, die letzte IP eines Subnetzes dient den Hosts des Subnetztes als Broadcast-Adresse. Daher müssen diese beiden Adressen von der theoretisch maximalen Anzahl subtrahiert werden.
Es ergibt sich in unserem Fall:
32 – 28 = 4 /* (Anzahl der Bits der IP-Adresse) – (CIDR) = (Anzahl Bits der Hostkennung) */
2^4 = 16 /* 2 hoch (Anzahl Bits der Hostkennung) = theoretische Maximalanzahl der Hosts */
16 – 2 = 14 /* 2 subtrahieren wegen Netzkennung und Broadcast */
Man kann folglich 14 Hosts pro Subnetz adressieren.
Schritt 3- Netzadresse des Gesamtnetzes bestimmen, in dem sich die IP befindet.
Die in Schritt 1 bestimmte CIDR zeigt, dass die von links gesehen ersten 28 Bit der IP-Adresse die Netzkennung sind und die von rechts gesehen ersten 4 Bit die Hostkennunng.
Das Umwandeln der IP in das Binärsystem ergibt folgendes:
IP (dezimal): 113. 8. 66. 42
IP (binary): 01110001 00001000 01000010 00101010
Um die Netzwerkadresse zu bestimmen, beachten wir nur den Teil der IP, bei dem die SNM auf 1 gesetzt ist :
SNM (binary): 11111111 11111111 11111111 11110000
Die Netzkennung lautet folglich in binary :
01110001 00001000 01000010 00100000
Beachten Sie, dass die letzten 4 Bits Null sind, da die Subnetzmaske an diesen Stellen 0 ist, und diese Zahlen folglich nicht zur Netzkennung, sondern zur Hostkennung gehören!
Das Umwandeln ins Dezimalsystem ergibt:
113. 8. 66. 32
Folglich ist die Netzkennung 113.8.66.32.
Wenn man nun prüfen, will ob zwei IP Adresse im gleichen Subnetz sind, so muss man einfach die jeweilige IP Adresse binär mit der Subnetmask binär AND verknüpfen. Wenn beides mal das gleiche raus kommt-> so sind sie im gleichen Netz.
Schritt 4 – Bestimmen der Schrittweite der einzelnen Subnetze
Zuerst ist das erste Oktett der Subnetzmaske zu bestimmen, dass nicht komplett aus Bits besteht, die auf 1 gesetzt sind. In der Dezimalschreibweise also von links nach rechts das erste Oktett, dass nicht 255 lautet.
In unserem Fall ist es das vierte Oktett, es lautet ‚240‘.
256 – 240 = 16
Die Schrittweite ist also 16.
Schritt 5 – Bestimmen der Start- und End-IP-Adressen der einzelnen Subnetze sowie deren Broadcast
Die Netzkennung des ersten Subnetzes lautet 113.8.66.32 (siehe Schritt 3).
Es wird nun das erste Oktett der IP benötigt, in dem die Hostkennung beginnt (also das von links gesehen erste, in dem die Subnetzmaske nicht 255 lautet). Dies ist in unserem Fall das vierte Oktett.
Nur dieses betrachten wir im Folgenden :
Die Netzkennung des ersten Subnetztes lautet im vierten Oktett 32, da die Schrittweite 16 beträgt (siehe Schritt 4), beginnt das nächste Subnetz bei 48, das darauf folgende bei 64, und so weiter.
Daraus ergeben sich die IP-Adressen in den jeweiligen Subnetzen – sie liegen zwischen den Netzkennungen der SUbnetze. Die Broadcastadresse ist jeweils die letzte IP vor der Netzkennung des nächsten Subnetztes. Es ergibt sich in unserem Fall:
Subnetz 1
Netzkennung: 113.8.66.32
IP-Bereich: 113.8.66.33 – 113.8.66.46
Broadcastadresse: 113.8.66.47
Subnetz 2
Netzkennung: 113.8.66.48
IP-Bereich: 113.8.66.49 – 113.8.66.62
Broadcastadresse: 113.8.66.63
Subnetz 3
Netzkennung: 113.8.66.64
IP-Bereich: 113.8.66.65 – 113.8.66.78
Broadcastadresse: 113.8.66.79
.
und so weiter
Damit sind wir fertig. Unser Host mit der IP 113.8.66.42 liegt im Subnetz 1, die weiteren Subnetze hätten wir nicht berechnen müssen, zur Verdeutlichung ist es hier aber geschehen.
Anhang
=======
Anhang A – Potenzen von 2 in dezimal und binary
————————————————
Das flüssige Rechnen mit Potenzen von 2 im binären Zahlensystem ist für IP- und Subnetzberechnungen sehr hilfreich. Die folgenden Werte sollten bekannt sein.
2^7 | 2^6 | 2^5 | 2^4 | 2^3 | 2^2 | 2^1 | 2^0 | |
dezimal | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
binary | 10000000 | 01000000 | 00100000 | 00010000 | 00001000 | 00000100 | 00000010 | 00000001 |
Addiert | 128 | 192 | 224 | 240 | 248 | 252 | 254 | 255 |
Addiert | 10000000 | 11000000 | 11100000 | 11110000 | 11111000 | 11111100 | 11111110 | 11111111 |
Anhang B – für besondere Aufgaben reservierte Adressbereiche
————————————————————-
1. loopback – 127.0.0.1
Das gesammte Netz mit der Kennung 127.0.0.0 ist nicht verfügbar, da 127.0.0.1 als sogenannte Loopback-Adresse definiert ist – jeder Rechner kann sich selbst unter dieser Adresse ansprechen und löst diese meist in den DNS-Namen ‚localhost‘ auf.
2. private IP-Bereiche
Als privat definierte Adressbereiche werden im Internet nicht geroutet und können somit problemlos von jedem in privaten Netzwerken verwendet werden, ohne sich um die Beschaffung einer öffentlichen IP kümmern zu müssen.
Hinweis:
Rechner mit IPs aus diesen Adressbereichen können nur über Router, die NAT ausführen, ans Internet angeschlossen werden.
Folgende Adressbereiche sind als privat definiert :
10.0.0.0 bis 10.255.255.255 ( Class A )
172.16.0.0 bis 172.31.255.255 ( Class B )
192.168.0.0 bis 192.168.255.255 ( Class C )
3. diverse für Testzwecke reservierte Adressbereiche
Quellen
http://it.rcmd.org/networks/subnetting/subnetting.txt