Router Advertisement Daemon: Unterschied zwischen den Versionen

Aus Foxwiki
K (Textersetzung - „fuzzball“ durch „router“)
 
(102 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Routing unter IPv6 ist nahezu identisch mit dem IPv4-Routing unter Classless Inter-Domain Routing (CIDR). Der einzige Unterschied besteht darin, dass es sich bei den Adressen um 128-Bit-IPv6-Adressen anstelle von 32-Bit-IPv4-Adressen handelt. Bei sehr einfachen Erweiterungen können alle IPv4-Routing-Algorithmen, z. B. OSPF, RIP, IDRP und IS-IS, zum Routen von IPv6 verwendet werden.
'''Router Advertisement Daemon''' ('''radvd''') - Dienst zum Versand von IPv6-[[Router-Advertisement]]s


== <big>IPv6-Routing </big> ==
== Beschreibung ==
; Der Router Advertisement Daemon wird von Systemadministratoren bei der [[IPv6#Zustandslose Adressautokonfiguration (SLAAC)|Zustandslose Autokonfiguration]] ({{IETF RFC|4862}}) von Netzwerkhosts in [[Internetprotokoll]]-Netzwerken der Version 6 verwendet


* Zuerst muss man IPv6-Forwarding einschalten.
; Wenn IPv6-Hosts ihre [[Network Interface Controller]]s konfigurieren, führen sie [[Multicast]] [[Router Solicitation]]-Anfragen (RS) in das Netz, um verfügbare Router zu finden.  
* Hierzu muss eine Konfigurationsdatei geändert werden.
* Radvd beantwortet die Anfragen mit [[Router Advertisement]]-Nachrichten (RA).  
# vi /etc/sysctl.conf
* Darüber hinaus sendet radvd regelmäßig RA-Pakete an die angeschlossene Verbindung, um die Hosts im Netz zu aktualisieren.  
* Die Router-Advertisement-Nachrichten enthalten das auf dem Link verwendete Routing-Präfix, die [[Maximum Transmission Unit]] (MTU) des Links und die Adresse des zuständigen [[Default-Router]]s


Hier sucht man folgende Zeile, setzt den Wert hinter dem Gleichheitszeichen auf "1" und entfernt das "#" am Anfang der Zeile.
; Radvd unterstützt auch die in [[RFC 6106]] veröffentlichten Optionen rekursiver DNS-Server (RDNSS) und DNS-Suchliste (DNSSL) für NDP
net.ipv6.conf.all.forwarding=1
* [[Link-local address|link-local]]-Ankündigungen von [[IPv6]]-Routeradressen und
* IPv6-Routing-Präfixen unter Verwendung des [[Neighbor Discovery Protocol]] (NDP) gemäß [[RFC 2461]]
* [[Open-Source-Software|open-source]]
* [[Linux]] and [[BSD]]
* [[BSD license|BSD]]-style [[License proliferation#Vanity licenses|vanity]]


Damit die Einstellung übernommen werden empfiehlt
== Router Advertisement ==
; IPv6-Router verteilen ein [[IPv6/Prefix]] im lokalen Netzwerk mithilfe von Advertisements
* Dazu eignet sich der Router Advertisement Daemon "radvd", der installiert und dann konfiguriert werden muss


# sysctl -p
=== Installation ===
# apt install radvd


'''Subnetz zuweisen:''' Dazu öffnen wir die Konfigurationsdatei mit den Netzwerk aktivieren.
=== Konfiguration ===
'''/etc/radvd.conf'''
interface enp2s0 {
  AdvSendAdvert on;
  AdvLinkMTU 1280;
  MaxRtrAdvInterval 120;
  prefix 2020:fa19::/64 { };
  AdvSourceLLAddress on;
};


# vi /etc/network/interfaces
{| class="wikitable sortable options"
|-
! Option !! Beschreibung
|-
| AdvSendAdvert || Gibt an,dass der Router regelmäßig Routerankündigungen sendet oder nicht und auf Routeranfragen reagiert. Default: off
|-
| AdvLinkMTU || Gibt den Wert für eine Maximum Transmission Unit (MTU) an, die vom Router gesendet wird. Null kennzeichnet, dass der Router keine MTU-Optionen angibt
|-
| MaxRtrAdvInterval || Gibt die maximale Dauer zwischen dem Senden von nicht angeforderten Multicast Advertisement-Nachrichten an
|-
| prefix || Gibt Präfix-Informationen für eine Schnittstelle bekannt. Verwenden Sie die folgende Syntax: prefix Präfix/Länge Schnittstelle [Variablenwert]
|-
| AdvSourceLLAddress|| Wenn festgelegt, ist die MAC-Adresse der ausgehenden Schnittstelle in der RA enthalten
|}


Dort fügen wir folgende Minimal-Konfiguration zusätzlich ein:
=== IPv6-Forwarding aktivieren ===
'''/etc/sysctl.conf'''
net.ipv6.conf.all.forwarding=1
 
'''Einstellung übernehmen'''
# sysctl -p


=== Subnetz zuweisen ===
'''/etc/network/interfaces'''
  # IPv6
  # IPv6
  iface enp2s0 inet6 static
  iface enp2s0 inet6 static
  address 2001:db8::1  
  address 2020:fa19::1  
  netmask 64
  netmask 64


Die hier verwendete IPv6-Adresse muss durch eine Adresse aus dem eigenen Subnetz ersetzt werden. Wichtig ist hier, dass die IPv6-Adresse aus dem "Subnet Prefix" gewählt wird und nicht aus dem Präfix des Tunnels!
'''Einstellungen übernehmen'''
Das IPv6-Gateway braucht zwingend eine statische IPv6-Adresse, damit das Routing funktioniert.
# systemctl restart networking
 
'''Einstellungen prüfen'''
# ip a
 
=== radvd starten ===
Nach den Änderungen an der Konfigurationsdatei muss man den Daemon manuell starten
# systemctl enable radvd
 
Wenn der Daemon bereits läuft, ist ein Neustart des Daemons notwendig
# systemctl start radvd
 
<noinclude>
 
== 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:
interface eth0 {
        AdvSendAdvert on;
        MinRtrAdvInterval 3;
        MaxRtrAdvInterval 10;
        prefix 2001:0db8:0100:f101::/64 {
                AdvOnLink on;
                AdvAutonomous on;
                AdvRouterAddr on;
        };
};
 
Als Ergebnis auf der Client-Seite ergibt sich hieraus:
 
# ip -6 addr show eth0
3: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100
    inet6 2001:0db8:100:f101:2e0:12ff:fe34:1234/64 scope global dynamic
        valid_lft 2591992sec preferred_lft 604792sec
    inet6 fe80::2e0:12ff:fe34:1234/10 scope link
 
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:
 
interface eth0 {
        AdvSendAdvert on;
        MinRtrAdvInterval 3;
        MaxRtrAdvInterval 10;
        prefix 0:0:0:f101::/64 {
                AdvOnLink off;
                AdvAutonomous on;
                AdvRouterAddr on;
                Base6to4Interface ppp0;
                AdvPreferredLifetime 20;
                AdvValidLifetime 30;
        };
};
 
Das Ergebnis auf Clientseite ist (unter der Annahme, dass ppp0 die lokale IPv4 Adresse 1.2.3.4 hat):
 
# /sbin/ip -6 addr show eth0
3: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100
    inet6 2002:0102:0304:f101:2e0:12ff:fe34:1234/64 scope global dynamic
      valid_lft 22sec preferred_lft 12sec
    inet6 fe80::2e0:12ff:fe34:1234/10 scope link
 
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:
 
# /sbin/ip -6 route add 2002:0102:0304:f101::/64 dev eth0 metric 1
 
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:
 
# radvdump
Router advertisement from fe80::280:c8ff:feb9:cef9 (hoplimit 255)
        AdvCurHopLimit: 64
        AdvManagedFlag: off
        AdvOtherConfigFlag: off
        AdvHomeAgentFlag: off
        AdvReachableTime: 0
        AdvRetransTimer: 0
        Prefix 2002:0102:0304:f101::/64
                AdvValidLifetime: 30
                AdvPreferredLifetime: 20
                AdvOnLink: off
                AdvAutonomous: on
                AdvRouterAddr: on
        Prefix 2001:0db8:100:f101::/64
                AdvValidLifetime: 2592000
                AdvPreferredLifetime: 604800
                AdvOnLink: on
                AdvAutonomous: on
                AdvRouterAddr: on
        AdvSourceLLAddress: 00 80 12 34 56 78
 
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...)
 
== Anhang ==
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
----
* [[Dynamic Host Configuration Protocol]] (DHCP)
* [[Domain Name System]] (DNS)
* [[Neighbor Discovery Protocol]]
* [[Netsh]] unter Microsoft Windows deckt ähnliche Funktionen ab
 
==== Dokumentation ====
==== Links ====
===== Projekt =====
===== Weblinks =====
# [http://radvd.litech.org/ Radvd-Webseite]
# [https://github.com/radvd-project/radvd/ Quellcode]
# https://mirrors.bieringer.de/Linux+IPv6-HOWTO-de/hints-daemons-radvd.html


[[Kategorie:IPv6/Router]]


=== 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)


Damit die Einstellung übernommen werden sollte jetzt ein Reboot vorgenommen werden.
Sie können einige Flags und Informationen im Advertisement spezifizieren. Allgemein werden verwendet:


# systemctl restart Networking
* Präfix (notwendige Angabe)
* Lebensdauer des Präfix
* Intervall der Advertisements (optional)


Nach dem Neustart schadet es nicht, wenn man mit <code>ip a</code> kurz prüft.
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


== <big> Präfix im lokalen Netzwerk verteilen (Router Advertisement) </big> ==
===== radvd konfigurieren =====
Hierfür eignet sich der Router Advertisement Daemon "radvd", der installiert und dann konfiguriert werden muss.
====== Einfache Konfiguration ======
Die Konfigurationsdatei des radvd ist normalerweise die Datei /etc/radvd.conf. Eine einfache Konfiguration sieht wie folgt aus:


# apt install radvd
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:


Nach der Installation muss "radvd" konfiguriert werden.
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...)


  # vi /etc/radvd.conf
= TMP =
== Router Advertisement Daemon ==


In die noch leere Datei trägt man folgende Minimal-Konfiguration ein:
=== 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


  interface enp2s0 {
===  Minimale Konfiguration von Radvd ===
  AdvSendAdvert on;
/etc/radvd.conf
  AdvLinkMTU 1280;
  interface eth1 {
  MaxRtrAdvInterval 120;
AdvSendAdvert on;
  prefix 2001:db8::/64 { };
MinRtrAdvInterval 15;
  AdvSourceLLAddress on;
prefix 2a01:198:200:8a23::/64 { };
  };
  };
{| class="wikitable"
|-
| <code> interface enp2s0 </code> || <br>
Das klassische Namensschema für vom Kernel angewendete Netzwerkschnittstellen besteht darin, allen Schnittstellen einfach Namen zuzuweisen, die mit "eth" beginnen, während sie von den Treibern geprüft werden.
<br>
|-
| <code> AdvSendAdvert on; </code> || <br>
Ein Flag, das angibt, ob der Router regelmäßig Routerankündigungen sendet oder nicht und auf Routeranfragen reagiert.
Diese Option muss nicht mehr zuerst angegeben werden, sondern muss aktiviert sein, um Werbung auf dieser Schnittstelle zu aktivieren.


Default: off <br>
Radvd wird mit einer ausführlichen Dokumentation ausgeliefert
|-
* Die Dokumentation lässt sich mit den Kommandos man radvd und man radvd.conf anzeigen
|<code> AdvLinkMTU 1280 </code>  || <br>
 
Gibt den Wert für eine Maximum Transmission Unit (MTU) an, die vom Router gesendet wird. Null kennzeichnet, dass der Router keine MTU-Optionen angibt.
===  Erstkonfiguration von Radvd ===
<br>
; Aufgrund fehlender Konfigurationsdatei verweigert Radvd noch die Aufnahme der Arbeit
|-
* Die Konfiguration reichen wir sogleich nach
| <code> MaxRtrAdvInterval 120; </code> || <br>
* Dazu bearbeiten wir die Datei /etc/radvd.conf gemäß Abbildung
Gibt die maximale Dauer zwischen dem Senden von nicht angeforderten Multicast Advertisement-Nachrichten an. <br>
 
|-
; Für jedes Interface auf dem Radvd Router Advertisements versenden soll, enthält die Konfigurationsdatei einen interface-Block
| <code> prefix 2001:db8::/64 { }; </code> || <br>
* Das eigentliche Senden erlaubt oder verbietet der Parameter AdvSendAdvert
Gibt Präfix-Informationen für eine Schnittstelle bekannt. Verwenden Sie die folgende Syntax:
* 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


prefix Präfix/Länge Schnittstelle [Variablenwert] <br>
IPv6-Forwarding permanent aktivieren


|-
: Abbildung 5.4: IPv6-Header eines Router Advertisements
| Beispiel || Beispiel
|}


Nach den Änderungen an der Konfigurationsdatei muss man den Daemon manuell starten.
Die Änderungen werden erst nach dem nächsten Neustart aktiv
  # systemctl start radvd
* 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


Wenn der Daemon bereits läuft, ist ein Neustart des Daemons notwendig.
Jetzt kann ''router'' anfangen Router Advertisements zu versenden
  # systemctl restart radvd
* Wir starten den zuständigen Daemon:
  root@router :~# service radvd start
Starting radvd : radvd  


Nun sollte Radvd periodische Router Advertisements aussenden


[[Category:Netzwerke:IPv6 ]]
</noinclude>
[[Category:Linux ]]
[[Category:Router ]]

Aktuelle Version vom 22. Januar 2024, 15:44 Uhr

Router Advertisement Daemon (radvd) - Dienst zum Versand von IPv6-Router-Advertisements

Beschreibung[Bearbeiten | Quelltext bearbeiten]

Der Router Advertisement Daemon wird von Systemadministratoren bei der Zustandslose Autokonfiguration (Vorlage:IETF RFC) von Netzwerkhosts in Internetprotokoll-Netzwerken der Version 6 verwendet
Wenn IPv6-Hosts ihre Network Interface Controllers konfigurieren, führen sie Multicast Router Solicitation-Anfragen (RS) in das Netz, um verfügbare Router zu finden.
  • Radvd beantwortet die Anfragen mit Router Advertisement-Nachrichten (RA).
  • Darüber hinaus sendet radvd regelmäßig RA-Pakete an die angeschlossene Verbindung, um die Hosts im Netz zu aktualisieren.
  • Die Router-Advertisement-Nachrichten enthalten das auf dem Link verwendete Routing-Präfix, die Maximum Transmission Unit (MTU) des Links und die Adresse des zuständigen Default-Routers
Radvd unterstützt auch die in RFC 6106 veröffentlichten Optionen rekursiver DNS-Server (RDNSS) und DNS-Suchliste (DNSSL) für NDP

Router Advertisement[Bearbeiten | Quelltext bearbeiten]

IPv6-Router verteilen ein IPv6/Prefix im lokalen Netzwerk mithilfe von Advertisements
  • Dazu eignet sich der Router Advertisement Daemon "radvd", der installiert und dann konfiguriert werden muss

Installation[Bearbeiten | Quelltext bearbeiten]

# apt install radvd

Konfiguration[Bearbeiten | Quelltext bearbeiten]

/etc/radvd.conf

interface enp2s0 {
  AdvSendAdvert on;
  AdvLinkMTU 1280;
  MaxRtrAdvInterval 120;
  prefix 2020:fa19::/64 { };
  AdvSourceLLAddress on;
};
Option Beschreibung
AdvSendAdvert Gibt an,dass der Router regelmäßig Routerankündigungen sendet oder nicht und auf Routeranfragen reagiert. Default: off
AdvLinkMTU Gibt den Wert für eine Maximum Transmission Unit (MTU) an, die vom Router gesendet wird. Null kennzeichnet, dass der Router keine MTU-Optionen angibt
MaxRtrAdvInterval Gibt die maximale Dauer zwischen dem Senden von nicht angeforderten Multicast Advertisement-Nachrichten an
prefix Gibt Präfix-Informationen für eine Schnittstelle bekannt. Verwenden Sie die folgende Syntax: prefix Präfix/Länge Schnittstelle [Variablenwert]
AdvSourceLLAddress Wenn festgelegt, ist die MAC-Adresse der ausgehenden Schnittstelle in der RA enthalten

IPv6-Forwarding aktivieren[Bearbeiten | Quelltext bearbeiten]

/etc/sysctl.conf

net.ipv6.conf.all.forwarding=1

Einstellung übernehmen

# sysctl -p

Subnetz zuweisen[Bearbeiten | Quelltext bearbeiten]

/etc/network/interfaces

# IPv6
iface enp2s0 inet6 static
address 2020:fa19::1 
netmask 64

Einstellungen übernehmen

# systemctl restart networking

Einstellungen prüfen

# ip a

radvd starten[Bearbeiten | Quelltext bearbeiten]

Nach den Änderungen an der Konfigurationsdatei muss man den Daemon manuell starten

# systemctl enable radvd

Wenn der Daemon bereits läuft, ist ein Neustart des Daemons notwendig

# systemctl start radvd


Router Advertisement Daemon (radvd)[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

Einfache Konfiguration[Bearbeiten | Quelltext bearbeiten]

Die Konfigurationsdatei des radvd ist normalerweise die Datei /etc/radvd.conf. Eine einfache Konfiguration sieht wie folgt aus:

interface eth0 {
       AdvSendAdvert on;
       MinRtrAdvInterval 3;
       MaxRtrAdvInterval 10;
       prefix 2001:0db8:0100:f101::/64 {
               AdvOnLink on;
               AdvAutonomous on;
               AdvRouterAddr on;
       };
};

Als Ergebnis auf der Client-Seite ergibt sich hieraus:

# ip -6 addr show eth0
3: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100
    inet6 2001:0db8:100:f101:2e0:12ff:fe34:1234/64 scope global dynamic
       valid_lft 2591992sec preferred_lft 604792sec
    inet6 fe80::2e0:12ff:fe34:1234/10 scope link

Ein hoher Wert für die Lebensdauer wurde verwendet, da der Wert nicht manuell konfiguriert wurde

Spezielle 6to4 Konfiguration[Bearbeiten | Quelltext bearbeiten]

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:

interface eth0 {
       AdvSendAdvert on;
       MinRtrAdvInterval 3;
       MaxRtrAdvInterval 10;
       prefix 0:0:0:f101::/64 {
               AdvOnLink off;
               AdvAutonomous on;
               AdvRouterAddr on;
               Base6to4Interface ppp0;
               AdvPreferredLifetime 20;
               AdvValidLifetime 30;
       };
};

Das Ergebnis auf Clientseite ist (unter der Annahme, dass ppp0 die lokale IPv4 Adresse 1.2.3.4 hat):

# /sbin/ip -6 addr show eth0
3: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100
   inet6 2002:0102:0304:f101:2e0:12ff:fe34:1234/64 scope global dynamic
      valid_lft 22sec preferred_lft 12sec
   inet6 fe80::2e0:12ff:fe34:1234/10 scope link

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:

# /sbin/ip -6 route add 2002:0102:0304:f101::/64 dev eth0 metric 1

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[Bearbeiten | Quelltext bearbeiten]

Mit dem Programm ”radvdump” können Sie gesendete und empfangene Advertisements detailliert betrachten. Die Anwendung ist einfach:

# radvdump
Router advertisement from fe80::280:c8ff:feb9:cef9 (hoplimit 255)
       AdvCurHopLimit: 64
       AdvManagedFlag: off
       AdvOtherConfigFlag: off
       AdvHomeAgentFlag: off
       AdvReachableTime: 0
       AdvRetransTimer: 0
       Prefix 2002:0102:0304:f101::/64
               AdvValidLifetime: 30
               AdvPreferredLifetime: 20
               AdvOnLink: off
               AdvAutonomous: on
               AdvRouterAddr: on
       Prefix 2001:0db8:100:f101::/64
               AdvValidLifetime: 2592000
               AdvPreferredLifetime: 604800
               AdvOnLink: on
               AdvAutonomous: on
               AdvRouterAddr: on
       AdvSourceLLAddress: 00 80 12 34 56 78

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...)

Anhang[Bearbeiten | Quelltext bearbeiten]

Siehe auch[Bearbeiten | Quelltext bearbeiten]


Dokumentation[Bearbeiten | Quelltext bearbeiten]

Links[Bearbeiten | Quelltext bearbeiten]

Projekt[Bearbeiten | Quelltext bearbeiten]
Weblinks[Bearbeiten | Quelltext bearbeiten]
  1. Radvd-Webseite
  2. Quellcode
  3. https://mirrors.bieringer.de/Linux+IPv6-HOWTO-de/hints-daemons-radvd.html

TMP[Bearbeiten | Quelltext bearbeiten]

Router Advertisement Daemon (radvd)[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]
Einfache Konfiguration[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

Router Advertisement Daemon[Bearbeiten | Quelltext bearbeiten]

Installation[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

/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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

/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[Bearbeiten | Quelltext bearbeiten]

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