Funktionsweise
oder: Wie funktioniert ein Router?

Wie bereits im letzten Kapitel gesagt, handelt es sich bei heutigen Heimroutern lediglich um eine besondere Form eines Software-Routers. Denn im Grunde genommen handelt es sich bei Heimroutern um kleine Computer - häufig mit einem [MIPS-Prozessor]. Als Betriebssystem kommt bei allen Heimrouter ein [UNIX]-basiertes Betriebssystem zum Einsatz, welches in Flash-Speichern (der [Firmware]) installiert ist. Bei Backbone-Routern sieht dies natürlich anders aus - dort wird z.B. beim Marktführer Cisco auf die [PowerPC-Architektur], welche früher auch in Macs eingesetzt wurde, sowie dem extra für Cisco-Router und -Switches entwickelte Betriebssystem [Internetwork Operating System] (kurz IOS) gesetzt.

Die einzelnen Netzwerke, die ein Router miteinander verbinden soll, werden über unterschiedliche Schnittstellen mit dem Router verbunden (bei einem einfachen Heimrouter eben einen Anschluss für das Internet und einer für das Heimnetzwerk). In einer internen [Routingtabelle] vermerkt der Router dann, über welche Schnittstelle er welches Netzwerk erreichen kann. Sie ist vergleichbar mit einem Adressbuch, in welchem der Router alle bekannten Ziele nachschlagen kann. Die Routingtabelle ist wie folgt aufgebaut:

IP-Adresse Subnetzmaske Next hop Metrik
... ... ... ...

Nachfolgend die Beschreibungen für die einzelnen Tabellenpunkte:

Typische Routingtabelle unter Windows Server 2003
Typische Routingtabelle unter Windows Server 2003
  • IP-Adresse und Subnetzmaske: Hier wird sowohl die IP-Adresse des zu erreichenden Netzwerkes als auch die zugehörige Subnetzmaske vom Router reingeschrieben. Beispiel: 192.168.0.0 (beinhaltet alle IP-Adressen von 192.168.0.1 bis 192.168.0.255) mit der Subnetzmaske 255.255.255.0.
  • Next hop: Der "Next hop" beschreibt, an welchen Router oder [Gateway] das jeweilige Paket als nächstes weitergeleitet werden muss, um sein Ziel am schnellsten zu erreichen. Hier wird die Adresse des Routers/Gateways sowie die Schnittstelle, über welche dieser erreichbar ist, vermerkt.

  • Metrik: Mit diesem (optionalen) numerischen Wert wird festgestellt, wie gut diese Verbindung im Vergleich zu anderen ist. Ein tieferer Wert ist dabei besser als ein höherer. Allerdings wird dieser Wert bei einem Router erst ausgewertet, wenn mehr als eine Verbindungsmöglichkeit zum Zielnetzwerk existiert. Die Berechnung dieses Wertes ist bei jedem Hersteller anders und kann Werte wie die Bandbreite, Verlässlichkeit oder Transportkosten dieser Verbindung beinhalten.

Dabei gibt es 3 verschiedene Möglichkeiten wie ein Router die erreichbaren Netzwerke erkennt und die notwendigen Informationen für einen Eintrag in die Routingtabelle herausfindet.

Symbolisierte Eintragung von zwei Netzwerken in eine Routingtabelle
Direkte Netzwerke werden zur Routingtabelle hinzugefügt (Symboldarstellung)

Die einfachste Methode gilt hierbei den direkt mit dem Router verbundenen Netzwerken. Diese sind komplett bekannt, daher müssen lediglich die Informationen zur IP-Adresse sowie der Subnetzmaske in diesem Netzwerk von der Schnittstelle abgefragt werden und können danach direkt in die Routingtabelle eingetragen werden.

Eine andere Möglichkeit sind sogenannte "statische Routen". Diese werden nicht direkt vom Router selbst ermittelt, sondern werden vom Administrator des Routers eingetragen und können auch nur von ihm verändert werden (aus diesem Grunde auch "statisch"). Diese sind allerdings nur in kleinen Netzwerken wirklich verwaltbar und dienen der Sicherheit, falls die dritte Methode einmal nicht fehlerfrei funktionieren sollte: die "dynamische Routen".

