Subnetting
Beim Subnetting geht es darum, den IP-Adressraum in kleinere Teile zu zerschneiden.
Dies wird aus verschiedenen Gründen gemacht:
- Sicherheit: Zwischen den Subnetzen kann der Traffic von einer Firewall/Router mithilfe von Paketfiltern kontrolliert werden. Im Falle eines Sicherheitsvorfalls sind Geräte in anderen Subnetzen geschützt. Bei der Verwendung von Subnetzen ohne andere Schutzmechanismen (z.B. VLANs) ist aber Vorsicht geboten. Eine IP-Adresse kann einfach auf Client-Seite geändert werden.
- Broadcasts als Performancekiller: Viele Protokolle (DHCP, ARP etc) nutzen Broadcasts. Da Broadcasts an alle Geräte im Netzwerk geschickt werden, steigt bei großen Netzwerken mit vielen Hosts die Anzahl der Pakete und damit die Last im Netzwerk.
- Verwaltbarkeit: Mit Subnetzen kann eine logische Struktur im Netzwerk geschaffen, welche die Übersicht und damit die Verwaltung erleichtert. Zum Beispiel verschiedene Subnetze pro Firmenstandort oder Netze für Server, Clients etc.
IPv4 Subnetting
Subnetzmaske
Zu jeder IP-Adresse wird die Subnetzmaske angegeben.
IPv4: 192.168.178.10/24
Subnetzmaske: 255.255.255.0
Die Subnetzmaske gibt an, wie viele der 32 Bits einer IP-Adresse die Netzadresse darstellen. Die Bits des Netzanteils werden binär mit 1 und die Bits des Hostanteils mit 0 angegeben. Nach einer 0 darf keine 1 mehr folgen. Die Anzahl der möglichen Subnetze/Hosts erhält man, indem man 2^(Anzahl Bits) rechnet.
Die Subnetzmaske 255.255.255.0 entspricht binär 11111111 11111111 11111111 00000000. Folglich stellen die ersten 24 Bit den Netzanteil und die verbleibenden 8 Bit den Hostanteil dar.
Die Subnetzmaske kann auf zwei Arten aufgeschrieben werden. In der alten Schreibweise werden die 32 Bit, welche die Subnetzmaske hat, in 4 Blöcke zu je 8 Bit aufgeteilt und anschließend in Dezimalzahlen umgerechnet und mit Punkt getrennt aufgeschrieben werden, z.B. 255.255.255.0. Mittlerweile hat sich eine andere Darstellung etabliert. Bei dieser wird die Anzahl der Bits, welche zum Netzanteil gehören, mit einem "/" hinter die IP-Adresse geschrieben, z.B. 192.168.178.10/24, was der oben genannten Subnetzmaske 255.255.255.0 entspricht.
Um von CIDR in die herkömmliche Notation zu kommen, muss man lediglich die die 32 Bit einer IP Adresse aufschreiben und von links nach rechts die Anzahl der Bits auf 1 setzen, die in CIDR angegeben ist, und anschließend den 8er-Block in dezimal umrechnen, in dem nicht alles 1 oder 0 ist. Blöcke in denen alles 1 ist sind 255, Blöcke in denen alles 0 ist sind 0.
Bei allen Subnetzmasken, die mit 255 enden (in CIDR vielfache von 8 sind), kann man sich die Dotted-Dezimal-Schreibweise der IP-Adresse zu nutze machen, denn in dem Fall ist die Grenze zwischen Netzanteil und Hostanteil genau auf einem Punkt und damit sehr einfach abzulesen.
Subnetzmaske CIDR |
Subnetzmaske Dotted-Dezimal |
Format (X = Netzanteil, Y = Hostanteil) |
/8 |
255.0.0.0 |
X.Y.Y.Y |
/16 |
255.255.0.0 |
X.X.Y.Y |
/24 |
255.255.255.0 |
X.X.X.Y |
Gibt es in der Subnetzmaske einen Block, welcher nicht 255 oder 0 ist, lassen sich Netz-und Hostanteil nur bestimmen, indem der Block binär betrachtet wird.
Beispiel
Subnetzmaske: 255.255.224.0
Die Blöcke 1, 2 und 4 sind uninteressant. Block 1 und 2 gehören fest zum Netzanteil, Block 4 gehört fest zum Hostanteil. Im 3. Block befindet sich die Grenze zwischen Netz-und Hostanteil. Die 224 ist binär 1110 0000, folglich gehören die ersten 3 Bit des Blocks zum Netzanteil und die weiteren 5 Bit zum Hostanteil. Über die gesamten 32 Bit betrachtet sind die ersten 19 Bit dem Netzanteil und die restlichen 13 Bit dem Hostanteil zugehörig. Folglich wäre die Subnetzmaske als "/19" darzustellen.
Anzahl Subnetze und Anzahl Hosts in einem Subnetz
Um die Anzahl der möglichen Subnetze und möglichen Hosts in einem Subnetz muss man lediglich die 2^(Anzahl der Bit) rechnen. Beim Hostanteil gibt es die Besonderheit, dass die erste (alle Bit des Hostanteils auf 0) und die letzte (alle Bit des Hostanteils auf 1) mögliche IP nicht für Hosts nutzbar sind, da sie für Netzadresse und directed Broadcast reserviert sind. Bei der Bildung von Subnetzen muss dies beachtet werden, denn man braucht immer 2 Adressen mehr als man Hosts in dem Netz haben möchte. Bei 4 Hosts müssen 3 Bit verwendet werden, da 6 Adressen benötigt werden. 2 Bit reichen nicht.
Bei einer Subnetzmaske von 255.255.255.0 oder CIDR "/24" sind 2^24 Subnetze möglich mit jeweils 2^8 Hosts pro Subnetz.
Berechnen der Netz-Adresse
Anhand einer IP-Adresse und der zugehörigen Subnetzmaske kann die Netz-Adresse berechnet werden. Dazu muss man zunächst IP-Adresse und Subnetzmaske in die binäre Schreibweise bringen und diese anschließend mit einem logischen UND miteinander verknüpfen.
IP-Adresse |
192.168.178.10 |
11000000 10101000 10110010 00001010 |
Subnetzmaske |
255.255.255.0 |
11111111 11111111 11111111 00000000 |
logisches UND | ||
Netz-Adresse | 192.168.178.0 |
11000000 10101000 10110010 00000000 |
Subnetze bilden
gegeben:
IP: 10.0.23.192/25
Subnetzmaske: 255.255.255.128
Aufgabe:
- 4 Subnetze erstellen
- 4 Hosts (Subnetz 1), 12 Hosts (Subnetz 2), 31 Hosts (Subnetz 3), 6 Hosts (Subnetz 4)
- keine Lücken
Im ersten Schritt wird notiert, wie viele Hosts in dem Subnetz benötigt werden, wie viele Host-Bits dafür nötig sind, mit wie vielen Bit die Subnetzmaske erweitert wird (zusätzliche Netz-Bits) und wie die Subnetzmaske des Subnetzes aussieht. Es ist sinnvoll, die zu erstellenden Subnetze bereits hier nach Größe vom größten zum kleinsten zu sortieren.
Erinnerung: Da die erste und letzte Adresse eines Subnetzes reserviert sind, werden immer 2 Adressen mehr benötigt als Hosts in dem Netzwerk sind.
Subnetz |
Anzahl Hosts |
Anzahl nötiger Host-Bits |
Anzahl zusätzlicher Netz-Bits |
CIDR |
Subnetzmaske |
3 |
31 + 2 |
6 (max. 64 Hosts) |
1 |
/26 |
255.255.255.224 |
2 |
12 + 2 |
4 (max. 16 Hosts) |
3 |
/28 |
255.255.255.240 |
1 |
4 + 2 |
3 (max. 8 Hosts) |
4 |
/29 |
255.255.255.248 |
4 |
6 + 2 |
3 (max. 8 Hosts) |
4 |
/29 |
255.255.255.248 |
Anschließend muss zunächst die Netzadresse des Bereichs gefunden werden, in dem die Subnetze gebildet werden. Hierfür wird die gegebene IP-Adresse und Subnetzmaske mit einem logischen UND verknüpft. Es muss nur der Block betrachtet werden, der nicht 255 und 0 ist, d.h. der Block mit der 128.
10.0.23.192 |
1100 0000 |
|
255.255.255.128 |
1000 0000 | |
UND |
128 |
1000 0000 |
Der Bereich, der für die Bildung der Subnetze zur Verfügung steht, ist der Bereich zwischen 10.0.23.128 und 10.0.23.255.
Anschließend fängt man mit der ausgerechneten Netzadresse an und bildet die Subnetze (die Subnetzmaske hat man ja bereits herausgefunden).
Die Netzadresse des 1. Subnetzes ist identisch mit der Netzadresse des gesamten gegebenen Netzbereichs (die Subnetzmaske aber nicht). Anhand der Anzahl der Host-Bits kann man die Anzahl der möglichen Adressen des Subnetzes berechnen. Dies hilft bei der Errechnung der Netzadressen, da man einfach auf die Netzadresse des vorigen Netzwerks die Anzahl der Adressen dazuaddieren kann, um auf die Netzadresse des Folgenetzes zu kommen.
Subnetz |
Netzadresse |
Subnetzmaske |
3 |
10.0.23.128 |
255.255.255.224 bzw. /27 |
2 |
10.0.23.192 | 255.255.255.240 bzw. /28 |
1 |
10.0.23.208 |
255.255.255.248 bzw. /29 |
4 | 10.0.23.224 |
255.255.255.248 bzw. /29 |
IPv6 Subnetting
Bei IPv6 wurde das Subnetting deutlich erleichtert. Während bei IPv4 Host-und Netzanteil variabel sind und mithilfe der Subnetzmaske nach Belieben verändert werden können, sind Netzanteil und Hostanteil fix jeweils 64 Bit lang, was bedeutet, dass es 2^64 verschiedene Netze und pro Netz 2^64 Hosts geben kann. Die Subnetzmaske ist nicht mehr nötig bzw. ist sie bei einem Client immer /64, da die ersten 64 Bit der Adresse immer das Netz angeben. Bei IPv6 werden die Subnetze im Bereich zwischen Präfix und Anfang des Hostanteils gebildet. Hier kommt es darauf an, welche Länge das IPv6-Präfix hat, welches einem vom Provider zugewiesen wurde. Das Präfix wird wie die Subnetzmaske in CIDR-Notation angegeben, z.B. "/48". Bei einem Präfix mit einer Länge von 48 Bit (CIDR: /48) hat man also 16 Bit, mit denen man Subnetze bilden kann.
Privatkunden bekommen in der Regel ein /64 Prefix zugeteilt, d.h. es können keine Subnetze gebildet werden.
Zwischen der zugeteilten Präfix-Länge und 64 Bit können Subnetze durch simples hexadezimales Hochzählen gebildet werden.
Beispiel
gegebenes Präfix: 2001:db8:db8:b000:/60
Zwischen Präfix und
0000 |
|