externe Links:
Internet Router verteilt ein ::/56 Präfix
|
eth0 (WAN)
Linux Router
eth1 (LAN)
|
IPv6 Clients
Weiterleitung der Pakete aktivieren forwarding auf allen Schnittsellen, Router Advertisement auf eth0 akzeptieren accept_ra
- Routing (forwarding) für IPv6 und IPv4 aktivieren, das Ubuntu Script von radvd setzt den Wert selbstständig.
# /etc/sysctl.conf ... net.ipv4.ip_forward=1 net.ipv6.conf.all.forwarding=1 ...
- Network Manager deaktivieren
update-rc.d network-manager disable
Pakete die installiert sein müssen, RADVD (Router-Advertisement Daemon), Wide-DHCPv6 (DHCP Client), ndisc6 (Tool zum anzeigen von Router Advertisement)
apt-get install radvd wide-dhcpv6-client ndisc6
auf dem Router in der /etc/networks/interfaces folgende Einstellungen setzen. IP-Adresse für das eth0 Device wird per DHCPv6 vom Router zugewiesen.
# /etc/network/interfaces # The loopback network interface auto lo iface lo inet loopback # Interface am Link "internet" auto eth0 iface eth0 inet dhcp iface eth0 inet6 dhcp accept_ra 2 autoconf 1 # Interface am Link "internal" auto eth1 iface eth1 inet6 dhcp
eth1 erhält die IP vom Wide-DHCPv6-Client
# /etc/wide-dhcpv6/dhcp6c.conf # interface eth0 { # WAN Interface zum PD Server # These 3 lines are used to do DHCP on the interface. # send ia-na 1; # Tells the system to assign a DHCP IP to this interface # PD specific. send ia-pd 1; # Tells the PD server, we are requesting prefix delegation send rapid-commit; request domain-name-servers; #get DNS from DHCP Optional request domain-name; #get DNS search domain from DHCP Optional script "/etc/wide-dhcpv6/dhcp6c-script"; }; id-assoc na 1 { # Required to have the DHCP address assigned to the interface with }; id-assoc pd 1 { #configuring the requested prefix delegation. prefix ::/60 infinity; prefix-interface eth1 { #LAN Interface sla-id 2; # Use the first /64 from the delegated prefix. Starts with zero. 2 ifid 1; # Specifies the host address to use with the prefix. eg. 2001:db8: sla-len 4; #how many bits to add to the prefix delegation to get to /64. 48+1 }; };
- RADVD Konfiguration anpassen
# /etc/radvd.conf # interface eth1 { AdvSendAdvert on; MinRtrAdvInterval 40; MaxRtrAdvInterval 60; AdvDefaultPreference high; AdvManagedFlag off; AdvOtherConfigFlag off; AdvHomeAgentFlag off; prefix ::/64 { AdvOnLink on; AdvAutonomous on; AdvRouterAddr on; }; RDNSS 2001:db8::1 { }; };
Um den Netzwerkpräfix im LAN verteilen zu können benötigt man noch das Paket radvd, das die Verteilung vornimmt.
Radvd Parameter | Beschreibung |
---|---|
AdvSendAdvert | on/off - Router-Advertisement aktivieren/deaktivieren |
AdvManagedFlag | on/off - (stateful configuration) bei gesetzten Flag, fordert der v6-Client eine IPv6-Adresse, DNS-Server, SIP-Server oder NTP-Server beim v6-Server an. |
AdvOtherConfigFlag | on/off - bei gesetzten Flag, fordert der v6-Client DNS-Server, SIP-Server oder NTP-Server beim v6-Server an jedoch keine IPv6-Adresse !! |
AdvHomeAgentFlag | on/off - (Standard off) - Flag Home Agent (Mobile IPv6 Erweiterung) ist gesetzt/nicht gesetzt |
prefix 2001:db8::/64 | Prefix, der über Router-Advertisement verteilt wird |
prefix ::/64 | wenn kein Prefix gesetzt wird, wird der Prefix der Schnittstelle herangezogen, hier eth1 interface eth1 |
RDNSS 2001:db8::1 | DNS Server wird mit übergeben |
- Damit RADVD nach einem Neustart des Routers verzögert startet, muss in die Datei /etc/rc2.d/S02radvd noch ein sleep 10
eingefügt werden. RADVD darf erst starten, wenn das Device eth1 eine IP-Adresse hat und ein Präfix generiert werden kann.
#! /bin/sh ### BEGIN INIT INFO # Provides: radvd # Required-Start: $syslog $remote_fs $network # Required-Stop: $syslog $remote_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Router Advertising Daemon ### END INIT INFO sleep 10 ...
- RADVD neu starten
service radvd restart
- RADVD Einstellungen prüfen
radvdump
- Dienste prüfen und Fehlerlog checken
systemctl status wide-dhcpv6-client.service systemctl status radvd.service
journalctl -xn
- aktuelle Einstellungen kontrollieren
sysctl net.ipv6.conf.all.forwarding sysctl net.ipv6.conf.all.accept_ra sysctl net.ipv6.conf.eth0.accept_ra sysctl net.ipv6.conf.eth1.autoconf
Einstellungen sollen wie folgt gesetzt sein
net.ipv6.conf.all.forwarding = 1 net.ipv6.conf.all.accept_ra = 1 net.ipv6.conf.eth0.accept_ra = 2 net.ipv6.conf.eth1.autoconf = 0
- IPv6 Adresse der Schnittstelle eth0 anzeigen
ip -6 addr show dev eth0
- Route kontrollieren
ip -6 route show
- Schnittstellen neu starten
ifdown eth0 && ifup eth0
- Router-Advertisement anzeigen, aktuelle IPv6 anzeigen
rdisc6 eth0 rdisc6 -1 -q eth0