Wolfgang Lösch

Contact© Wolfgang Lösch

Lokale Netze (LAN) — IP-Router und L3-Switches

Stand: 2007 (weitere Aktualisierung eingestellt)

Beim Dateiaustausch zwischen Rechnern mit verschiedenen Betriebssystemen wird das einzige, was auf dem Zielrechner ankommt, der falsch konvertierte Dateiname sein.

Joachim Graf, Murphys gemeinste Computergesetze,1997

Bereits bei der Behandlung von Brücken wurde das Problem angesprochen, dass zwei an verschiedene LANs angeschlossene Datenendgeräte – im Kontext der Netzwerkschicht zwei Endsysteme bzw. Hosts – miteinander kommunizieren wollen und somit diese LANs irgendwie verbunden werden müssen. Während dort die Verbindung innerhalb der MAC-Schicht realisiert wurde und sich auf LANs beschränkte, wird jetzt die Kopplung in der Netzwerkschicht realisiert. Auf diese Weise lassen sich nicht nur LAN-LAN-Übergänge, sondern auch LAN-WAN-Übergänge durchführen.

Ein System, das eine Kopplung innerhalb der Netzwerkschicht vornimmt, wird als Router bezeichnet. Auch die folgenden Synonyme sind gebräuchlich: Network Layer Relay, Vermittlungssystem, Zwischensystem (Intermediate System, IS) oder Interworking Unit (IWU). Im Internet-Sprachgebrauch wird meistens der Begriff Gateway verwendet.

Router im IP-Netz

Die Kopplung vieler Netze zu einem Netzverbund führt dazu, dass für ein Datenpaket verschiedene Wege möglich sind, um zum gewünschten Ziel zu gelangen. Die Aufgabe eines Routers besteht nun im wesentlichen darin, in einem solchen Netzverbund den optimalen Weg für das Datenpaket zu finden. Aus diesem Grund pflegt jeder Router eine Routing-Tabelle, mit deren Hilfe er das Datenpaket weiterleiten kann. Als Kriterien für den optimalen Weg können verschiedene Aspekte herangezogen werden, z.B. Netzwerk-Topologie, Übertragungsraten, Netzlast, Übertragungskosten.

Die Art und Weise, wie Router untereinander kommunizieren, wird durch Routing-Protokolle festgelegt. Die beiden wichtigsten Vertreter in einem IP-Netz sind RIP (Routing Information Protocol) und OSPF (Open Shortest Path First Routing Protocol). Über diese Protokolle stehen Router in ständiger Verbindung, um Informationen austauschen, die sie für die Pflege ihrer Routing-Tabellen benötigen.

In der Netzwerkschicht wird man also mit zwei Typen von Protokollen konfrontiert:

Netzwerk-Protokoll:
Ein Netzwerk-Protokoll (z.B. IP) enthält Adress- und Kontrollinformationen, die es ermöglichen, Datenpakete (z.B. IP-Datagramme) mit Hilfe von Routern zum Ziel zu bringen. Man bezeichnet ein Netzwerk-Protokoll neudeutsch daher auch als geroutetes Protokoll.
Routing-Protokoll:
Ein Routing-Protokoll (z.B. RIP oder OSPF) ermittelt den optimalen Weg für ein Datenpaket durch die Implementierung eines bestimmten Routing-Algorithmus. Es gibt viele verschiedene Routing-Algorithmen, die alle mehr oder weniger komplex sind und im folgenden nicht weiter betrachtet werden.

Aus der Sicht eines Endsystems, das einem anderen Endsystem ein Datenpaket übermittlen will, setzt sich das Routing aus den folgenden drei Prozessen zusammen.

  1. Das Endsystem muss wissen, auf welche Weise und wann es mit einem Router kommunizieren kann.
  2. Der Router muss in der Lage sein, einen geeigneten Weg zu einem entfernten Netz auszuwählen.
  3. Der Router im Zielnetz muss wissen, wie er eine Verbindung zum Zielsystem aufnehmen kann.

Router vs. Brücke

