Stefan.Walter.Nehlsen@gmxtest.depp.be
Die Einführung von IPv6 steht seit 15 Jahren unmittelbar bevor.
Eine Liste unterstützter Hardware findet man auf http://openwrt.org/.
Geeignet ist zum Beispiel der TL-WR841N von TP-Link für 20€.
Es muß zusätzliche Software installiert werden.
# opkg update # opkg install kmod-ipv6 ip kmod-ip6tables ip6tables # opkg install radvd wide-dhcpv6-client luci-app-radvd # /etc/init.d/network restart
Um beim PPPoE Verbindungsaufbau auch eine IPv6 Verbindung zu initialisieren, muß die Konfiguration des PPP-Daemon erweitert werden. Das kann im Webinterface erfolgen oder an der Kommandozeile:
# uci set network.wan.mtu=1452 # uci set network.wan.ipv6=1 # uci commit network # /etc/init.d/network restart
Man kann die IPv6 Konfiguration des Routers auch über die Statusseite des Webinterfaces sehen.
# ps w | grep -v grep | grep pppd 4484 root 1620 S /usr/sbin/pppd nodetach ipparam wan ifname pppoe-wan +ipv6 nodefaultroute usepeerdns persist maxfail 1 us # ip -6 address show dev pppoe-wan 14: pppoe-wan:Es gibt nur eine Link-Local Verbindung zum nächsten Router und der ist der Default-Router.mtu 1452 qlen 5 inet6 fe80::1d37:3584:ee8a:258c/10 scope link valid_lft forever preferred_lft forever # ip -6 route show default default via fe80::90:1a00:140:7bb4 dev pppoe-wan proto static metric 1024
# ping6 -c 1 fe80::90:1a00:140:7bb4%pppoe-wan PING fe80::90:1a00:140:7bb4%pppoe-wan (fe80::90:1a00:140:7bb4): 56 data bytes 64 bytes from fe80::90:1a00:140:7bb4: seq=0 ttl=255 time=9.023 ms --- fe80::90:1a00:140:7bb4%pppoe-wan ping statistics --- 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 9.023/9.023/9.023 ms
Im nächsten Schritt wird per DHCPv6 ein weltweit gültiger /56 IPv6-Prefix und andere Konfigurationsdaten vom Provider geholt.
Dafür muß der DHCP6 Client konfiguriert werden.
# uci set dhcp6c.basic.enabled=1
# uci set dhcp6c.basic.interface=wan
# uci set dhcp6c.basic.pd=1
# uci set dhcp6c.basic.na=0
# uci set dhcp6c.basic.rapid_commit=1
# uci set dhcp6c.basic.domain_name_servers=1
# uci set dhcp6c.basic.domain_name=0
# uci set dhcp6c.lan=interface
# uci set dhcp6c.lan.enabled=1
# uci set dhcp6c.lan.sla_id=1
# uci set dhcp6c.lan.sla_len=8
# uci commit dhcp6c
# /etc/init.d/network restart
generierte /var/etc/dhcp6c.conf
interface pppoe-wan { send ia-pd 0; send rapid-commit; script "/usr/bin/dhcp6c-state"; request domain-name-servers; }; id-assoc pd 0 { prefix-interface br-lan { sla-id 1; sla-len 8; }; };
Nach der Neuinitialisierung der PPP-Verbindung sollte eine global gültige Adresse auf dem LAN-Interface sein.
# ip -6 address show dev br-lan 7: br-lan:Zu beachten ist hierbei der /64 Prefix.mtu 1500 inet6 2a00:12d0:a200:fe01:224:a5ff:feda:f7f9/64 scope global valid_lft forever preferred_lft forever inet6 fe80::224:a5ff:feda:f7f9/64 scope link valid_lft forever preferred_lft forever
dhcp6c fügt 2 IPv6-DNS Server hinzu.
# cat /tmp/resolv.conf.auto # Interface wan nameserver 82.97.146.3 nameserver 213.178.66.111 nameserver 2a00:12d0::53 nameserver 2a00:12d0:2::53Der lokale DNS-Server dnsmasq benutzt diese Einstellungen um Anfragen weiterzuleiten.
ipv6.google.com ist nur per IPv6 erreichbar.
# ping6 -c 3 ipv6.google.com PING ipv6.google.com (2a00:1450:4008:c01::63): 56 data bytes 64 bytes from 2a00:1450:4008:c01::63: seq=0 ttl=54 time=29.851 ms 64 bytes from 2a00:1450:4008:c01::63: seq=1 ttl=54 time=29.825 ms 64 bytes from 2a00:1450:4008:c01::63: seq=2 ttl=54 time=32.086 ms --- ipv6.google.com ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 29.825/30.587/32.086 msgeht!
Der Router Advertisement Daemon hilft LAN-Clients an eine weltweit gültigen Adresse zu kommen.
# uci set radvd.lan=interface
# uci set radvd.lan.AdvSendAdvert=1
# uci set radvd.lan.client=
# uci set radvd.lan.ignore=0
# uci set radvd.lan.interface=lan
# uci set radvd.lan.IgnoreIfMissing=1
# uci set radvd.lan.AdvSourceLLAddress=1
# uci set radvd.lan.AdvDefaultPreference=medium
# uci set radvd.@prefix[0]=prefix
# uci set radvd.@prefix[0].interface=lan
# uci set radvd.@prefix[0].AdvOnLink=1
# uci set radvd.@prefix[0].AdvAutonomous=1
# uci set radvd.@prefix[0].AdvRouterAddr=0
# uci set radvd.@prefix[0].ignore=0
# uci set radvd.@route[0]=route
# uci set radvd.@route[0].interface=lan
# uci set radvd.@route[0].prefix=
# uci set radvd.@route[0].ignore=0
# uci set radvd.@rdnss[0]=rdnss
# uci set radvd.@rdnss[0].interface=lan
# uci set radvd.@rdnss[0].addr=
# uci set radvd.@rdnss[0].ignore=0
# uci set radvd.@dnssl[0]=dnssl
# uci set radvd.@dnssl[0].interface=lan
# uci set radvd.@dnssl[0].ignore=0
# uci set radvd.@dnssl[0].suffix=zuhause
# uci commit radvd
generierte /var/etc/radvd.conf
interface br-lan { AdvDefaultPreference medium; IgnoreIfMissing on; AdvSendAdvert on; AdvSourceLLAddress on; prefix 2a00:12d0:a200:fe01:224:a5ff:feda:f7f9/64 { AdvOnLink on; AdvAutonomous on; AdvRouterAddr off; }; RDNSS fe80::224:a5ff:feda:f7f9 { }; DNSSL zuhause { }; };
# ip -6 address show 1: lo:mtu 16436 inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: mtu 1500 qlen 1000 inet6 2a00:12d0:a200:fe01:21c:c0ff:fec4:ddcf/64 scope global dynamic valid_lft 86396sec preferred_lft 14396sec inet6 fe80::21c:c0ff:fec4:ddcf/64 scope link valid_lft forever preferred_lft forever # ip -6 route show 2a00:12d0:a200:fe01::/64 dev eth0 proto kernel metric 256 expires 86328sec mtu 1500 advmss 1440 hoplimit 4294967295 fe80::/64 dev eth0 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 4294967295 default via fe80::224:a5ff:feda:f7f9 dev eth0 proto kernel metric 1024 expires 1723sec mtu 1500 advmss 1440 hoplimit 64
Privacy Enhancements sind ein Standard der gewährleistet das Clients nicht an Hand ihrer eindeutigen Hardwareadresse getrackt werden können.
Der Client generiert dafür temporäre Adressen.
# ip -6 address show eth0 2: eth0:mtu 1500 qlen 1000 inet6 2a00:12d0:a200:1001:98e4:dc86:85af:1d28/64 scope global temporary deprecated dynamic valid_lft 14568sec preferred_lft 0sec inet6 2a00:12d0:a200:1301:f8ac:46c4:706a:a6c0/64 scope global temporary dynamic valid_lft 86206sec preferred_lft 14017sec inet6 2a00:12d0:a200:1301:21d:7dff:fea4:519b/64 scope global dynamic valid_lft 86206sec preferred_lft 14206sec inet6 2a00:12d0:a200:1001:f8ac:46c4:706a:a6c0/64 scope global temporary deprecated dynamic valid_lft 14568sec preferred_lft 0sec inet6 2a00:12d0:a200:1001:c40b:c5b7:90bf:58a1/64 scope global temporary deprecated dynamic valid_lft 14568sec preferred_lft 0sec inet6 2a00:12d0:a200:1001:21d:7dff:fea4:519b/64 scope global deprecated dynamic valid_lft 14568sec preferred_lft 0sec inet6 fe80::21d:7dff:fea4:519b/64 scope link valid_lft forever preferred_lft forever
# ip -6 route show dev eth0 2a00:12d0:a200:1001::/64 dev eth0 proto kernel metric 256 expires 14316sec 2a00:12d0:a200:1301::/64 dev eth0 proto kernel metric 256 expires 86263sec 2a00:1450:4008:c01::5e via fe80::224:a5ff:feda:f7f9 dev eth0 proto static metric 1024 2a00:1450:4013:c01::65 via fe80::224:a5ff:feda:f7f9 dev eth0 proto static metric 1024 mtu 1452 rtt 48ms rttvar 29ms cwnd 10 2a00:1450:4013:c01::66 via fe80::224:a5ff:feda:f7f9 dev eth0 proto static metric 1024 mtu 1452 rtt 62ms rttvar 20ms cwnd 10 2a00:1450:4013:c01::84 via fe80::224:a5ff:feda:f7f9 dev eth0 proto static metric 1024 rtt 52ms rttvar 38ms cwnd 10 2a00:1450:4013:c01::8a via fe80::224:a5ff:feda:f7f9 dev eth0 proto static metric 1024 mtu 1452 rtt 48ms rttvar 26ms cwnd 10 2a00:1450:4013:c01::8b via fe80::224:a5ff:feda:f7f9 dev eth0 proto static metric 1024 mtu 1452 rtt 50ms rttvar 16ms cwnd 10 fe80::/64 dev eth0 proto kernel metric 256 default via fe80::224:a5ff:feda:f7f9 dev eth0 proto static metric 1 default via fe80::224:a5ff:feda:f7f9 dev eth0 proto kernel metric 1024 expires 1653sec
nicht viel immer mehr: