Dynamisches Routing/Implementierungen

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte hilf mit, indem du diesen Artikel testest. Wiki/FAQ - häufig gestellte Fragen (Abschnitt „Wikiartikel-testen“).

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Installation von Programmen

  2. Ein Terminal öffnen

  3. Root-Rechte

In diesem Artikel geht es um Implementierungen für Dynamisches Routing.

Das Feld der verfügbaren Implementierungen teilt sich in zwei Routing-Suites und spezielle Einzelimplementierungen. Bei den Suites stehen sich Quagga und BIRD gegenüber. Beide decken ungefähr den gleichen Funktionsumfang ab.

Quelle: LINX - BIRD Route Server Daemon Deployment

Übersichtstabelle

Verfügbare Implementierungen
Quagga BIRD OLSRd
OSPF Ja Ja Nein
IS-IS Ja (Hinweis beachten) Nein Nein
RIP Ja Ja Nein
EIGRP CISCO eigener Standard
BGP Ja Ja Nein
RAdv Ja Ja Nein
OLSR Nein Nein Ja

Quagga - Beispiel

Benötigt werden folgende Pakete:

Paketliste zum Kopieren:

sudo apt-get install quagga 

Oder mit apturl die Pakete installieren. Link: apt://quagga

Nach der Installation findet man unter /etc/quagga/ zwei Konfigurationsdateien:

In daemons wird definiert, welche Dienste gestartet werden sollen. Der Zebra-Dienst wird immer gebraucht, wenn Routen in den Kernel exportiert werden sollen.

zebra=yes
bgpd=no
ospfd=yes
ospf6d=no
ripd=no
ripngd=no
isisd=no

Die Datei debian.conf legt fest, auf welchen Interfaces die Telnet-Ports aufgemacht werden. Standardmäßig wird dort an das Loopback-Interface gebunden.

Für den einfachen Start findet man unter /usr/share/doc/quagga/examples Beispielkonfigurationen für alle Dienste (Daemonen). Hier ein sehr einfaches OSPF-Beispiel:

/etc/quagga/zebra.conf:

!setzt den Routernamen
hostname ospf-router
!aktiviert das Logging über syslog
log syslog

!starte Konfiguration für Interface br0
interface br0
!Aktiviert die Überwachung des Medialinks
  link-detect
interface ath1
   link-detect

/etc/quagga/ospf.conf:

log syslog
!Starte Konfiguration des br0 Interfaces für OSPF-Parameter
interface br0
  !Das Interface hat die fiktiven Kosten 10. Dieser Wert wird für die Gewichtung der besten Route benutzt.
  ip ospf cost 10
  !Ein HELLO-Packet wird alle 30 Sekunden an die Nachbarn verteilt. WICHTIG: Dieser wert muss bei allen Teilnehmern gleich sein.
  ip ospf hello-interval 30
  !Bei einer fehlgeschlagenen Aktualisierung wird das Paket nach 5 Sekunden wiederholt.
  ip ospf retransmit-interval 5
  !Meldet sich ein Router nach 120 Sekunden nicht, wird er als "nicht verfügbar" angesehen und seine Routen werden verworfen.
  ip ospf dead-interval 120
  ip ospf network broadcast

!Aktiviere OSPF
router ospf
  !setzt die Router-ID - wird zum Bestimmen des "designated Routers" benötigt.
  ospf router-id 10.10.69.2
  !Aktiviere OSPF auf br0 (diesem ist 10.10.69.2 zugeordnet
  network 10.10.69.0/24 area 0
  !Verteile (statische) Routen die im Kernel hinterlegt wurden
  redistribute kernel
  !Verteile alle direkt angeschlossenen Netzwerke
  redistribute connected
  !Aktiviere logging für diverse Events
  debug ospf ism status
  debug ospf nsm status
  debug ospf zebra

Im Beispiel sind an den Router zwei Netzwerkinterfaces angeschlossen, jedoch wird OSPF nur auf dem br0-Interface betrieben. Eine komplette Dokumentation aller Konfigurationsbefehle gibt es hier: Quagga-Dokumentation 🇬🇧. Für den schnelleren Einstieg dient eine Beispielanleitung 🇬🇧.

BIRD - Beispiel

Hinweis:

Die BIRD-Version, die mit Ubuntu 12.04 und 14.04 ausgeliefert wird, ist stark veraltet. Einige Funktionen werden noch nicht unterstützt und die verwendete iBGP-Implementierung entspricht nicht dem Standard. Ein "Personal Package Archiv" (PPA) wird direkt vom Entwickler angeboten und gepflegt.

Adresszeile zum Hinzufügen des PPAs:

Hinweis!

Zusätzliche Fremdquellen können das System gefährden.


Ein PPA unterstützt nicht zwangsläufig alle Ubuntu-Versionen. Weitere Informationen sind der Wiki/Vorlagen/PPA/ppa.png PPA-Beschreibung des Eigentümers/Teams cz.nic-labs zu entnehmen.

Damit Pakete aus dem PPA genutzt werden können, müssen die Paketquellen neu eingelesen werden.

Nach dem Aktualisieren der Paketquellen wird folgendes Paket benötigt:

Paketliste zum Kopieren:

sudo apt-get install bird 

Oder mit apturl die Pakete installieren. Link: apt://bird

Nach der Installation findet man die Konfiguration unter /etc/bird/bird.conf. Hier ein einfaches OSPF-Beispiel:

#Aktiviert das Logging über syslog
log syslog all;

#setzt die Router-ID (wird zum bestimmen 
router id 10.11.0.1;

protocol kernel {
  #Alle gelernten Routen werden dem Kernel bekannt gemacht.
  export all;
}

protocol device {
  #Überprüft die Interfaces alle 60 Sekunden
  scan time 60;           
}

protocol ospf {
  #Legt fest was geloggt werden soll.
  debug { states, routes, interfaces };
  area 0 {
    interface "eth0" 10.10.69.0/24 {
      cost 10; #legt die Kosten für die Route fest.
      type broadcast;
      hello 30; #Ein HELLO-Packet wird alle 30 Sekunden an die Nachbarn verteilt. WICHTIG: Dieser Wert muss bei allen Teilnehmern gleich sein.
      retransmit 5; #Bei einer fehlgeschlagenen Aktualisierung wird das Paket nach 5s wiederholt.
      wait 10; #Nach dem Hochfahren des Dämons wird 10s gewartet, bis die Wahl des Designated Routers gestartet wird.
      dead 120; #Meldet sich ein Router nach 120s nicht, wird er als "nicht verfügbar" angesehen und seine Routen werden verworfen.
      authentication none; #Es wird keine Authentifizierung der LSA-Pakete vorgenommen.
      check link; #Der MediaLink wird überprüft.
   };

   interface "eth1.1" 192.168.99.0/24 { 
     cost 10; #legt die Kosten für die Route fest.
     stub; #OSPF-Bird propagiert keine angeschlossenen Netzwerk. Um ein Lokales Netz bekannt zu machen, aber nicht als OSPF-Netz zu nutzen, wird STUB verwendet.
     check link;
   };
}

Wie im Quagga-Beispiel wird hier ein Netz für OSPF freigeschaltet, ein weiteres wird nur bekannt gemacht.

Eine komplette Dokumentation aller Konfigurationsbefehle gibt es hier: Bird-Dokumentation 🇬🇧