1.3.3. Subnetzbildung

Wenn nun eine an das Internet angeschlossene Firma oder Einrichtung aus mehreren größeren Abteilungen, Fakultäten o.ä besteht, ist es sinnvoll, für die Teilbereiche jeweils eigene Netze einzurichten. Der Hauptgrund dafür ist die saubere Trennung von Verantwortungsbereichen und die Eindämmung von Störungen (die dann nur ein Teilnetz betreffen).

Unsere betrachtete Firma oder Hochschule könnte nun beispielsweise vier unabhängige Teilnetze betreiben. Das hätte aber den Nachteil, daß die "übrige Welt" mehrere Netzwerkadressen kennen und auch wissen muß, welche Bereiche über welche Adressen erreichbar sind. Das ist nicht wünschenswert, vor allem wegen des Aufwands bei den doch nicht seltenen "Umstrukturierungen".

Die Lösung unseres Problems besteht darin, daß sich die Einrichtung eine Netzadresse (d.h. einen Adreßraum) zuteilen läßt, den sie dann in eigener Regie weiter in sogenannte Subnetze unterteilen kann. Der Hostteil der Adresse wird dabei weiter in einen Subnetz-Anteil und die Adresse des Hosts innerhalb eines Subnetzes unterteilt:

Am einfachsten ist dies zu verstehen, wenn wir bei einer Klasse-B-Adresse den Hostteil von 16 Bit in einen 8-Bit-Subnetz-Anteil und einen 8-Bit-Hostanteil aufteilen. Dann entspricht der Subnetz-Anteil der 3. Zahl in der Dezimal-IP-Notation und der Hostanteil der 4. Zahl:

Wegen der Adressen mit Sonderbedeutung (siehe Abschnitt 1.3.1) könnten wir jetzt theoretisch 255 Subnetze mit je 254 Rechnern bilden. In der Literatur findet man unterschiedliche Angaben dazu, ob es ein Subnetz mit der Subnetz-Nummer 0 geben kann. Praktisch wird empfohlen, die Subnetz-Nummer 0 nicht zu vergeben, weil es wohl IP-Implementierungen gibt (oder gegeben hat), die das fehlinterpretieren können. Damit kommen wir auf 254 Subnetze. Im folgenden Bild sind einige davon dargestellt:

Damit ist in Router 1 folgende Routingtabelle erforderlich:

Ziel nächster Router oder direkt verbundenes Netz Interface
Subnetz 133.7.1 Subnetz 133.7.1 B
Subnetz 133.7.3 Subnetz 133.7.3 A
default 133.7.3.2 (Router 2) A

Beachten Sie, daß wir hier für die Punkt-zu-Punkt-Verbindung zwischen Router 2  und Router 3 ein eigenes "Subnetz" eingerichtet haben. Das ist nicht in jedem Fall notwendig, macht die Sache aber überschaubarer.

Im Router 2 muß folgendes eingestellt sein:

Ziel nächster Router oder direkt verbundenes Netz Interface
Subnetz 133.7.1 133.7.3.5 B
Subnetz 133.7.3 Subnetz 133.7.3 B
Subnetz 133.7.2 133.7.2.5 C
Subnetz 133.7.4 133.7.2.5 C
Subnetz 133.7.7 133.7.2.5 C
default 143.23.1.1 (Router 4) A

In Ergänzung zum letzten Eintrag kann es wieder sinnvoll sein, für die übrigen Teilnehmer am Netz 143.23 direkte Routingeinträge vorzusehen.


Frage 1.3.3.1.:

Ermitteln Sie wieder die Einstellungen im Router 3!


Die Subnetzmaske gibt an, welcher Teil der Adresse die Zugehörigkeit zu einem bestimmten Subnetz bestimmt. Die im Beispiel verwendete Subnetzmaske 255.255.255.0 hat die Binärschreibweise

  11111111 11111111 11111111 00000000