Sowohl mit Routern als auch mit Brücken kann man LANs koppeln. Worin unterscheidet sich nun diesbezüglich ein Router von einer Brücke? Zum einen arbeiten die beiden Komponenten in verschiedenen Kommunikationsschichten. Die Brücke arbeitet in der MAC-Schicht und hat mit Ethernet-Rahmen und MAC-Adressen zu tun, wohingegen der Router in der Netzwerkschicht arbeitet und mit IP-Datagrammen und IP-Adressen zu tun hat. Zum anderen reagieren die beiden Komponenten unterschiedlich, wenn sie nicht wissen, wohin sie einen Ethernet-Rahmen bzw. ein IP-Datagramm weiterleiten sollen:

Ein weiterer wichtiger Unterschied besteht darin, wie die Komponente angesprochen wird:

Beispiel

Im folgenden Beispiel wird angenommen, dass zwei LANs über einen Router gekoppelt sind. Die oben genannten Prozesse vereinfachen sich dann dergestalt, dass der Router nicht erst einen Weg ins entfernte Netz suchen muss, da der Weg eindeutig ist, und dass der Router im Sendernetz und der Router im Zielnetz identisch sind, da es ja nur den einen Router gibt.

Kopplung zweier LANs über einen Router
Kopplung zweier LANs über einen Router

System A soll ein IP-Datagramm an System B senden:

  1. System A stellt fest, dass die IP-Adresse von B in einem anderen IP-Netz liegt und dass es daher zunächst den Router adressieren muss. Da System A die MAC-Adresse des Routers nicht kennt, versendet es eine ARP-Anforderung für die Adresse 172.16.0.12.
  2. Der Router schickt eine ARP-Antwort zurück mit seiner MAC-Adresse und System A trägt die Zuordnung 08-00-00-6E-24-B3/172.16.0.12 in seine Adresstabelle ein.
  3. System A verschickt das IP-Datagramm mit der MAC-Zieladresse 08-00-00-6E-24-B3, der IP-Quelladresse 172.16.0.9 und der IP-Zieladresse 192.168.64.3
  4. Der Router empfängt des IP-Datagramm und stellt fest, dass er die MAC-Adresse für die angegebene IP-Zieladresse nicht kennt. Er versendet daher eine ARP-Anforderung für die Adresse 192.168.64.3.
  5. System B schickt eine ARP-Antwort zurück mit seiner MAC-Adresse und der Router trägt die Zuordnung 00-50-04-3A-7E-4A/192.186.64.3 in seine Adresstabelle ein.
  6. Der Router verschickt das IP-Datagramm mit der MAC-Zieladresse 00-50-04-3A-7E-4A, der IP-Quelladresse 172.16.0.9 und der IP-Zieladresse 192.186.64.3.
  7. System B empfängt das IP-Datagramm.

Layer-3-Switch im Ethernet/IP-Netz

Ein Layer-3-Switch (L3-Switch) ist ein auf Höchstleistung getrimmter Multiport-Router, der sich meist nur auf ein einziges Netzprotokoll beschränkt (in der Regel IP) und darüberhinaus auch die Rolle eines (Layer-2-)Switches übernehmen kann.

Werden in einem Ethernet mit Hilfe von (Layer-2-)Switches VLANs gebildet, dann ist zwischen zwei Systemen, die zu verschiedenen VLANs gehören, zunächst keine Datenkommunikation möglich. Die Kommunikationsverbindung zwischen den VLANs kann nur über einen (externen) Router hergestellt werden. Da dies mit zusätzlichen Kosten und sehr wahrscheinlich auch mit Leistungseinbußen verknüpft ist, bietet sich hier der Einsatz eines Layer-3-Switches an.

Ein Layer-3-Switch kann in diesem Zusammenhang auch definiert werden als ein (Layer-2-)Switch, der um Router-Funktionen so erweitert wurde, dass zwischen den VLANs Datenverkehr stattfinden kann. Voraussetzung hierfür ist allerdings, dass aus jedem VLAN ein eigenes IP-Subnetz gebildet wird. Der Layer-3-Switch erhält dann für jedes IP-Subnetz jeweils eine IP-Adresse. Die Bildung der VLANs erfolgt in diesem Fall also nicht auf der Basis von Switch-Ports (port-based VLANs) oder MAC-Adressen (MAC address-based VLANs), sondern nach Zugehörigkeit der Systeme zu IP-Subnetzen (IP subnet-based VLANs).

Die folgende Tabelle zeigt das Verhalten eines Layer-3-Switches bezüglich des Datenverkehrs zwischen zwei Systemen.

