Subnetting ist eine Standardprozedur um ein Class A, Class B oder Class C Netz in Unternetze zu teilen. Es ist in der RFC 950 definiert.
Subnetting wandelt die 2-Level-Hierarchie einer IP-Adresse
in eine 3-Level-Hierarchie um. Dazu teilt
sich die Hostadresse in die Bereiche Subnetzadresse und Hostadresse. Ein Teil des Hostadressbereiches wird genutzt um die Subnetze zu unterscheiden. Die Netzadresse und den Subnetzanteil des Hostadressraumes bezeichnet man als Erweiterte Netzadresse (Extended Network Prefix).
Damit Router in der Lage sind Datagramme in das richtige Netz zuzustellen, müssen sie die IP-Adresse in Netz- und Hostanteil unterscheiden können. Dies geschieht traditionell durch die Subnet Mask. Die Subnet Mask hat dieselbe Struktur wie die IP-Adresse. Eine UND-Verknüpfung mit der IP-Adresse ergibt dabei den Netzanteil. Durch die bitweise Verknüpfung ergibt sich für ein Class A, B und C Netz folgende Subnet Masks:
Class | Subnet Mask |
---|---|
A | 255.000.000.000 |
B | 255.255.000.000 |
C | 255.255.255.000 |
Bei Subnetzen greift dasselbe Prinzip, nur muss hier der Hostanteil der Subnet Mask angepasst werden, damit das Ergebnis der UND-Verknüpfung jetzt die Erweiterte Netzadresse liefert.
Um die Schreibweise zu erleichtern schreibt man statt der Subnet Mask auch einfach die Anzahl der gesetzten Bits hinter die IP-Adresse, also /8 für ein Class A-Netz, /16 für ein Class B-Netz und /24 für ein Class C-Netz. Für das Subnetz aus dem Schaubild würde man /28 schreiben.
Dadurch das nach Aussen nur die Netzadresse bekannt ist, reduziert sich die Belastung der
Internet-Router. Schliesslich genügt es, wenn diese sich die Netzadressen in ihre Tabellen
eintragen, die Verteilung der Datagramme in die Subnetze geschieht durch die internen Router, die mit der Erweiterten Netzadresse arbeiten.
Damit löst sich auch das zweite und dritte Problem, denn Administratoren können nun ohne eine neue IP-Adresse
beantragen zu müssen eine sinnnvolle Struktur in Ihr Netz einbringen. Dies erleichtert die
Wartung grosser Netze. Auch lässt sich auf diese Weise die Performance des Netzes steigern, in
dem z.B. Broadcasts sich nun auf die Subnetze beschränken und dadurch die Netzlast verringert
wird.
Auch das letzte Problem wird mit Subnetzen zumindestens eingedämmt. Hatte beispielsweise eine Firma ein Class B-Netz in Besitz, nutzte es aber die Anzahl der möglichen Hosts nicht voll aus, so lagen diese überzähligen IP-Adressen brach. Mit einem Subnetz hat diese Firma nun die Möglichkeit Subnetze mit überzählige IP-Adressen unterzuvermieten.
Bevor man Subnetze einrichtet, sollte man sich über die folgenden vier Punkte klarwerden:
Nehmen wir ein konkretes Beispiel:
Eine Firma besitzt die IP-Adresse 194.10.1.0/24 und benötigt 5 Subnetze, von denen das grösste mindestens 30 Clients unterbringen muss.
Vorgehensweise:
Zuerst müssen wir herausfinden, wieviele Bits des Hostadressraumes wir für die Subnetzadressen belegen müssen. In diesem Fall benötigen wir 3Bit. Wir haben dann insgesamt 23=8 Subnetze. Die Definition von exakt 5 Subnetzen ist nicht möglich, da das Binärsystem nur Potenzen von 2 ermöglicht, also 2, 4, 8, 16, 32, 64 und 128. Damit lautet unsere Subnet Maske:
11111111 | 11111111 | 11111111 | 11100000 |
---|---|---|---|
255 | 255 | 255 | 224 |
Von diesen 8 Subnetzen dürfen wir zwei nicht benutzen. Bei der Adresse 194.10.1.0/27 besteht für den Router Verwechslungsgefahr mit der Netzadresse. Zusätzlich klammert man Subnetze mit 8 gesetzten Bits aus, da hier Verwechslungsgefahr mit der Broadcastadresse besteht. Moderne Browser erlauben auch die Benutzung dieser Subnetadressen indem sie in ihren Routing-Tabellen die Länge des Netzwerkanteils abspeichern und diesen zur Unterscheidung heranziehen.
In unserem Beispiel verbleiben 5Bit für die Bildung der Hostadressen. Da wir jedoch die 0 und die 255 als Hostadressen nicht benutzen können (0 spricht das gesamte (Sub)Netz an, 255 ist die Broadcastadresse), haben wir 52-2=30 IP-Adressen für die Clients.
Netz | Binär | Dezimal | Hosts | BC |
---|---|---|---|---|
B | 110000010.00000110.00000001.00000000 | 194.10.1.0/24 | 194.10.1.255 | |
S1 | 110000010.00000110.00000001.00000000 | 194.10.1.0/27 | 194.10.1.1 - 194.10.1.30 | 194.10.1.31 |
S2 | 110000010.00000110.00000001.00100000 | 194.10.1.32/27 | 194.10.1.33 - 194.10.1.62 | 194.10.1.63 |
S3 | 110000010.00000110.00000001.01000000 | 194.10.1.64/27 | 194.10.1.65 - 194.10.1.94 | 194.10.1.95 |
S4 | 110000010.00000110.00000001.01100000 | 194.10.1.96/27 | 194.10.1.97 - 194.10.1.126 | 194.10.1.127 |
S5 | 110000010.00000110.00000001.10000000 | 194.10.1.128/27 | 194.10.1.129 - 194.10.1.158 | 194.10.1.159 |
S6 | 110000010.00000110.00000001.10100000 | 194.10.1.160/27 | 194.10.1.161 - 194.10.1.190 | 194.10.1.191 |
S7 | 110000010.00000110.00000001.11000000 | 194.10.1.192/27 | 194.10.1.193 - 194.10.1.122 | 194.10.1.223 |
S8 | 110000010.00000110.00000001.11100000 | 194.10.1.224/27 | 194.10.1.225 - 194.10.1.254 | 194.10.1.255 |