Dort wird mithilfe eines entsprechenden [Routingprotokolls] von anderen Routern im Netzwerk (z.B. dem Internet) ermittelt, welche Netzwerke alles erreicht werden können. Man unterschiedet hier zwischen 3 verschiedenen Methoden:

  • Link-State-Routing-Protokolle: Bei diesen Protokollen teilen sich die Router gegenseitig mit, welche Netzwerke über die benachbarten Router erreichbar sind. Mit diesem Verfahren ist nach einiger Zeit jedem Router klar, welche Netzwerke erreichbar sind und kann sich danach die kürzesten Wege darin selbst ausrechnen. Ein Beispiel für ein solches Protokoll ist das [Open Shortest Path First]-Protokoll.
  • Distanzvektor-Protokolle: Bei diesen Protokollen teilen die Router sich gegenseitig mit, welche Netzwerke sie wie gut von ihrem Standpunkt aus erreichen können. Für das jeweilige Ziel wird dann automatisch der optimale Nachbar bestimmt - auf diesem Wege wird das Problem zur Ermittlung des kürzesten Weges zum Ziel auf mehrere Router verteilt. Ein Beispiel für ein solches Protokoll ist das [Routing Information Protocol].

  • Pfadvektorprotokolle: Sie stellen eine Unterkategorie der Distanzvektor-Protokolle dar, welche etwas verallgemeinert wurden und eine bessere Erkennung von Schleifen haben. Ein Beispiel für ein solches Protokoll ist das [Border Gateway Protocol].

Innerhalb der Routingtabelle wird häufig nach der Genauigkeit sortiert. Hierbei kommen die spezifischen Einträge zuerst und werden nach und nach unspezifischer, bis am Schluss der Routingtabelle die sogenannte "Default-Route" kommt - dieser Eintrag wird immer dann verwendet, wenn es für das Zielnetzwerk keinen besser passenden Eintrag gibt.

Eine andere Möglichkeit, neben der Entscheidung zur Weiterleitung aufgrund der Adresse, ist dass "Policy Based Routing", welches einige Router ebenfalls beherrschen. Bei dieser Methode können weitere Entscheidungskriterien festgelegt werden. So können zum Beispiel für Pakete, welche eine Internetseite enthalten, ein anderer "Next hop" festgelegt werden als für Paketen mit einer E-Mail darin. Aber auch die Paketgröße, Quelle und viele weitere Kriterien können verwendet werden. Mit dieser Technik können zum Beispiel bestimmte Pakete durch einen [Proxy] geleitet werden, während andere Pakete unfiltert ins Zielnetz transportiert werden.

Wichtig ist, dass ein Router nur Datenpakete verarbeiten kann, welche von einem routingfähigen Protokoll stammen (Beispiel: [IPv4]/[IPv6] oder IPX/SPX). Ältere Protokolle, wie zum Beispiel das von DOS und früher auch von Windows verwendete [NetBIOS] werden von Routern nicht verarbeitet. Der Grund hierfür liegt in der Einordnung von Routern innerhalb des [OSI-Referenzmodells], welches die Aufgaben bei der Kommunikation über das Internet in verschiedene Schichten (sogenannte "layer") unterteilt und die Aufgaben der jeweiligen Schichten genau definiert. Ein Router arbeitet hier in Schicht 3 (Vermittlungsschicht), wohingegen Pakete von diesen älteren Protokollen lediglich von Hardware aus Schicht 2 (Sicherungsschicht, [Switches] und [Hubs]) verarbeitet wird.

Network Address Translaton (NAT)

Eine weitere Funktionalität von Routern ist die sogenannte Network Address Translation-Funktionalität (kurz NAT). Man unterschiedet hierbei zwischen...

  • Source-NAT. Bei diesem Verfahren wird innerhalb des Datenpaketes die private IP-Adresse (-> Heimnetzwerk) des Absenders mit der öffentlichen IP-Adresse (-> Internet) des Routers ausgetauscht. Zusätzlich wird der Quellport, von welchem das Paket beim ursprünglichen Absender stammt, gegen einen freien Port im Router ausgetauscht und so verändert an den Zielserver gesendet. Der Router wartet nun auf eine Antwort vom Zielserver, welche am gleichen Port erwartet wird, wie das ursprüngliche Paket abgesendet wurde. Dadurch kann der Router das Paket einem Empfänger innerhalb des internen Netzwerks zuordnen.

    Dieses Verfahren wird vorallendingen bei Heimroutern verwendet, um das Heimnetzwerk mit dem Internet zu verbinden. Dabei übernimmt es auch bei vielen Routern, fälschlicherweiße, die Funktion einer Sicherheitseinrichtung. Die Hersteller machen sich dabei den Umstand zu Nutze, dass Pakete, welche keine Antwort auf eine Anfrage eines Computers innerhalb des Heimnetzwerkes darstellen, verworfen werden. Allerdings kann dieses Verfahren keine vollständige Firewall ersetzen.

  • Destination-NAT. Dieses Verfahren funktioniert wie Source-NAT, allerdings wird statt der IP-Adresse des Absenders die IP-Adresse des Empfängers verändert. Dieses Verfahren wird häufig verwendet, um unter einer IP-Adresse auf verschiedenen Computersystemen verteile Serverdienste anbieten zu können.