Situationsabhängiges Verhalten eines L3-Switches
Systeme über denselben Switch-Port angebunden Systeme über verschiedene Switch-Ports angebunden
Systeme im selben IP-Subnetz (d.h. im selben VLAN) Keine Aktion erforderlich Layer-3-Switch reagiert als (Layer-2-)Switch, d.h. als Brücke
Systeme in verschiedenen IP-Subnetzen (d.h. in verschiedenen VLANs) Layer-3-Switch reagiert als einarmiger Router Layer-3-Switch reagiert als klassischer Router

Beispiel

Die folgende Abbildung zeigt eine Netzkonfiguration, bestehend aus einem Layer-3-Switch, einem (Repeater-)Hub und mehreren Systemen, die den beiden IP-Subnetzen 172.16.16.0 und 172.16.32.0 mit der Maske 255.255.240.0 zugeordnet sind. Jedes der beiden IP-Subnetze bildet geichzeitig ein VLAN, d.h. die System A, B und E gehören zu VLAN 1, die Systeme C und D zu VLAN 2.

Beispiel für ein Netz mit Layer-3-Switch
Layer-3-Switch

Der Layer-3-Switch verhält sich folgendermaßen:

NAT und CIDR

Bereits bei der Vorstellung von Subnetzmasken wurde erwähnt, dass diese eigentlich nur eingeführt wurden, um die knapp gewordenen Adressräume besser ausnutzen zu können. Daneben gibt es noch weitere Möglichkeiten, um dem Dilemma der Adressknappheit zu entgehen: Network Address Translation (NAT) und Classless Inter-Domain Routing (CIDR).

Network Address Translation (NAT)

Der Einsatz eines Routers mit einem Network Address Translator (NAT) ermöglicht es, in einem internen, privaten Netz (z.B. in einem LAN) einen beliebigen, nicht-offiziellen Adressraum zu benutzen und dennoch Kommunikationsverbindungen in ein externes Netz (z.B. das Internet) aufzubauen. Als Eintrittspunkt in das externe Netz wird ein zentraler Router eingesetzt, der aus Sicherheitsgründen ohnehin meist in Form einer Firewall vorhanden ist. Hinter diesem Router, d.h. auf der internen Seite, kann man dann (nahezu) beliebige IP-Adressen vergeben. Allerdings wird empfohlen, sich auf folgende Adressbereiche zu beschränken, da diese Adressbereiche für private Zwecke reserviert sind und im Internet nicht vorkommen:

Klasse A:
Netznummer 10.0.0.0 (1 Netz)
Klasse B:
forlaufende Netznummern von 172.16.0.0 bis 172.31.0.0 (16 Netze)
Klasse C:
fortlaufende Netznummern von 192.168.0.0 bis 192.168.255.0 (256 Netze)

Die privaten IP-Adressen werden durch den NAT-Router auf einen Bereich von offiziell registrierten, weltweit eindeutigen IP-Adressen abgebildet. Diese Abbildung kann dynamisch erfolgen oder statisch eingerichtet werden. Die Kommunikationsbeziehung ist uni-direktional vom internen Netz ins externe Netz gerichtet. Durch statische Adressabbildungen kann in Ausnahmefällen auch eine Kommunikationsbeziehung in die umgekehrte Richtung zugelassen werden.

Bei der Anbindung eines privaten, internen Netzes an das Internet kommt es häufig vor, dass nur eine einzige offizielle IP-Adresse zur Verfügung steht, die von einem Internet-Service-Provider (ISP) zugewiesen wurde. Um nun mehreren Hosts des internen Netzes zeitgleich den Zugang ins Internet zu ermöglichen, wird ein modifiziertes NAT-Verfahren verwendet, das als Network Address Port Translation (NAPT) bezeichnet wird. Hierbei bildet der NAPT-Router jedes Tupel eines Hosts aus dem internen Netz, bestehend aus einer privaten IP-Adresse und einer lokalen Port-Nummer, auf ein Tupel ab, das aus der offiziellen IP-Adresse und einer zugewiesenen Port-Nummer besteht.

Beispiel

An zwei verschiedenen Standorten A und B gibt es zwei voneinander völlig unabhängige interne Netze (private lokale Netze). Jedes der beiden Netze wird als 10-er Netz (privater Adressbereich der Klasse A) betrieben. Der NAT-Router am Standort A erhält von einem ISP die offizielle IP-Adresse 138.76.28.4 (Klasse B), der NAT-Router am Standort B von einem anderen ISP die offizielle IP-Adresse 198.76.28.12 (Klasse C). Beide Router haben auf der internen Seite (zufällig) jeweils die Adresse 10.0.0.1 erhalten.

