| Die Artikel Subnetz und Netzmaske überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Bitte äußere dich in der Diskussion über diese Überschneidungen, bevor du diesen Baustein entfernst. Equinox 21:06, 1. Mai 2008 (CEST) |
Als Subnetting bezeichnet man ein Verfahren, um Netzklassen in kleinere Teil-Netze aufzuteilen. Es wurde 1985 eingeführt, 1992 durch Supernetting erweitert und durch Classless Inter-Domain Routing 1993 abgelöst.
Das Ziel des Subnettings war es – wie in RFC 940 beschrieben – die Netzklassen besser aufteilen zu können. Die statischen und relativ großen Netzklassen ließen sich nur umständlich in einzelne Segmente aufteilen und führten zu einer Vielzahl unterschiedlicher Lösungswege. Um das Ganze zu standardisieren und zu vereinheitlichen, wurde 1992 das RFC 950 mit einem Entwurf zum Subnetting veröffentlicht.
Ein weiteres Problem stellte zu dieser Zeit auch die Einschränkung des Broadcast-Traffics dar, welches durch kleinere Subnetze minimiert werden konnte.
Durch die bitweise Verarbeitung über ein logisches Und entstehen spezielle Semantiken, die eingehalten werden müssen. Dadurch, dass diese Semantiken die möglichen Anfangs- und Endadressen der Adressbereiche stark einschränken, vereinfacht sich gleichzeitig das Ganze jedoch ungemein und erhält eine feste Struktur.
Inhaltsverzeichnis |
Die Abtrennung des vom Subnetz erfassten Bereichs erfolgt mittels bitweiser Maskierung eines bestimmten Teils der IP-Adresse durch die Subnetzmaske. Dadurch erhält man aus einer beliebigen Adresse das Subnetz, zu dem die Adresse unter Annahme dieser Maske gehört.
Beispiele:
dezimal binär
Adresse 192.168. 1. 23 1100'0000 1010'1000 0000'0001 0001'0111
Maske 255.255.255. 0 1111'1111 1111'1111 1111'1111 0000'0000
nach logischem Und:
Netzadresse 192.168. 1. 0 1100'0000 1010'1000 0000'0001 0000'0000
Adresse 192.168. 1. 23 1100'0000 1010'1000 0000'0001 0001'0111
Maske 255.255.252. 0 1111'1111 1111'1111 1111'1100 0000'0000
nach logischem Und:
Netzadresse 192.168. 0. 0 1100'0000 1010'1000 0000'0000 0000'0000
Adresse 192.168. 2. 34 1100'0000 1010'1000 0000'0010 0010'0010
Maske 255.255.255. 0 1111'1111 1111'1111 1111'1111 0000'0000
nach logischem Und:
Netzadresse 192.168. 2. 0 1100'0000 1010'1000 0000'0010 0000'0000
Adresse 192.168. 2. 34 1100'0000 1010'1000 0000'0010 0010'0010
Maske 255.255.252. 0 1111'1111 1111'1111 1111'1100 0000'0000
nach logischem Und:
Netzadresse 192.168. 0. 0 1100'0000 1010'1000 0000'0000 0000'0000
Die beiden Adressen 192.168.1.23 und 192.168.2.34 gehören also unter Annahme einer Subnetzmaske von 255.255.252.0 zum selben Subnetz (192.168.0.0), unter Annahme einer Subnetzmaske von 255.255.255.0 jedoch nicht (192.168.1.0 vs. 192.168.2.0). Es ist also wichtig, immer die korrekte Subnetzmaske im Hinterkopf zu behalten.
Es zeigt sich, dass zum selben Subnetz jeweils die Adressen gehören, die sich nur in den binären Stellen unterscheiden, die in der Subnetzmaske Null sind. Damit unterteilt sich die Adresse in einen festen und einen variablen Ziffernteil. Beispiel:
Subnetz 192.168.0.0 in Binär: 1100'0000 1010'1000 0000'00|00 0000'0000
Maske 255.255.252.0 in Binär: 1111'1111 1111'1111 1111'11|00 0000'0000
Hostanteil: |xx xxxx'xxxx
erste/kleinste Adresse: 1100'0000 1010'1000 0000'00|00 0000'0000
in Dezimal: 192.168.0.0
letzte/größte Adresse: 1100'0000 1010'1000 0000'00|11 1111'1111
in Dezimal: 192.168.3.255
Netzanteil ^ Hostanteil
Grenze (siehe nächsten Abschnitt)
Will man ein spezifisches Subnetz bezeichnen, gibt man die erste Adresse in diesem Subnetz zusammen mit der Subnetzmaske an. Beispiele:
Vor der Einführung von CIDR (Classless Inter-Domain Routing) waren für bestimmte Bereiche des IP-Adressraums bestimmte Subnetzmasken festgelegt (siehe Netzklasse). So existierten z. B. Klasse-A-Adressen im Bereich von 0.0.0.0 bis 127.255.255.255. Diese hatten als Maske 255.0.0.0. Andere feste Masken waren 255.255.0.0 und 255.255.255.0.
CIDR hebt diese feste Zuordnung von Subnetzmasken zu IP-Bereichen auf. Statt der vorgegebenen, festen Masken werden nun Masken mit einer bestimmten Länge verwendet. Diese bestehen aus einer Anzahl von zusammenhängenden binären Einsen, gefolgt von binären Nullen zur Auffüllung auf 32 Bit. Somit existieren 33 mögliche Masken.
Da die Maskenschreibweise mit vier Dezimalzahlen dadurch redundante Informationen beinhaltet, notiert man stattdessen die Anzahl der Einsen.
| Volle Schreibweise | Maskenschreibweise |
|---|---|
| 192.168.1.0/255.255.255.0 | 192.168.1.0/24 |
| 172.16.4.0/255.255.252.0 | 172.16.4.0/22 |
| 195.16.85.80/255.255.255.248 | 195.16.85.80/29 |
Da eine IP-Adresse aus 32 bit besteht, ist der variable Teil 32 bit minus Maskenlänge bit lang. Die Anzahl der Adressen im Subnetz berechnet sich dadurch zu 232 − Maskenlänge. In einem /24-Netz gibt es also 232−24 = 28 = 256 IP-Adressen.
Die Masken /0 und /32 sind speziell in der Hinsicht, dass sie das ganze Internet respektive einen einzelnen Host abdecken.
Die alten Klassen A, B und C entsprechen den Masken /8, /16 und /24. Jedoch kann man anhand der Maskenangabe aber nicht unweigerlich auf eine Klasse eines Netzes zurückschließen, da die Definition der Netzklassen in den ersten drei Bits der IP-Adresse verankert ist.
Verschiebt man die Grenze zwischen festem (Masken-Einsen) und variablem (Masken-Nullen) Teil, können nun Unter-Subnetze aus einem Subnetz erzeugt werden. Dadurch, dass der feste Teil um einige Stellen verlängert wird, kann man mehrere Unter-Subnetze über diese "neugewonnenen" festen Stellen unterscheiden. Da der variable Bereich damit automatisch kleiner wird, sind diese Subnetze jedoch kleiner.
Adressen
123.45.64.0/18 - Provider 01111011 00101101 01000000 00000000 16384
123.45.64.0/20 - Kunde A 01111011 00101101 01000000 00000000 4096
123.45.64.0/28 - A1 01111011 00101101 01000000 00000000 16
123.45.64.16/28 - A2 01111011 00101101 01000000 00010000 16
123.45.80.0/20 - Kunde B 01111011 00101101 01010000 00000000 4096
123.45.96.0/19 - Kunde C 01111011 00101101 01100000 00000000 8192
(der unterstrichene Teil ist jeweils der feste.)
Ein häufiger Verwendungszweck von Subnetzen ist die Zuweisung eines Adressbereichs an ein Netzwerksegment. Computern an diesem Netzwerksegment werden dabei Adressen aus dem Bereich des jeweiligen Subnetzes zugewiesen.
Aus historischen Gründen sind zwei der Adressen eingeschränkt verwendbar. Dies sind:
Die Computer am Netzwerksegment verwenden die Subnetz-Angabe, um festzustellen, ob sich eine bestimmte IP-Adresse im selben Segment befindet. Dabei wird der am Anfang dieses Artikels beschriebene Test durchgeführt. Je nach Ergebnis wird dann versucht, die Adresse lokal (über ARP) oder entfernt (über einen Router) zu erreichen.
Es gibt eine einfache Möglichkeit, die Aufteilung in Subnetze ohne Hilfsmittel zu berechnen. Dies wird hier an einem Beispiel gezeigt:
Nehmen Sie an, Sie haben das Netz 192.168.10.0 mit der Subnetzmaske 255.255.255.0. Sie möchten dieses Class-C-Netz in möglichst viele Subnetze spalten. Pro Subnetz soll aber für mindestens 60 Host-Rechner eine IP-Adresse zur Verfügung stehen.
In diesem Fall berechnen Sie einfach eine Potenz von 2, die mindestens 60+2 (2 mehr als Sie benötigen [für Netz- und Broadcastadresse]) ergibt. Die kleinste Zahl, die dies erfüllt, ist 26, also 64. Setzen Sie nun die letzten 6 Bits (die 6 von 26) Ihrer neuen Subnetzmaske auf 0. Die letzte der gesetzten Einsen steht bei der Dezimalzahl 64. Dies ist im Beispiel das Inkrement.
1111'1111.1111'1111.1111'1111.1100'0000 = 255.255.255.192
Bei Einsatz dieser Subnetzmaske haben Sie folgende Subnetze zur Verfügung
Wie man in CIDR sehen kann, werden Subnetze auch mit /xx angegeben, zum Beispiel: 192.168.0.1/24, was 192.168.0.1 mit der Subnetzmaske 255.255.255.0 ist. Diese Notation ist inzwischen gebräuchlicher, da sie kürzer und genauso eindeutig ist. Doch wie kommt man an die "xx", wenn man die Subnetzmaske nicht in Binär umrechnen will? Einfach so: xx kann eine Zahl zwischen 0 und 32 annehmen. (Wie sinnvoll das ist, soll außer acht gelassen werden.)
0 heißt 0 Bits in der Subnetzmaske also: 0.0.0.0 (24 heißt 24 Bits in der Subnetzmaske: 255.255.255.0) 32 heißt 32 Bits auf 1 in der Subnetzmaske: 255.255.255.255
Nun wollen wir wie im oberen Beispiel 60+2 Rechner pro Netz adressieren. Das Einzige, was wir nun können müssen, ist in Zweierpotenzen hochrechnen, bis wir genau einmal über die erforderliche Anzahl kommen:
2^0 2^1 2^2 2^3 2^4 2^5 2^6 1 2 4 8 16 32 64
Wir haben 6 Schritte benötigt, diese werden von 32 abgezogen:
32 - 6 = 26
Dies ist nun unsere Subnetzmaske in CIDR-Notation also 192.168.0.1/26 und laut Tabelle aus CIDR:
| Notation | Hosts | Subnetzmaske |
|---|---|---|
| … | … | … |
| /26 | 64x1 | 255.255.255.192 |
| … | … | … |
Wie wir sehen, ist es das gleiche Ergebnis wie oben nur ohne Binär(um)rechnung.