Durch dieses Verfahren kann die Netzwerksicherheit gesteigert werden, da die IP-Adressen innerhalb des privaten Netzes verborgen werden können. Allerdings hat dieses Verfahren auch einige Nachteile.

So wird es häufig nur als Notlösung angesehen, um nicht allen Geräten innerhalb eines nicht ständig mit dem Internet verbundenen Netzwerken (wie es ein Heimnetzwerk darstellt) eine eindeutige IP-Adresse zuweißen zu müssen. Damit umgeht man mithilfe von NAT dem Problem des IPv4-Adressmangels. Außerdem kommt es manchmal zu Problemen, da die ursprünglichen Protokoll-Daten (die sogenannten Header-Daten) verändert werden. Dies stellt einen Designbruch dar und ähnelt einem [Man-in-the-middle-Angriff], womit vorallendingen ältere Protokolle und Verschlüsselungsverfahren Probleme haben.

Sonstiges

Neben den oben beschriebenen Aufgaben des Routings sowie der Adressumsetzung per NAT übernehmen heutige Heimrouter häufig zusätzliche Funktionen, wobei ich hierbei nur auf die wichtigsten und häufigsten Zusatz-Funktionen eingehen möchte.

Dynamic Host Configuration Protocol (DHCP)

Das sogenannte Dynamic Host Configuration Protocol (kurz DHCP) gehört zu den bei jedem Heimrouter standardmäßig aktivierten Diensten. Per DHCP erhält jeder Computer innerhalb des Heimnetzwerkes eine [IP-Adresse] samt [Subnetz] (meist eine aus dem für den privaten Gebrauch freigegebenen Adressblock 192.168.0.0/24), ohne zusätzliche Konfiguration. Neben IP-Adresse können weitere Informationen wie die IP-Adresse des [Gateways], [DNS-Servers], [WINS-Servers] oder [Zeitservers] übertragen werden. Auch eine lokale Such-Domain kann übertragen werden.

Um eine IP-Adresse via DHCP zu erhalten, sendet der entsprechende Computer eine Nachricht an alle Geräte im Netzwerk, auf welche lediglich DHCP-Server antworten. Aus den darüber erhaltenen Antworten mit IP-Adressvorschlägen wählt der Computer einen DHCP-Server aus sendet eine entsprechende Nachricht mit dem ausgewählten DHCP-Server an das komplette Netzwerk um einen sogenannten Lease zu erhalten. Der Lease ist eine zeitlich beschränkte Zuordnung einer IP-Adresse samt Zusatzinformationen. Durch diese Lease-Anfrage verfallen automatisch alle Angebote der anderen Server. Der ausgewählte DHCP-Server antwortet daraufhin mit einer Bestätigung, wodurch der angefragte Rechner die Einstellungen dann übernimmt. Identifiziert werden die einzelnen Server sowie der anfragende Computer über die sogenannte MAC-Adresse innerhalb des Netzwerks, da der anfragende Computer bekannterweiße keine IP-Adresse hat.

Domain Name Server (DNS)

Wie der DHCP-Dienst gehört auch der Domain Name Server-Dienst (kurz DNS-Dienst) zu den essentiellen Funktionen eines Heimrouters. Der DNS-Dienst sorgt für eine Auflösung von Domains in IP-Adressen und ist damit vergleichbar mit einem Telefonbuch, in welchem alle Computer innerhalb des Internets gelistet sind. Entwickelt wurde dieses System 1983 von Paul Mockapetris entwickelt, um das Internet einfacher bedienbar zu machen. Schließlich können sich Menschen eine Domain wie zum Beispiel google.de leichter merken als die dazu gehörende IP-Adresse 74.125.43.104. Verschärft wird dieses Problem mit [IPv6], da dort die Adressen eine Länge von 128 Bit haben (vs. 32 Bit beim heute verbreiteten [IPv4]).