NAT-Router
NAT-Router

Nun will der Host A mit der IP-Adresse 10.33.96.5 über das Hyper-Text Transfer Protocol (HTTP, Standard-Portnummer 80) auf einen externen Host im Internet mit der offiziellen IP-Adresse 146.81.13.22 zugreifen. Hierbei kommt es zu folgendem Ablauf:

Wenn nun von Host B ebenfalls eine HTTP-Verbindung zu demselben externen Host aufgebaut werden soll, geschieht dies nach denselben Mechanismen, ohne dass sich die beiden Verbindungen in die Quere kommen. Hierbei wäre es sogar möglich (und in der Praxis auch relativ wahrscheinlich), dass die beiden Hosts A und B identische IP-Adressen haben.

Der Nachteil von NAT ist, dass jedes IP-Datagramm zwischengespeichert, zerlegt und mit einer neuen IP-Adresse versehen werden muss, eine neue Prüfsumme berechnet werden muss und schließlich das IP-Datagramm wieder zusammengebaut werden muss. Bei NAPT muss außerdem noch eine neue Port-Nummer zugewiesen werden und eine weitere Prüfsumme auf der Transportebene berechnet werden. Dies kann erhebliche Auswirkungen auf den Datendurchsatz haben.

Classless Inter-Domain Routing (CIDR)

Das traditionelle IP-Routing ist klassensenitiv (classfull), d.h. die Klassenbits geben den Bereich der Netznummer oder Netz-ID an. Durch eine Subnetzmaske kann der Bereich erweitert aber nicht verkleinert werden. Beim Classless Inter-Domain Routing (CIDR) werden die Klassenbits vollständig ignoriert. Jeder Adresse wird eine beliebig lange Maske zugeordnet, die angibt, welcher Adressteil das Netz und welcher den Host identifiziert.

Man kann dadruch mehrere Klasse-B- oder Klasse-C-Netze zu einem Supernetz zusammenfassen. Beispielsweise fasst die Netznummer 193.168.0.0 (Klasse-C-Netz) mit der Maske 255.255.252.0 die vier Netze 193.168.0.0, 193.168.1.0, 193.168.2.0 und 193.168.3.0 zu einem Supernetz zusammen und mit der Maske 255.255.0.0 (Standard-Maske für ein Klasse-B-Netz!) werden sogar alle 256 Klasse-C-Netze 193.168.0.0 bis 193.168.255.0 zu einem einzigen Netz zusammengefasst.

Darüberhinaus werden die Tabellen in den Routern erheblich verkleinert und der Routing-Prozess damit beschleunigt. Statt der 256 Einträge für die einzelnen Klasse-C-Netze wird im letzten Beispiel nur ein einziger Eintrag in der Routing-Tabelle benötigt, nämlich 193.168.0.0/16.

Die folgende Tabelle gibt einige Informationen zu den gebräuchlichsten CIDR-Adressblöcken:

CIDR-Adressblöcke
Länge des Network-Prefix Traditionelle Schreibweise als Netzwerk-Maske Maximale Zahl von Host-IDs pro Network-Prefix Traditionelle Interpretation als klassensensitive Netzwerke (*)
/13 255.248.0.0 524286 8 mal B oder 2048 mal C
/14 255.252.0.0 262142 4 mal B oder 1024 mal C
/15 255.254.0.0 131070 2 mal B oder 512 mal C
/16 255.255.0.0 65534 1 mal B oder 256 mal C
/17 255.255.128.0 32766 128 mal C
/18 255.255.192.0 16382 64 mal C
/19 255.255.224.0 8190 32 mal C
/20 255.255.240.0 4094 16 mal C
/21 255.255.248.0 2046 8 mal C
/22 255.255.252.0 1022 4 mal C
/23 255.255.254.0 510 2 mal C
/24 255.255.255.0 254 1 mal C
/25 255.255.255.128 126 1/2 mal C
/26 255.255.255.192 62 1/4 mal C
/27 255.255.255.224 30 1/8 mal C
(*) B steht für Klasse-B-Netzwerk, C für Klasse-C-Netzwerk