Lokale Netze (LAN) — IP-Router und L3-Switches
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.
- Das Endsystem muss wissen, auf welche Weise und wann es mit einem Router kommunizieren kann.
- Der Router muss in der Lage sein, einen geeigneten Weg zu einem entfernten Netz auszuwählen.
- 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:
- Wenn eine Brücke den Weiterleitungspfad für eine MAC-Zieladresse nicht kennt, sendet sie den Rahmen über alle aktiven Ports aus (Flooding).
- Wenn ein Router den Pfad für eine IP-Zieladresse nicht kennt, verwirft er das IP-Datagramm und sendet eine Fehlermeldung zurück an den Absender.
Ein weiterer wichtiger Unterschied besteht darin, wie die Komponente angesprochen wird:
- Die Brücke ist transparent für ihre Umgebung und braucht daher nicht adressiert zu werden. Die MAC-Adressen ihrer Ports sind den Datenendgeräten ohnehin nicht bekannt. Die Brücke muss daher jeden ankommenden Ethernet-Rahmen prüfen und entscheiden, wie sie mit dem Rahmen weiter verfährt.
- Der Router muss (über seine MAC-Adresse) adressiert werden, da er nur diejenigen IP-Datagramme (verpackt in Ethernet-Rahmen) empfangen und bearbeiten kann, die explizit an ihn gerichtet wurden. Einem sendenden Datenendgerät muss daher die MAC-Adresse des für sie zuständigen Routers bekannt sein. (Zumindest muss die IP-Adress des Routers bekannt sein; die MAC-Adresse kann dann über eine ARP-Anfrage herausgefunden werden.)
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.
System A soll ein IP-Datagramm an System B senden:
- 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.
- 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.
- 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
- 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.
- 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.
- 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.
- 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.
| 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.
Der Layer-3-Switch verhält sich folgendermaßen:
- System A versendet MAC-Broadcast-Rahmen: Layer-3-Switch reagiert als (Layer-2-)Switch und sendet Rahmen über die Ports 1 und 3 für die Systeme B und E aus.
- System A sendet IP-Paket an System E: Layer-3-Switch reagiert als (Layer-2-)Switch und sendet Paket über Port 3 an E.
- System A sendet IP-Paket an System B: Layer-3-Switch reagiert als (Layer-2-)Switch und sendet Paket über Port 1 an B.
- System A sendet IP-Paket an System D: Layer-3-Switch reagiert als Router und sendet Paket über Port 4 an D.
- System A sendet IP-Paket an System C: Layer-3-Switch reagiert als Router und sendet Paket über Port 1 an C.
- System B sendet IP-Paket an System E: Layer-3-Switch reagiert als (Layer-2-)Switch und sendet Paket über Port 3 an E.
- System B sendet IP-Paket an System D: Layer-3-Switch reagiert als Router und sendet Paket über Port 4 an D.
- System B sendet IP-Paket an System C: Layer-3-Switch reagiert als Router und sendet Paket über Port 1 an C.
- System C versendet MAC-Broadcast-Rahmen: Layer-3-Switch reagiert als (Layer-2-)Switch und sendet Rahmen über Port 4 für System D aus.
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.
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:
- Host A weist eine Portnummer zu (z.B. 1257) und sendet ein IP-Paket mit der Quellangabe 10.33.96.5:1257 und der Zielangabe 146.81.13.22:80 an seinen Standard-Router (Default Gateway), der gleichzeitig als NAT-Router konfiguriert ist.
- Der NAT-Router weist eine neue Portnummer zu (z.B. 63451), ersetzt die ursprüngliche Quellangabe durch 138.76.28.4:63451 und sendet das IP-Paket ins externe Netz. Außerdem macht er eine entsprechende Eintragung in seine Routing-Tabelle.
- Der externe Host antwortet dem NAT-Router mit einem IP-Paket, das die Quellangabe 146.81.13.22:80 und die Zielangabe 138.76.28.4:63451 enthält.
- Der NAT-Router erkennt anhand seiner Tabelle, dass er das Paket mit der geänderten Zielangabe 10.33.96.5:1257 in sein internes Netz weiterleiten muss.
- Schließlich empfängt Host A das Antwortpaket des externen Hosts mit den korrekten Quell- und Zielangaben.
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:
| 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 | |||