Allerdings werden auf heutigen Heimroutern keine vollwertigen DNS-Server eingesetzt, sondern lediglich DNS-Proxys. Der Unterschied zwischen einem vollwertigen DNS-Server und einem DNS-Proxy liegt darin, dass ein DNS-Proxy die Anfragen an externe DNS-Server weiterleitet (meist die DNS-Server des [ISP]) und das zurückgelieferte Ergebnis eine gewisse Zeit zwischenspeichert für eine schnellere Auflösung der Domain. Ein DNS-Proxy löst daher keine Anfragen selbst auf, sondern bedient sich dabei eines externen DNS-Servers.

WLAN-Access-Point

In der heutigen Zeit gehört kabellose Vernetzung zu einem wichtigen Punkt. WLAN-Heimrouter tragen dieser Entwicklung Rechnung und bieten heutzutage bis zu 300 MBit/Sekunde mit [MIMO-Technologie] - ganz ohne Kabel. Die Hardware-Realisierung basiert hierbei auf handelsüblichen WLAN-Chips (meist in das Board-Layout fest integriert und verlötet), welche mit entsprechend leistungsstarken Antennen ausgestattet werden. Auf Software-Seite werden nahezu alle WLAN-Heimrouter mit der Open Source-Software [Hostapd] betrieben, um ein WLAN-Netzwerk zu erstellen und (insofern WPA/WPA2 zum Einsatz kommen soll) mithilfe der [wpa_supplicant]-Software zu verschlüsseln. Beide Softwarepakete kommen auch bei allen [Distributionen] für den Betrieb eines Eigenbau-Heimrouters zum Einsatz. Dadurch kann beinahe jeder Computer mit integrierter WLAN-Karte als Access Point/Bridge fungieren.

Network Attached Storage (NAS)

Heutzutage sind Heimrouter nicht selten mit USB-Ports ausgestattet, um externe Festplatten oder USB-Sticks anzuschließen. Diese Funktion nennt sich dann häufig Network Attached Storage (kurz NAS) oder Dateifreigabe. Der Datenträger wird dabei auf vorhandene [Partitionen] (verschiedene Einteilungen des Datenträgers) untersucht, um diese daraufhin in das [Dateisystem] einzubinden und über verschiedene [Protokolle], meist über [SMB/CIFS] per [Samba] (Standard-Dateifreigabe-Protokoll von Windows) oder [FTP] über einen entsprechenden FTP-Server, freizugeben. Die Clients können nun eine Verbindung mit dem Heimrouter herstellen und Dateien auf den Datenträger ablegen und lesen. Damit kann man Dateien innerhalb eines Netzwerks an zentraler Stelle abspeichern sowie untereinander austauschen und ist unabhängig von laufenden Computern. Sollte kein Computer auf die Dateifreigabe zugreifen, so wird der Datenträger häufig in einen Energiesparmodus geschaltet (bei externen Festplatten wird in diesem Fall z.B. häufig der Motor deaktiviert) und bei einem Zugriff eines Clients wieder zurück den normalen Modus.

Telefonie-Funktionen

Heutige Heimrouter fungieren häufig - neben DSL-Modem, Router, Switch und WLAN-Access Point/Bridge - zusätzlich auch als Telefonanlage für analoge Telefonie, [ISDN] oder [Voice over IP] bzw. [NGN]. Doch anders als bei den anderen Aufgaben, welche zum Großteil durch Open Source-Software erledigt wird, werden die Telefonie-Funktionen häufig von den Herstellern der Heimrouter selbst programmiert (bei AVM z.B. nennt sich die selbst entwickelte Telefonie-Software schlicht [telefon]). Zwar gibt es mit [Asterisk] eine Open Source-Alternative, welche auch den kommerziellen Vertrieb sowie Abänderungen ohne Quellcode-Weitergabe erlaubt, allerdings wird diese Möglichkeit häufig nicht genutzt und von Grund auf selbst entwickelt. Allerdings besteht auf manchen Heimroutern (z.B. bei der Fritzbox) die Möglichkeit, den vom Hersteller mitgelieferten Dienst für Telefonie gegen Asterisk auszutauschen, um mehr Konfigurationsmöglichkeiten zu erhalten.