IPv6-Tunnel mit he.net unter ubuntu

Tuesday, May 18. 2010

Es gibt verschiedene Tunnelbroker für IPv6overIPv4, Sixxs.net und he.net (tunnelbroker.net)  sind die bekanntesten. Für adsl mit wechselnden IPv4-adressen, wie hier üblich, hält sixxs.net den praktischen daemon aiccu bereit, der, einmal mit den Eckdaten wie Tunnel-ID, Passwort, Server-IP versorgt, den Aufbau des Tunnels und die Aktualisierung der Endadrese bei Wechsel der dynamischen IP ganz wunderbar erledigt, so dass man da keinen Aufwand der Konfiguration hat.

Nun habe ich leider mit sixxs immer wieder Netzwerkprobleme erlebt, ein Ping > 300ms bremst schon sehr spürbar, wenn alle Browser etc vorzugsweise IPv6 benutzen. Ich habe deshalb zu tunnelbroker.net umgestellt, aber die Frage der Konfiguration kommt damit neu auf.

Auf der Detail-seite zu einem mit tunnelbroker.net eingerichteten Tunnel bekommt man zwar (für versch. betriebssysteme) eine beispielkonfiguration angezeigt, die ich (linux-route2) so wie sie kam in die Kommandozeile pasten konnte und schon lief der Tunnel. aber nach der nächsten Zwangstrennung geht dann wieder nichts mehr.Und jedesmal per Hand ist keine Option.

Bei mir ist ein alter p3-Rechner der Router und so kann ich /etc/ppp/ip-up und /ip-down verwenden, Scripte, die in diesen Ordnern liegen, werden bei Herstellung bzw. Trennung der Verbindung automatisch aufgerufen, mit nützlichen Parametern wie etwa Localip und Remoteip. Programme wie fetchmail, postfix etc legen hier bei der Inwstallation Eintraege an und in beiden Ordnern habe ich ein kleines shell-script für meine eigenen Zwecke, hier als Beispiel /etc/ppp/ip-down.d/ip-down-local

#!/bin/sh

# this script is called from ip-down
# to hold actions I want to happen whenever the IP-Connection is stopped     

BASENAME=`basename $0`

INTERFACE=$1
DEVICE=$2  
SPEED=$3
LOCALIP=$4
REMOTEIP=$5

case "$INTERFACE" in

ppp0*)
        # he-ipv6 anlegen
        /usr/local/bin/heIpv6-del.sh
        ;;

*)
    # dont know...
    ;;
esac | logger -t $BASENAME

Entsprechend gibt es auch ein /etc/ppp/ip-up.d/ip-up-local, hier sind die relevanten Zeilen

# tunnelbroker updaten
    /usr/local/bin/tunnelbroker_update.sh $4               

    # he-ipv6 anlegen
    /usr/local/bin/heIpv6-add.sh $4

Und die drei hier aufgerufenen Scripte in /usr/local/bin lauten

heIpv6-del.sh:
ip -6 route flush dev he-ipv6
ip link set he-ipv6 down
ip tunnel del he-ipv6

heIpv6-add.sh
ip tunnel add he-ipv6 mode sit remote 216.66.80.30 local $1 ttl 255
ip link set he-ipv6 up
ip addr add 2001:470:1f0a:12ef::2/64 dev he-ipv6
ip route add ::/0 dev he-ipv6

tunnelbroker_update.sh
#!/bin/sh
curl -k "https://ipv4.tunnelbroker.net/ipv4_end.php?ipv4b=$1&pass=0000000000000000000000000000000&user_id=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&tunnel_id=11111";


(bei dem Aufruf von curl, - 1 Zeile! - muss man die Parameter mit den eigenen daten setzen, hinter pass gehoert der md5-Hash des Passwortes (echo -n 'yourpassword' | md5sum), user_id ist nicht der Username sondern die userID von der tunnelbroker-Seite - auch ein MD5-Hash, tunnel_id ist die global tunnel ID - eine 5stellige Zahl.)




Trackbacks


Trackback specific URI for this entry
    No Trackbacks

Comments


    No comments

Add Comment

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
Standard emoticons like :-) and ;-) are converted to images.
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.
To leave a comment you must approve it via e-mail, which will be sent to your address after submission.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA