Ich habe einen Linux-Router (dd-wrt ohne IPv6-Modul, kein Platz dafür) und einen Linux-PC (Arch Linux). Ich versuche, meinen Router so einzurichten, dass er 6to4-Pakete (Protokoll 41) an meinen PC weiterleitet und den Tunnel darauf einrichtet.
Was ich bisher auf dem Router gemacht habe, ist:
iptables -t nat -A POSTROUTING -p 41 -d ! 192.168.1.0/24 -j SNAT --to _WANIP_
iptables -t nat -A PREROUTING -p 41 --dst _WANIP_ -j DNAT --to-destination _LANDEST_
wo _WANIP_
ist meine 'outside' ipv4 adresse und _LANDEST_
ist computer mit 6to4 setup. Das 6to4-Setup wird folgendermaßen durchgeführt:
export IPV4_ADDRESS=_WANIP_
export OUR_IPV6_GW=`printf "2002:%02x%02x:%02x%02x::1" \`echo $IPV4_ADDRESS | tr '.' ' '\``
ip tunnel add tun6to4 mode sit ttl 32 remote any local $IPV4_ADDRESS
ip link set dev tun6to4 up
ip -6 addr add $OUR_IPV6_GW/16 dev tun6to4
ip -6 route add 2000::/3 via ::192.88.99.1 dev tun6to4 metric 1
OUR_IPV6_GW
enthält eine von 6to4-Adressen. Nachdem ich alle diese Schritte zum Testen ausgeführt habe, überprüfe ich ping6 ipv6.google.com
, ob das Setup funktioniert, und erhalte FehlermeldungenDestination unreachable: Address unreachable
Ich kann (IPv4) an 192.88.99.1 pingen, ip -6 route
sieht gut aus. Ich habe auch versucht, iptables -I [...]
für NAT-Setup auszuführen, um sicherzustellen, dass keine Regelschatten eingefügt wurden.
Ich habe einige Ressourcen von http://www.wtfm.org/ip6to4 verwendet