IPv6
Grundlagen
AVM: IPv6 - Einführung
Elektronik Kompendium
IPv6-Grundlagen
IPv6 im LAN
IPv6 Kurs Teil 2: Stabile IPv6-Adressen im lokalen Netzwerk
Implementing IPv6 In A Home Network - Tips & Pitfalls
6in4 Tunnel
Anleitung zur Einrichtung eines 6in4-Tunnels in Tomato:
Get connected with IPv6
Achtung: bei dynamischer IP muss der Tunnel per DDNS aktualisiert werden. Tunnelbroker kann bei Tomato schon ausgewählt werden. Username ist nicht der Login-Name bei Tunnelbroker, sondern der kryptische String der auf der Main page bei "User ID" steht. Passwort findet man auf der Tunnelseite im Reiter "Advanced" als "Update Key". Hostname ist die numerische Tunnelnummer.
Wichtig: im Reiter "Advanced" muss die MTU angepasst werden. Sie darf nicht größer sein als die MTU des IPv4-Anschlusses (bei PPPoE meist 1472), und in Tomato muss beim Tunnel der gleiche Wert eingetragen werden.
IPv6 nativ beim DSL-Provider
M-net macht IPv6 über PPPoE. Die Adresszuweisung erfolgt über DHCPv6-PD (Prefix Delegation). Dabei wird ein /56 vergeben, aus dem auch die WAN-IP genommen werden muss. Eine explizite WAN-IP bekommt der Router von M-Net also nicht, weder per DHCPv6-IA_NA noch per SLAAC (s.a. Schnittstellenbeschreibung, hier ist nur der IPv6-Teil interessant, auch den AFTR sollte man ignorieren).
Dynamischer Prefix
IPv6 Dyn Prefix Problems
Idea: IPv6 Dynamic Prefix
IPv6-DynDNS für Hosts im Subnet unter OpenWRT mit feste-ip.net
Dynamische DNS-Service mit "verbundenen Hosts"
Portmapper
Björn's Techblog: Server hinter DS-Lite Anschluss betreiben
DDNS-Script
Custom DDNS-Script für Asuswrt-Merlin und nsupdate.info
#!/bin/sh
hostname='myhost.nsupdate.info'
token=''
device4='ppp0'
device6=''
file4=/jffs/ddns.addr4
file6=/jffs/ddns.addr6
[ -e $file4 ] && old4=`cat $file4`
[ -e $file6 ] && old6=`cat $file6`
if [ -n "$device6" ]; then
device6="dev $device6"
fi
# Scheint etwas zu dauern bis die IPv6-Adresse geaendert ist
sleep 30
address4=$(ip -4 addr show $device4|sed -n 's/.*inet \([0-9.]\+\).*/\1/p')
address6=$(ip -6 addr list scope global $device6 | grep -v " fd" | sed -n 's/.*inet6 \([0-9a-f:]\+\).*/\1/p' | head -n 1)
if [ -e /usr/sbin/curl ]; then
bin="curl -fsS"
elif [ -e /usr/sbin/wget ]; then
bin="wget -O-"
else
echo "neither curl nor wget found"
exit 1
fi
if [ "$old4" = "$address4" ]; then
echo "IPv4 address unchanged"
ret4='0'
else
echo "Changed IPv4 address to $address4"
$bin "https://$hostname:$token@ipv4.nsupdate.info/nic/update"
ret4="$?"
if [ "$ret4" -eq 0 ]; then
echo $address4 > $file4
fi
fi
if [ "$old6" = "$address6" ]; then
echo "IPv6 address unchanged"
ret6='0'
else
echo "Changed IPv6 address to $address6"
$bin "https://$hostname:$token@ipv6.nsupdate.info/nic/update"
ret6="$?"
if [ "$ret6" -eq 0 ]; then
echo $address6 > $file6
fi
fi
# Rueckmeldung ob ok oder nicht
if [ "$ret4" -eq 0 -a "$ret6" -eq 0 ]; then
echo "Update OK"
/sbin/ddns_custom_updated 1
else
echo "Update NOT OK"
/sbin/ddns_custom_updated 0
fi