Zum Inhalt springen

IPv6/Router/Advertisement/Daemon: Unterschied zwischen den Versionen

Aus Foxwiki
OthmanAldaood (Diskussion | Beiträge)
K Textersetzung - „<div style="column-count:3">“ durch „<div style="column-count:2">“
 
(178 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== <big>IPv6-Routing einschalten</big> ==
'''{{BASEPAGENAME}}''' - [[Router Advertisement]]-[[Daemon]] (radvd)


Zuerst muss man IPv6-Forwarding einschalten. Das sorgt dafür, dass der Raspberry Pi die IPv6-Pakete zwischen dem LAN und dem SixXS-Tunnel routet. Hierzu muss eine Konfigurationsdatei geändert werden.
== Beschreibung ==
# vi /etc/sysctl.conf
Dienst zum Versand von IPv6-[[Router-Advertisement]]s
* [[IPv6#Zustandslose Adressautokonfiguration (SLAAC)|Zustandslose Autokonfiguration]] ([[RFC/4862]]) von Netzwerkhosts in [[Internetprotokoll]]-Netzwerken der Version 6


Hier sucht man folgende Zeile, setzt den Wert hinter dem Gleichheitszeichen auf "1" und entfernt das "#" am Anfang der Zeile.
; Adressauflösung
net.ipv6.conf.all.forwarding=1
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
* 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-Router]]s


Anschließend die Datei speichern und schließen:<code> :wq </code>
Radvd unterstützt auch die in [[RFC/6106]] veröffentlichten Optionen rekursiver DNS-Server (RDNSS) und DNS-Suchliste (DNSSL) für NDP
Damit die Einstellung übernommen werden empfiehlt sich ein Reboot. Man kann das an dieser Stelle auch überspringen, weil ein Reboot später nochmal notwendig ist.
* [[Link-local address|link-local]]-Ankündigungen von [[IPv6]]-Router-Adressen und
# reboot
* IPv6-Routing-Präfixen unter Verwendung des [[Neighbor Discovery Protocol]] (NDP) gemäß [[RFC 2461]]
oder
$ systemctl reboot


Nach dem Neustart muss man dem Raspberry Pi noch eine feste IPv6-Adresse aus dem von SixXS zugeteilten Subnetz zuweisen. Dazu öffnen wir die Konfigurationsdatei mit den Netzwerk-Einstellungen.
; Betriebsysteme
* [[Open-Source-Software|open-source]]
* [[Linux]] and [[BSD]]
* [[BSD license|BSD]]-style [[License proliferation#Vanity licenses|vanity]]


# vi /etc/network/interfaces
; 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)


Dort fügen wir folgende Minimal-Konfiguration zusätzlich ein:
; Flags und Informationen im Advertisement
Allgemein werden verwendet:
* Präfix (notwendige Angabe)
* Lebensdauer des Präfix
* Intervall der Advertisements (optional)


# IPv6
Nach der korrekten Konfiguration sendet der Daemon die Advertisements über angegebene Interfaces
iface eth0 inet6 static
* Die Clients empfangen die Advertisements und konfigurieren automatisch Ihre Adressen mit dem empfangenen Präfix und der Default-Route
address 2001:db8::1
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!
; [[Router Advertisement]]
Das IPv6-Gateway braucht zwingend eine statische IPv6-Adresse, damit das Routing funktioniert.
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


Anschließend die Datei speichern und schließen: <code> :wq </code>
== Installation ==
<syntaxhighlight lang="bash" highlight="1" line copy>
sudo apt install radvd
</syntaxhighlight>


Damit die Einstellung übernommen werden sollte jetzt ein Reboot vorgenommen werden.
== Aufruf ==
# reboot
<syntaxhighlight lang="bash" highlight="1" line copy>
oder
</syntaxhighlight>
$ systemctl reboot


Nach dem Neustart schadet es nicht, wenn man mit "ifconfig" kurz prüft, ob sich der Raspberry Pi die fest konfigurierte IPv6-Adresse zugewiesen hat. Sie sollte der Schnittstelle "eth0" mit dem Vermerk "Global" zugewiesen sein.
=== Optionen ===
{| class="wikitable sortable options gnu"
|-
! Unix !! GNU !! Parameter !! Beschreibung
|-
| || || ||
|-
|}


== <big> Präfix im lokalen Netzwerk verteilen (Router Advertisement) </big> ==
=== Parameter ===


Damit der Raspberry Pi als Gateway dienen kann, muss er den zugewiesenen Präfix (Subnetz) im lokalen Netzwerk per Router Advertisement verteilen. Hierfür eignet sich der Router Advertisement Daemon "radvd", der installiert und dann konfiguriert werden muss.
=== Umgebungsvariablen ===


  # apt install radvd
=== Exit-Status ===
{| class="wikitable options col1center"
|-
! Wert !! Beschreibung
|-
| 0 || Erfolg
|-
| >0 || Fehler
|}


Nach der Installation muss "radvd" konfiguriert werden.
== Anwendung ==
<syntaxhighlight lang="bash" highlight="1" line copy>
</syntaxhighlight>


# vi /etc/radvd.conf
=== Problembehebung ===


In die noch leere Datei trägt man folgende Minimal-Konfiguration ein:
== Konfiguration ==
 
'''/etc/radvd.conf'''
  interface eth0 {
  interface enp2s0 {
   AdvSendAdvert on;
   AdvSendAdvert on;
   AdvLinkMTU 1280;
   AdvLinkMTU 1280;
   MaxRtrAdvInterval 120;
   MaxRtrAdvInterval 120;
   prefix 2001:db8::/64 { };
   prefix 2020:fa19::/64 { };
   AdvSourceLLAddress on;
   AdvSourceLLAddress on;
  };
  };


Hier muss der Präfix durch den eigenen Präfix ersetzt werden. Wichtig ist hier, dass man als "prefix" den von SixXS zugewiesenen "Subnet Prefix" mit der Standard-Netzmaske "/64" einträgt und nicht den Präfix des Tunnels!
{| class="wikitable sortable options"
Anschließend speichern und schließen: <code> :wq </code>
|-
Nach den Änderungen an der Konfigurationsdatei muss man den Daemon manuell starten.
! Option !! Beschreibung
  # systemctl start radvd
|-
Wenn der Daemon bereits läuft, ist ein Neustart des Daemons notwendig.
| 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 ===
'''/etc/sysctl.conf'''
net.ipv6.conf.all.forwarding=1
 
'''Einstellung übernehmen'''
# sysctl -p
 
=== Subnetz zuweisen ===
'''/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 ===
Nach Änderungen an der Konfigurationsdatei muss der [[Daemon]] neu gestartet werden
  # systemctl restart radvd
  # systemctl restart radvd


[[Daemon]] beim systemstart aktivieren
# systemctl enable radvd
<noinclude>
=== 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
=== Dateien ===
{| class="wikitable options"
|-
! Datei !! Beschreibung
|-
| ||
|-
| ||
|}
== Fehlersuche ==
Mit dem Programm "radvdump" können Sie gesendete und empfangene Advertisements detailliert betrachten
# 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...)
<noinclude>
== Anhang ==
=== Siehe auch ===
<div style="column-count:2">
<categorytree hideroot=on mode="pages">{{BASEPAGENAME}}</categorytree>
</div>
----
{{Special:PrefixIndex/IPv6/Router/Advertisement}}
----
* [[Dynamic Host Configuration Protocol]] (DHCP)
* [[Domain Name System]] (DNS)
* [[Neighbor Discovery Protocol]]
* [[Netsh]] unter Microsoft Windows deckt ähnliche Funktionen ab
=== Dokumentation ===
; Man-Page
# https://manpages.debian.org/bookworm/radvd/radvd.8.en.html
=== Links ===
==== Projekt ====
# [https://radvd.litech.org/ Radvd-Webseite]
# [https://github.com/radvd-project/radvd/ Quellcode]
==== Weblinks ====
# https://mirrors.bieringer.de/Linux+IPv6-HOWTO-de/hints-daemons-radvd.html
[[Kategorie:IPv6/Router/Advertisement]]


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

Aktuelle Version vom 28. Juni 2025, 11:14 Uhr

IPv6/Router/Advertisement/Daemon - Router Advertisement-Daemon (radvd)

Beschreibung

Dienst zum Versand von IPv6-Router-Advertisements

Adressauflösung

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

Betriebsysteme
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)
Flags und Informationen im Advertisement

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

Installation

sudo apt install radvd

Aufruf

Optionen

Unix GNU Parameter Beschreibung

Parameter

Umgebungsvariablen

Exit-Status

Wert Beschreibung
0 Erfolg
>0 Fehler

Anwendung

Problembehebung

Konfiguration

/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

/etc/sysctl.conf

net.ipv6.conf.all.forwarding=1

Einstellung übernehmen

# sysctl -p

Subnetz zuweisen

/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

Nach Änderungen an der Konfigurationsdatei muss der Daemon neu gestartet werden

# systemctl restart radvd

Daemon beim systemstart aktivieren

# systemctl enable radvd


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

Dateien

Datei Beschreibung

Fehlersuche

Mit dem Programm "radvdump" können Sie gesendete und empfangene Advertisements detailliert betrachten

# 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



Dokumentation

Man-Page
  1. https://manpages.debian.org/bookworm/radvd/radvd.8.en.html

Links

Projekt

  1. Radvd-Webseite
  2. Quellcode

Weblinks

  1. https://mirrors.bieringer.de/Linux+IPv6-HOWTO-de/hints-daemons-radvd.html