RIP-Laborübung im keinpasswort-Account

IN ARBEIT

Hinweis-Seite:

Offizielle Dokumentation zu quagga: http://www.nongnu.org/quagga/docs.html

HowTo: http://opentodo.net/2012/08/configuring-routing-protocols-with-quagga/

Schritte zum Einrichten von RIP

Zunächst sollte man sich mit dem Grundgerüst quagga vertraut machen. Dieser Daemon (Dienst) stellt die Basis für alle weiteren Konfigurationen dar. Der quagga-Daemon ist auf einer eigenen Seite erklärt. Über den quagga-Dienst werden indirekt die einzelnen Routing-Module (z.B. RIP, OSPF) gestartet.

Das folgende Bild zeigt den Aufbau der Module von Quagga. Modulaufbau von Quagga

Im Folgenden werden die grundlegenden Schritte aufgeführt, die nötig sind, um RIP unter Linux zu nutzen.

Routing aktivieren

Grundlegende Daten im zebra-daemon konfigurieren1) Daemon: Ein Dienst wird unter Linux auch als Daemon bezeichnet. So gibt es z.B. einen Drucker-Dienst, der cups-daemon heisst.

Spezielle RIP-Parameter im rip-daemon konfigurieren

Routing aktivieren (FORWARDING)

Um einen PC zum Router zu machen, muss dieser in den FORWARDING-Modus versetzt werden. Das heißt der PC kann Datenpakete über Schnittstellen hinweg weiterleiten. Normalerweise behandelt ein PC jede Schnittstelle getrennt und würde die Datenpakete nicht weiterleiten.

Unter Linux geschieht dies über den folgenden Befehl:

sudo sysctl net.ipv4.ip_forward=1

Über den folgenden Befehl kann der aktuelle Status des FORWARDING überprüft werden:

cat /proc/sys/net/ipv4/ip_forward
1: FORWARDING aktiviert
0: FORWARDING deaktiviert

Konfiguration des zebra-Moduls

Man muss sich die einzelnen Module wie einen „Standalone“-Router vorstellen, der per Remote-Zugriff konfiguriert wird. Da man direkten Zugriff auf die Maschine selbst hat, ist die remote-Adresse der eigene Rechner also localhost:

telnet localhost 2601

AUSGABE:

Hello, this is Quagga (version 0.99.22.1).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
User Access Verification
Password:

Als Passwort verwendet man zebra bzw. das Passwort, das man in der zebra-Konfigurationsdatei (/etc/quagga/zebra.conf2) hier kann auch der Name des Routers gesetzt werden ) gesetzt hat.

Alternativ zur direkten Eingabe der Kommandos, kann auch eine Textdatei als Konfigurationsdatei herangezogen werden. Der Befehlt show running-config gibt die aktuelle Konfiguration aus, die für die Textdatei genutzt werden kann. Für das obige Beispiel würde demnach folgender Inhalt darin stehen:

! hostname tralala password zebra enable password zebra ! interface eth0 ip address 10.0.0.1/8 ipv6 nd suppress-ra ! interface eth1 ipv6 nd suppress-ra ! interface lo ! ! ! line vty ! end

Die folgende Tabelle zeigt die wichtigsten Befehle des zebra-Moduls. Mit ? bzw. list kann jederzeit die Hilfe angezeigt werden (vgl. STP-Übung).

Befehl	Funktion	Beispiel
show	Zeigt die aktuelle Konfiguration an z.B. die Routing-Tabelle	show ip route
enable/disable	Aktiviert/deaktiviert den Router	enable oder disable
configure terminal	Wechseln in den Konfigurationsmodus. Neues Prompt:Router(config)	configure terminal
interface	Auswählen der Schnittstelle, die konfiguriert werden soll. Im Prompt:Router(config)	interface eth0
ip/no ip	Setzen/Löschen einer IP-Adresse für das ausgewählte Interface. Im Prompt: Router(config-if):	ip address 10.0.0.1/8
shutdown/no shutdown	Schnittstelle aktivieren/deaktivieren. Im Prompt: Router(config-if):	no shutdown
hostname	Setzen des Router-Namens.	hostname <NEUERNAME>

Beispiel Befehlsfolge im CLI3) CLI: command line interface; Kommandozeile des zebra/ripd-Daemons :

telnet localhost 2601
Password: zerbra
Router>enable
Password: zebra
Router#configure terminal
Router(config)#interface eth0
Router(config-if)#ip address 10.0.0.1/8
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#hostname tralala
tralala(config-if)#show running-config
Current configuration:
!
hostname tralala
password zebra
enable password zebra
!
interface eth0
ip address 10.0.0.1/8
ipv6 nd suppress-ra
!
interface eth1
ipv6 nd suppress-ra
!
interface lo
!
!
!
line vty
!
end

Konfiguration des ripd-Moduls

! -*- rip -*- ! ! ! hostname ripd password zebra ! ! debug rip events ! debug rip packet ! router rip network 11.0.0.0/8 network eth0 ! route 10.0.0.0/8 ! distribute-list private-only in eth0 ! version 1 ip split-horizon

Das RIP-Modul ripd wird ähnlich konfiguriert. Hier legt man fest, auf welchen Schnittstellen das RIP-Protokoll ausgeführt werden soll. Bei der Telnet-Verbindung muss allerdings der Port 2602 verwendet werden.

Hier ein Auszug der wichtigsten Befehle:

Befehl	Funktion	Beispiel
show	Zeigt die aktuelle Konfiguration an z.B. die Routing-Tabelle	show running-config
enable/disable	Aktiviert/deaktiviert den Router	enable oder disable
configure terminal	Wechseln in den Konfigurationsmodus. Neues Prompt:Router(config)	configure terminal
hostname	Setzen des Router-Namens.	hostname <NEUERNAME>
router	Auswahl des Routers. Im Prompt:Router(config)	router rip oder router zebra
version	Version des RIP-Protokolls. Im Prompt:Router(config)	version 2
network <SUBNETZ>	Subnetz für das RIP aktiviert werden soll. Im Prompt:Router(config)	network 10.0.0.0/8
network <SCHNITTSTELLE>	Schnittstelle für die RIP aktiviert werden soll. Im Prompt:Router(config)	network eth0
passive-interface / no passive-interface	Das Interface konsumiert zwar alle RIP-Nachrichten, sendet aber selbst keine(DEFAULT).	no passive-interface eth0
ip split-horizon / no ip split-horizon	Das Split-Horizon wird aktiviert(DEFAULT) / deaktiviert. Mit no sendet das Interface aktiv.	no passive-interface eth0

Beispiel Befehlsfolge im CLI3):

telnet localhost 2602
<code>telnet localhost 2602

Wo und wie wird konfiguriert

ACHTUNG: Abweichend von der quagga-Beschreibung wurde für die Laborumgebung ein anderer Pfad für die Konfigurationsdateien gewählt. Dies ermöglicht es die Konfiguration im Account des Benutzers keinpasswort vorzunehmen und nach jedem Login/Logout bzw. Reboot zurückzusetzen.

Als Ordner für die zum quagga gehörenden Module wurde der folgende Pfad voreingestellt:

/home/keinpasswort/quagga/

Dort befinden sich die Beispielkonfigurationen für die beiden Daemons ripd und ospfd sowie den zebra-daemon. Die Dateien können von jedem Benutzer geändert werden. Durch Eingabe des nächsten Befehls wird der gesamte quagga-Daemon und seine Module (ripd und ospfd) neugestartet (restart), gestoppt (stop) bzw. gestartet (start).

sudo /etc/init.d/quagga [restart|stop|start]