Ein Subnetz entsteht durch die Unterteilung aller möglichen IP-Adressen in Teilnetze. Die logische Unterteilung des Netzes in Subnetze entspricht meist der physischen Unterteilung in lokale Teilnetze. Das Unterteilen einer Netzklasse mittels Netzmaske in weitere Subnetze nennt man Subnetting. Das Gegenteil ist Supernetting.
Grundlagen
Die Zuordnung von IP-Adressen zu Subnetzen und die Bezeichnung des Subnetzes erfolgen durch Angabe einer IP-Adresse und einer Netzmaske. Dabei bestimmt die Netzmaske die Bits der IP-Adresse, die für alle IP-Adressen des Subnetzes gleich sind. Die restlichen Bits können variieren und bestimmen den Adressraum.
Hieraus ergeben sich folgende Besonderheiten:
- Die erste IP-Adresse (alle Hostbits auf 0) eines Subnetzes adressiert das Subnetz selbst (Netzwerkkennung) und kann deshalb keinem Host zugewiesen werden.
- Die letzte IP-Adresse (alle Hostbits auf 1) eines Subnetzes dient als Broadcast-Adresse für das Netz und kann ebenfalls keinem Host zugewiesen werden.
- Es gibt einige IP-Bereiche, die für spezielle Zwecke vorgesehen sind. Dazu gehören z.B die loopback-Adresse oder Private IP-Adressen.
Ein Router arbeitet auf der Vermittlungsschicht des OSI-Modells und kann durch bitweise Und-Verknüpfung von Netzmaske und IP-Adresse ermitteln, ob letztere zum eigenen oder in ein anderes Subnetz gehört. Dadurch sind Router in der Lage, Subnetze zu verbinden.
Mit dem Routing Information Protocol war es lediglich möglich Netze in gleich große Subnetze zu unterteilen. Da man dort für jedes Netz die gleiche Subnetzadresse mit der gleichen Anzahl an Einsen benutzt hatte, sprach man auch vom Fixed Length Subnet Masks (FLSM). OSPF und statisches Routing unterstützen inzwischen auch Subnetzmasken unterschiedlicher Länge oder Variable Length Subnet Masks (VLSM).
Vorgehensweise zur Aufteilung in Subnetze
Zum Verständnis ist es empfehlenswert, die Bedeutung und Funktionsweise von TCP/IP, Routing und Internet Protocol zu kennen.
Die Standard-Aufteilung, nach der die Netzmasken bestimmt werden, folgt dabei einer bestimmten Rechenmethode:
Gegeben sei: gewünschte Netze 40, gewünschte Hosts 720 je Netz, verfügbarer Hostbereich 181.45.x.x
Es stehen also zwei Oktette bzw. 16 Bit zur Verfügung.
Schritt 1: Kontrolle ob Adressressourcen ausreichen
Dazu ist eine Potenz von 2 (zwei hoch n) zu finden, die um 2 größer als die Anzahl der gewünschten Netze oder Hosts ist:
Adressresourcen = 2n = (Anzahl + 2) = n
Erklärung: 1 Bit hat zwei mögliche Werte. Für n Bit gibt es also 2n mögliche Bitkombinationen. Es können also 2n Netze/Hosts abgebildet werden, wobei von den darstellbaren Adressen zwei wegfallen (Netzadresse und Broadcast, siehe oben).
Die ersten zehn Zweierpotenzen sind: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024. Da also 25 = 32 < 40 < 64 = 26, müssen n = 6 Bit für die Netze reserviert werden.
Da 720 gültige Hosts ermittelt werden müssen, wird mit 722 weiter gerechnet.
Analog für die Anzahl der Hosts gilt: 29 = 512 < 722 < 1024 = 210, d.h. 10 Bit werden für die Hosts benötigt.
Alternativ lässt sich n auch durch den Logarithmus zur Basis 2 (Logarithmus dualis) ermitteln, wobei ld(x)=ln(x)/ln(2):
Netze: ld(40)=5,32 ⇒ Aufrunden auf 6 Hosts: ld(720)=9,49 ⇒ Aufrunden auf 10
Das Ergebnis der Überprüfung lautet, dass die Summe der benötigten Bits 16 beträgt. Da auch 16 Bit verfügbar sind, kann mit dem gegebenen Adressenbereich 181.45.x.x die Anforderung also erfüllt werden.
Schritt 2: Ermitteln der Netzmaske
Wie bereits berechnet, müssen für den Hostanteil 10 Bit verwendet werden. Host-Bits sind immer die letzten in einer IP-Adresse:
Gemischte Dezimal-Binär-Darstellung: 181.45.NNNNNNHH.HHHHHHHH (N für Netzwerkbits, H für Hostbits)
Die Netzmaske soll 32 Bit umfassen, wobei sämtliche Netzwerkbits durch 1 und sämtliche Host-Bits (im Beispiel 10) durch 0 dargestellt werden:
Es ergibt sich folgende Binärdarstellung: 11111111.11111111.11111100.00000000
Jedes Oktett dieser Netzmaske wird nun vom Dualsystem ins Dezimalsystem umgerechnet:
- 000000002 = 010
- 111111002 = 25210
- 111111112 = 25510
Die Netzmaske lautet dementsprechend: 255.255.252.0.
Schritt 3: IP-Adressen der Netze finden
Zur Festlegung der IP-Adressen muss wieder gerechnet werden:
erstes Netz
Netzadresse des ersten Netzes: | 181.45.NNNNN1HH.HHHHHHHH | =10110101.00101101.00000100.00000000 | =181.45.4.0 |
Erster Host im ersten Netz: | 181.45.NNNNN1HH.HHHHHHH1 | =10110101.00101101.00000100.00000001 | =181.45.4.1 |
Der letzte Host im ersten Netz orientiert sich an der maximalen Anzahl von 1en, die für Hosts zur Verfügung stehen:
Das letzte Bit kann dann nicht 1 sein, da es sich sonst um den Netzbroadcast handeln würde:
181.45.(NNNNN1)11.11111110 = 10110101.00101101.00000111.11111110 = 181.45.7.254
Demnach ist 181.45.7.255 der Broadcast für das 1. Netz.
letztes Netz
Das letzte Netz ist auch anhand der möglichen Bits festgelegt:
- 181.45.(111111)00.00000000 Netzadresse für das letzte Netz. (181.45.252.0)
- 181.45.(111111)11.11111110 letzter Host im letzten Netz. (181.45.255.254)
Vereinfachung
Falls es sich um kleinere Subnetze handelt, so lassen sich die Adressen der einzelnen Subnetze folgendermaßen berechnen:
Zuerst ermittelt man die Anzahl der möglichen Adressen pro Subnetz. Diese erhält man, indem man die Anzahl der Adressen des aufzuteilenden Netzes durch die Anzahl der Subnetze teilt. Nun beginnt jedes Subnetz mit einem Vielfachen der Anzahl der Adressen pro Subnetz.
Beispiel:
- Das Netz 192.168.44.X soll in 8 Teilnetze aufgeteilt werden.
- Ein Oktett kann 256 verschiedene Werte annehmen.
- Jedes Subnetz hat 30 verwendbare Adressen (256:8=32-2 (Netzadresse und Broadcastadresse))
- Folgende Netze entstehen:
- 192.168.44.0
- 192.168.44.32
- 192.168.44.64
- 192.168.44.96
- 192.168.44.128
- 192.168.44.160
- 192.168.44.192
- 192.168.44.224
Sollte ein Netz in mehrere, unterschiedlich große Subnetze aufgeteilt werden, so wird mit der größten Adressanzahl begonnen.
Host-Range
Der Host-Range bezeichnet den Teil in einem Subnetz der tatsächlich für IP-Adressen verwendet werden kann. In jedem Subnetz ist die erste und die letzte Adresse reserviert. Bei einem Subnetz mit der Adresse 200.10.57.8 lautet der Host-Range: 200.10.57.9 - 200.10.57.14 Die reservierten Adressen lauten in diesem Fall 200.10.57.8 und 200.10.57.15
Das nächste Subnetz mit der Adresse 200.10.57.16 hätte einen Hostrange von 200.10.57.17 - 200.10.57.22
Subnet-Referenz
Folgende Subnetze sind möglich (Die Klassenangabe dient nur zur Einordnung der Netze in das ehemals klassenbasierte Modell):
Klasse A
Netzanteil
in Bit
Hostanteil
in Bit
Subnetzanzahl
Hostanzahl
pro Subnetz
Subnetzmaske
8
24
1
256*65536
255.0.0.0
9
23
2
128*65536
255.128.0.0
10
22
4
64*65536
255.192.0.0
11
21
8
32*65536
255.224.0.0
12
20
16
16*65536
255.240.0.0
13
19
32
8*65536
255.248.0.0
14
18
64
4*65536
255.252.0.0
15
17
128
2*65536
255.254.0.0
Klasse B
Netzanteil
in Bit
Hostanteil
in Bit
Subnetzanzahl
Hostanzahl
pro Subnetz
Subnetzmaske
16
16
1
65536
255.255.0.0
17
15
2
128*256
255.255.128.0
18
14
4
64*256
255.255.192.0
19
13
8
32*256
255.255.224.0
20
12
16
16*256
255.255.240.0
21
11
32
8*256
255.255.248.0
22
10
64
4*256
255.255.252.0
23
9
128
2*256
255.255.254.0
Klasse C
Netzanteil
in Bit
Hostanteil
in Bit
Subnetzanzahl
Hostanzahl
pro Subnetz
Subnetzmaske
24
8
1
256
255.255.255.0
25
7
2
128
255.255.255.128
26
6
4
64
255.255.255.192
27
5
8
32
255.255.255.224
28
4
16
16
255.255.255.240
29
3
32
8
255.255.255.248
30
2
64
4
255.255.255.252
Der Suffix für die CIDR Notation ist der Netzwerkanteil in Bit
Beispiele
- Ist die Netzadresse
192.168.0.0
und die Netzmaske255.255.0.0
, so gehören zum Subnetz die IP-Adressen von192.168.0.0
bis192.168.255.255
. - Die CIDR Notation für die IP-Adresse
192.168.0.1
und die Netzmaske255.255.0.0
lautet192.168.0.1/16
, da der Netzanteil 16 Bit beträgt!
Vereinfachung von Subnetting
Beispiel: Wir benutzen ein B-Netz mit der Nummer 172.16.0.0 und der Subnetzmaske 255.255.0.0
Ziel: In einem B-Netz könnten wir ca 65.000 Hosts adressieren. Da wir mehrere Teilnetze benötigen, wollen wir diese Anzahl unterteilen. In unserem Beispiel sollen 20 Teilnetze gebildet werden.
Lösung: (Erspart binäres Rechnen!)
Schritt 1: Wir suchen die 2er Potenz die größer 20 ist :
2^5 = 32
Schritt 2: Wir teilen die Anzahl der Bitkombinationen durch das Ergebnis aus dem 1.Schritt:
256 : 32 = 8
Schritt 3: Wir bilden die Subnetzmaske: 256 - 8 = 248
Die neue Subnetzmaske lautet: 255.255.248.0
Schritt 4: Wir bilden den Adressbereich eines gesuchten Teilnetzes.
Beispiel: Wir suchen das 5. Teilnetz: 5 x 8 = 40 6 x 8 = 48 - 1 = 47 Der Adressbereich lautet: 172.16.40.1 bis 172.16.47.254 mit der Subnetzmaske 255.255.248.0
Beispiel: Wir suchen das 7. Teilnetz: 7 x 8 = 56 8 x 8 = 64 - 1 = 63 Der Adressbereich lautet: 172.16.56.1 bis 172.16.63.254 mit ebenfalls der Subnetzmaske 255.255.248.0
Rückwärtsrechnung:
Beispiel: Wir arbeiten im Support, und wissen nicht in welches Teilnetz dieser Rechner gehört.
172.16.75.11 / 255.255.248.0
1. Schritt: Da die Subnetzmaske im B-Netz 255.255.0.0 ohne Subnetting lautet, interessiert uns nur das 3.Byte:
256 - 248 = 8
2. Schritt: Auch in der IP Adresse interessiert uns nur das 3. Byte:
75 : 8 = 9 Rest 3 (Die 8 ist Ergebnis aus Schritt1!) Der Rest spielt keine Rolle! Ergebnis: der Rechner gehört ins 9. Teilnetz!
Anmerkung:
Es wird davon ausgegangen, das das Zählen mit dem 0ten Subnetz beginnt. Beginnt man allerdings mit dem 1. Subnetz, dann ist zu der Berechnung jeweis +1 hinzuzufügen.
Beispiel: 172.16.75.4 / 255.255.248.0
1. Schritt: Da die Subnetzmaske im B-Netz 255.255.0.0 ohne Subnetting lautet, interessiert uns nur das 3.Byte:
256 - 248 = 8
2. Schritt: Auch in der IP Adresse interessiert uns nur das 3. Byte:
4 : 8 = 0 Rest 5 (Die 8 ist Ergebnis aus Schritt1!) 0 (Ergebnis aus Schritt2!) + 1 = 1 Der Rest spielt keine Rolle! Ergebnis: der Rechner gehört ins 1. Teilnetz! Mit obiger Rechnung hätte man ein 0. Teilnetz!