Die ersten 24 Bit legen also das Netz fest, die letzten 8 Bit den Host innerhalb des Netzes.
Mitunter wird die Subnetzmaske auch hexadezimal angegeben (das 0x davor steht für hexadezimal):
  0xffffff00

Man kann natürlich auch andere Einteilungen vornehmen, beispielsweise 10 Bit für den Hostanteil, so daß dann 6 Bit für den Subnetzanteil bleiben:

  11111111 11111111 11111100 00000000
In der gebräuchlicheren Dezimalschreibweise ist das 255.255.252.0. Die Subnetze wären dann 133.7.0, 133.7.4, 133.7.8, 133.7.12 usw.

Bei den für Sonderzwecke reservierten Adreßbelegungen ergeben sich mit der Subnetzbildung zwei weitere Varianten:


Frage 1.3.3.2.:

Wieviele Subnetze kann man jetzt bilden? Wieviele Rechner können sich in jedem Subnetz befinden?


Auf zwei Sonderfälle sei noch hingewiesen:

Zusammenfassend wollen wir uns wieder eine Beschreibung des IP-Routing-Algorithmus ansehen, diesmal allerdings in einer modifizierten Form, die die Behandlung der Subnetz-Adressierung einschließt. Das Gerüst stammt wiederum aus Band 1 von Comers Internetworking with TCP/IP. Als Parameter werden das zu routende Datagramm sowie die Routing-Tabelle verwendet.

Es wird angenommen, daß die Routing-Tabelle pro Eintrag die Subnetzmaske, das Ziel sowie die Adresse des nächsten Routers bzw. des direkt verbundenen Netzes enthält. Das Ziel sowie die Subnetzmaske werden als beliebige (unstrukturierte) 32-Bit-Werte aufgefaßt, so daß man die bisher zu unterscheidenden Fälle (hostspezifische Route, Default-Route, ...) stark vereinheitlichen und vereinfachen kann, wie der folgende Algorithmus zeigt:

  1. Die IP-Ziel-Adresse D ist aus dem Datagramm zu extrahieren. Aus ihr ist die IP-Adresse Z des Ziel-Netzes (die Netzadresse) zu bestimmen.

  2. Falls Z mit der Adresse eines direkt verbundenen Netzes übereinstimmt, ist das Datagramm über dieses Netz an Ziel D zu senden. Dazu ist die Hardwareadresse von D zu ermitteln (z.B. durch ARP), das Datagramm geeignet zu verpacken (z.B. in einem Ethernet-Frame) und abzuschicken.

  3. Anderenfalls ist die Routing-Tabelle zyklisch zu durchlaufen. Für jeden Eintrag wird folgendes getan:

  4. Falls keine passende Route gefunden werden konnte, ist ein Routing-Fehler aufgetreten.
Comer weist darauf hin, daß eine clevere Implementierung die expliziten Tests von Z auf Übereinstimmung mit den Adressen der direkt verbundenen Netze eliminieren kann, sofern sie in die Tabelle geeignete Werte für die Ziele und Subnetzmasken einträgt. Dann genügt der unter Punkt 3 gezeigte zyklische Durchlauf der Tabelle.

Folgende Beispiele sollen den obigen Algorithmus illustrieren:

zu beschreibende Route Ziel Subnetzmaske
hostspezifische Route IP-Adresse des Hosts 255.255.255.255
Default-Route 0.0.0.0 0.0.0.0
Route zu Klasse-B-Netz ohne Subnetze IP-Adresse des Klasse-B-Netzes 255.255.0.0


Frage 1.3.3.3.:

In dem oben dargestellten Beispiel (rechter Bildteil) wollen wir nun eine Modifikation einführen:

Die Subnetze 133.7.4 und 133.7.7 nutzen ein gemeinsames physisches Netz und auch einen gemeinsamen Anschluß am Router 3 (z.B. weil gerade nicht genug Geld für weitere Router-Interfaces vorhanden war).

Unter welchen Voraussetzungen und mit welchen Folgen wird das funktionieren?


© Uwe Hübner, 27.4.98