# Routingtabelle

Eine Routingtabelle (auch Routing Information Base genannt) gibt Aufschluss darüber, auf welchem Weg (Route) sich ein netzwerkfähiges Gerät, also z. B. ein Rechner oder ein Router, mit anderen Netzwerken und deren Teilnehmern zu verbinden hat. Ein einzelner Eintrag in dieser Tabelle weist einem IP-Adressbereich eines Netzwerkziels eine Angabe zu, über welchen Router (Hop) und welche Schnittstelle (Interface) die Daten als Paketstrom zu leiten sind. Jeder Eintrag enthält zusätzlich auch eine Metrik. Anhand dieses Wertes kann der kürzeste Weg mit den wenigsten Weiterleitungen (Hops) gewählt werden.
Das Betriebssystem des Netzwerkgerätes erstellt beim Booten eine Routingtabelle und ergänzt sie danach laufend während des Betriebes. Dazu bedarf es Informationen bezüglich der erreichbaren Netze. Geräte können Netzwerkwege (Routen) auf 3 verschiedene Arten lernen und damit Einträge in der Routingtabelle erzeugen:
* Direkt verbundene Netze: Die Routen für verbundene Netze werden automatisch in die Tabelle übernommen, sobald eine Schnittstelle (Interface) des Rechners mit einer IP-Adresse konfiguriert wird.
* Statische Routen: Statische, also feste Routen werden manuell durch einen Administrator eingetragen. Dies kann u. a. aus Sicherheitsgründen Sinn machen, damit bestimmte Wege nicht mehr anderweitig manipuliert werden können. Solche Listen von statischen Routen sind allerdings nur leicht verwaltbar, wenn die Zahl der Einträge begrenzt bleibt. Sonst verliert man schnell den Überblick und es können sich schwer lokalisierbare Netzfehler oder Sicherheitslücken einschleichen.
* Dynamische Routen: Die Geräte sammeln durch entsprechende Routingprotokolle (z. B. BGP, OSPF, IGRP, EIGRP oder RIP) Informationen über das Netzwerk und seine Teilnehmer. Daraus werden automatisch passende Einträge in der Routingtabelle erzeugt. Im selteneren Fall werden solche Informationen auch an weitere Endgeräte übermittelt.

## Aufbau

Jeder Eintrag in einer Routingtabelle besitzt mindestens folgende Informationen:

### Netzadresse und Subnetzmaske (bzw. die Präfixlänge = Länge der zusammenhängenden Bits der Wertigkeit 1 der Subnetzmaske)

    Diese beiden Angaben bestimmen den IP-Adresspräfix eines Zielnetzes; d. h., beide zusammen identifizieren das Ziel, auf welches sich dieser Tabelleneintrag bezieht.

### Next Hop, oft auch Gateway genannt

    Hierbei handelt es sich um die nächste Routeradresse, an welche ein Paket gesendet werden muss. In der Regel ist dies auf IP-Ebene der Nachbar-Router, an welchen das Paket weitergeleitet werden muss. Beispielsweise kann es jedoch im Falle eines BGP-Routingeintrages auch die Adresse des entsprechenden Border-Routers zum Nachbar-AS sein.

### Metrik

    Fast immer kommt zu jedem Eintrag auch eine Metrikinformation hinzu, die eine Information über die Gewichtung/Präferenz der Nutzung dieser Leitweginformation enthält (z. B. wird bei OSPF die Metrik anhand der auf dem Wege liegenden kleinsten Bandbreite ermittelt. Bei RIP entspricht der Metrik-Wert der Anzahl der Router zum Zielnetz etc.). Die Metrik spielt erst dann eine Rolle, wenn mehrere über dasselbe Routing-Protokoll gelernte Routen für dasselbe Zielnetz existieren. In diesem Fall ist die beste Route diejenige mit dem kleinsten Metrik-Wert. Bei mehreren Routen mit identischem Metrik-Wert erfolgt in der Regel eine Verteilung von IP-Verbindungen über die gleichwertigen Routen („Session-by-Session-Loadbalancing“)
Die Vorgehensweise orientiert sich in erster Linie an einem zu betrachtenden Router, der mit (einem oder) mehreren anderen Netzwerken über Schnittstellen (Interfaces) verbunden ist. Der benachbarte Router ist unter der Gateway-Adresse seines Netzwerks zu erreichen.

