IPv6/Router/Advertisement/Daemon/TMP
TMP
Router Advertisement Daemon (radvd)
Der Router Advertisement Daemon ist auf einem LAN dann sehr sinnvoll, wenn die Clients automatisch konfiguriert werden sollen. Der Daemon selbst sollte auf einem Linux Gateway Router eingerichtet sein (es hat nicht notwendigerweise das default IPv4 Gateway zu sein, Vorsicht also wer am LAN Router Advertisements versendet)
Sie können einige Flags und Informationen im Advertisement spezifizieren. Allgemein werden verwendet:
- Präfix (notwendige Angabe)
- Lebensdauer des Präfix
- Intervall der Advertisements (optional)
Nach der korrekten Konfiguration sendet der Daemon die Advertisements über angegebene Interfaces. Die Clients empfangen die Advertisements und konfigurieren automatisch Ihre Adressen mit dem empfangenen Präfix und der Default-Route
radvd konfigurieren
Einfache Konfiguration
Die Konfigurationsdatei des radvd ist normalerweise die Datei /etc/radvd.conf. Eine einfache Konfiguration sieht wie folgt aus:
Als Ergebnis auf der Client-Seite ergibt sich hieraus:
Ein hoher Wert für die Lebensdauer wurde verwendet, da der Wert nicht manuell konfiguriert wurde
Spezielle 6to4 Konfiguration
Seit der Version 0.6.2pl3 wird die automatische (Neu)-Erstellung des Präfixes abhängig von der IPv4 Adresse eines angegebenen Interfaces unterstützt. Dies kann dazu eingesetzt werden, die Advertisements dann in einem LAN zu verteilen, nachdem das 6to4 tunneling geändert wurde. Zumeist eingesetzt wird dies hinter einem dynamischen dial-on-demand Linux Router. Wegen der sicherlich kürzeren Lebensdauer dieser Präfixe (nach jedem dial-up ist ein anderes Präfix gültig), wird der Wert der Lebensdauer auf einen minimalen Wert gesetzt:
Das Ergebnis auf Clientseite ist (unter der Annahme, dass ppp0 die lokale IPv4 Adresse 1.2.3.4 hat):
Da eine kurze Lebensdauer definiert wurde, wird das Präfix bald verworfen werden, sollte kein entsprechendes Advertisement empfangen werden
Achtung: wenn keine spezielle 6to4-Unterstützung der initscripts benutzt wird, ist eine spezielle Route am internen Interface des Routers notwendig, sonst gibt es Probleme bei eingehenden Paketen. Für das gezeigte Beispiel lautet diese:
Diese Route muß jedesmal, wenn der Prefix wechselt, ersetzt werden. Die ist dann der Fall, wenn das Dial-Up-Interface eine neue IPv4-Adresse bekommen hat
Fehlersuche
Mit dem Programm ”radvdump” können Sie gesendete und empfangene Advertisements detailliert betrachten. Die Anwendung ist einfach:
Im Output wird jedes Advertisement in einem lesbarem Format dargestellt. Zu sehen sollten die von Ihnen eingestellten Werte sein; falls dem nicht so ist, wurde das Advertisement eventuell nicht von Ihrem radvd gesendet... (für die Rückverfolgung des Routers können Sie die LLAddress, die MAC Adresse des Routers, verwenden...)
TMP
Router Advertisement Daemon
Installation
root@router :~# apt install radvd The following NEW packages will be installed : radvd upgraded , 1 newly installed , to remove and upgraded Starting radvd: * /etc/radvd.conf does not exist or is empty * See /usr/share/doc/radvd/README.Debian * radvd will *not* be started
Minimale Konfiguration von Radvd
/etc/radvd.conf
interface eth1 { AdvSendAdvert on; MinRtrAdvInterval 15; prefix 2a01:198:200:8a23::/64 { }; };
Radvd wird mit einer ausführlichen Dokumentation ausgeliefert
- Die Dokumentation lässt sich mit den Kommandos man radvd und man radvd.conf anzeigen
Erstkonfiguration von Radvd
- Aufgrund fehlender Konfigurationsdatei verweigert Radvd noch die Aufnahme der Arbeit
- Die Konfiguration reichen wir sogleich nach
- Dazu bearbeiten wir die Datei /etc/radvd.conf gemäß Abbildung
- Für jedes Interface auf dem Radvd Router Advertisements versenden soll, enthält die Konfigurationsdatei einen interface-Block
- Das eigentliche Senden erlaubt oder verbietet der Parameter AdvSendAdvert
- Mit MinRtrAdvInterval legen wir die Zeit in Sekunden fest, die zwischen zwei periodisch versandten Router Advertisements vergehen soll. 15 Sekunden ist ein guter Wert für einen Link dieser Größe
- Anstelle von 2a01:198:200:8a23::/64 setzen Sie das Präfix ein, dass Sie sich vorhin notiert haben
Interface konfigurieren
- Bevor Radvd neu gestartet wird, erhält das Interface eth1 eine Adresse aus dem Präfix, das verteilt werden soll
root@router :~# ip addr add 2a01:198:200:8a23::1/64 dev eth1
Permanente Konfiguration
/etc/network/interfaces
# Loopback Interface auto lo iface lo inet loopback # Interface an VirtualBox auf dem Wirtsystem allow-hotplug eth0 iface eth0 inet dhcp # Interface am Link " internal " auto eth1 iface eth1 inet6 static address 2 a 1 :198:2 :8 a23 ::1 netmask 64
- Der wichtigste Effekt des letzten Schritts ist eine Veränderung in der Routingtabelle von router
user@router :~ $ ip -6 route show 2a01:198:200:a23::/64 dev sixxs proto kernel metric 256 mtu 128 advmss 122 hoplimit 4294967295 2a01:198:200:8a23::/64 dev eth1 proto kernel metric 256 mtu 15 advmss 144 hoplimit 4294967295 default via 2a01:198:200:a23::1 dev sixxs metric 1 24 mtu 128 advmss 122 hoplimit 4294967295
Ohne den Eintrag für eth1 liefe router Gefahr, ein Präfix auf Interface eth1 zu verteilen, zu dem er selbst keine Route kennt
- Für einen Router eine sehr ungünstige Situation, denn diese Pakete würde er dann schlicht verwerfen
Damit das Interface auch nach dem nächsten Neustart wieder so konfiguriert wird, aktualisieren wir die Datei /etc/network/interfaces auf router gemäß Abbildung
Die Konfiguration des Interfaces wird ab jetzt statisch erfolgen
- Die Direktiven up und down haben nun ausgedient und werden durch address und netmask ersetzt
Forwarding aktivieren
- Ein Router ist ein Node der Pakete weiterleitet
- Als Fachbegriff dafür hat sich das englische forwarding durchgesetzt
- Das Forwarding müssen wir router explizit erlauben, denn aus Sicherheitsgründen ist es standardmäßig deaktiviert
- Dazu editieren wir die Datei /etc/sysctl.conf wie in Abbildung gezeigt
/etc/sysctl.conf (Auszug)
# Uncomment the next line to enable packet forwarding for IPv6 # Enabling this option disables Stateless Address Autoconfiguration # based on Router Advertisements for this host net.ipv6.conf.all.forwarding=1
IPv6-Forwarding permanent aktivieren
- Abbildung 5.4: IPv6-Header eines Router Advertisements
Die Änderungen werden erst nach dem nächsten Neustart aktiv
- Alternativ können wir die Prozedur abkürzen und die Änderungen sofort wirksam werden lassen:
root@router:~# sysctl -p net.ipv6.conf.all.forwarding = 1
Jetzt kann router anfangen Router Advertisements zu versenden
- Wir starten den zuständigen Daemon:
root@router :~# service radvd start Starting radvd : radvd
Nun sollte Radvd periodische Router Advertisements aussenden