## Beispiel

Gegeben sei ein LAN mit drei Subnetzen und einem Zugang ins Internet. Um die Netze miteinander verbinden zu können, werden drei Router eingesetzt:
Die Routingtabelle am Router 2 sieht folgendermaßen aus: :
| Ziel-Netzwerkadresse | Subnetzmaske bzw. Netmask | Gateway bzw. Router | Schnittstelle | Metrik (Anzahl der Hops) |
| 192.168.0.0 | 255.255.255.0 | 192.168.1.1 | 192.168.1.2 | 1 |
| 192.168.1.0 | 255.255.255.0 | - - - - | 192.168.1.2 | 0 |
| 192.168.2.0 | 255.255.255.0 | - - - - | 192.168.2.1 | 0 |
| 0.0.0.0 | 0.0.0.0 | 192.168.1.1 | 192.168.1.2 | 2 |
Die Ziel-Netzwerkadresse ist in diesem Beispiel eine beliebige IP-Adresse aus dem jeweiligen Netzwerk. Im letzten Eintrag steht die Adresse „0.0.0.0“ für die Standardroute, um unbekannte Netzwerke zu erreichen. Die Standardroute steht oft am Anfang oder auch am Ende einer Routingtabelle. Die Schnittstellen werden manchmal abgekürzt (Bsp.: „eth0“ für LAN 1), da sie feste Bestandteile des Gerätes sind.

## Routing und Forwarding

Beim dynamischen Routing kann zwischen Routing- und Forwardingtabellen unterschieden werden.
In der Regel verwaltet jedes Routingprotokoll seine eigene Routingtabelle auf dem Gerät. Laufen auf einem Netzknoten verschiedene Routingprotokolle (z. B. BGP für Interdomain-Routing und OSPF für Intradomain-Routing), so verfügt der Router entsprechend über mehrere Routingtabellen, welche auch meist unterschiedlich aufgebaut sind (vgl. im Beispiel OSPF: Summe der Link-Kosten vs. BGP: Pfadvektor, MED und diverse weitere komplexe Attribute). Diese Tabellen können sogar widersprüchliche Informationen beinhalten, d. h., verschiedene Routingprotokolle geben zum selben Zielnetzwerk unterschiedliche Pfade vor. Daher wird jedes Routingprotokoll mit einer Priorität versehen (Cisco-Terminologie: Administrative Distanz); bei Widersprüchen wird die Route des Protokolls mit der höchsten Priorität (d. h. der niedrigsten administrativen Distanz) verwendet. Die administrative Distanz ist auf dem Router lokal signifikant, d. h., die administrative Distanz wird nicht über Routing-Protokolle etc. an andere Router verteilt.
Das Durchsuchen mehrerer Routingtabellen mit Hilfe des Longest Prefix Match wäre sehr rechenaufwändig. Aus Effizienzgründen kann daher aus vielen verschiedenen Routingeinträgen bzw. verschiedenen Routingtabellen eine einzige Forwardingtabelle (auch Forwarding Information Base, kurz FIB) erstellt werden, mit welcher eine hardwarenahe Verarbeitung weiterzuleitender Pakete ermöglicht wird. Obwohl die hardwarenahe Forwarding-Tabelle aus der softwarebasierten Routing-Tabelle generiert wird, werden beide häufig unter dem Begriff Routingtabelle subsumiert.

## Anzeigen der Routingtabelle

* IPv4
** Bei IOS-basierten Cisco-Routern lässt sich die Routingtabelle mittels des Befehls show ip route auflisten.
** Bei Windows- und Unix-Systemen (inkl. Linux) kann die Routingtabelle mittels des Befehls netstat -r angezeigt werden (in Windows z. B. über die App „Eingabeaufforderung“).
** Unter MacOS wird die Routingtabelle mit dem Befehl netstat -nr angezeigt.
** Bei Windows funktioniert dies auch über den Befehl route print bzw. route -4 print.
** Unter Linux gibt es hierfür auch iproute2 (route bzw. ip route).
* IPv6
** Bei Linux route -6 oder ip -6 route
** Bei Unix-Systemen (inkl. Linux) entsprechend netstat -A inet6 -r, route -A inet6
** Bei Windows gibt netsh interface ipv6 show route bzw. route -6 print die Routingtabelle aus.