HE IPv6 Tunnel mit fli4l 3.6.1

Nachdem ich im Netz keine passable Lösung finden konnte, habe ich mich einmal selbst an die Arbeit gemacht und erfolgreich einen IPv6 Tunnel zwischen einem fli4l-Router mit DSL-Anschluss und meinem Tunnel bei Hurricane Electric (HE) aufgebaut. Im Prinzip sehr einfach...

Verwendet habe ich fli4l 3.6.1. Kenntnis des Systems und Umgang mit Skripten werden mal vorausgesetzt.

Die fli4l Konfiguration

/config/ipv6.txt (Auszug, Daten und Firewall-Einstellungen nach eigenem Ermessen anpassen)

#-------------------------------------------------
# IPv6 general settings
#------------------------------------------------
OPT_IPV6='yes'

#-------------------------------------------------
# IPv6 networks
#-------------------------------------------------
IPV6_NET_N='1'
IPV6_NET_1='****:****:****:****::/64'             # bei HE zu finden als „Routed /64
IPV6_NET_1_DEV='eth0'
IPV6_NET_1_ADVERTISE='yes'
IPV6_NET_1_ADVERTISE_DNS='yes'
IPV6_NET_1_DHCP='yes'

#-------------------------------------------------
# IPv6 tunnels
#-------------------------------------------------
IPV6_TUNNEL_N='1'
IPV6_TUNNEL_1_LOCALV4='dynamic'
IPV6_TUNNEL_1_REMOTEV4='***.***.***.***'          # „Server IPv4 Address“ bei HE
IPV6_TUNNEL_1_LOCALV6='****:****:****:****:2/64'  # „Client IPv6 Address“ bei HE
IPV6_TUNNEL_1_TYPE='static'                       # ja, static! (Aktualisierungs-Skript kommt später)
IPV6_TUNNEL_1_DEV='6in4'

#-------------------------------------------------
# IPv6 routes
#-------------------------------------------------
IPV6_ROUTE_N='1'
IPV6_ROUTE_1='::/0 ****:****:****:***::1'          # „Server IPv6 Address“ bei HE, ohne /64

Das Skript (entfällt bei fester IP-Adresse)

Das Skript wird in /opt/files/usr/local/mybin/he_tunnel_update.sh abgelegt. Beim Bauen des Systems wird es automatisch mit auf dem Router kopiert und ist ausführbar.

#!/bin/sh
HEID=********************************  # User-ID auf der HE „Main Page“
PASS=********************************  # HE Passwort als MD5
TUNNELID=******                        # Tunnel-ID
NEWIP=`ip -4 address show dev ppp0 | grep -Eo 'inet \<[[:digit:]]{1,3}(\.[[:digit:]]{1,3})\>'  | grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3})\>'`
LASTIP=/tmp/he_tunnel_lastip
LOG=/var/log/he_tunnel.log

if [  "$NEWIP" != "" ]; then
 if [ "$NEWIP" != "`cat $LASTIP`" ]; then
  date +"%d.%m.%y %T: " | tr -d '\n' >> $LOG
  curl -k "https://ipv4.tunnelbroker.net/ipv4_end.php?ipv4b=$NEWIP&pass=$PASS&user_id=$HEID&tunnel_id=$TUNNELID" >> $LOG
  echo "" >> $LOG
  echo "$NEWIP" > $LASTIP
 fi
else
 date +"%d.%m.%y %T:" | tr -d '\n' >> $LOG
 echo "Error: Unable to get new IP address."
fi

Die IP-Adresse wird direkt vom Interface gelesen. ppp0 (virtuelles Interface für die DSL-Verbindung) hier anpassen, falls nötig. Das ganze kommt mit den wenigen systemseitigen Programmen auf dem fli4l-System aus. Die zuletzt aktualisierte IP wird in /tmp/he_tunnel_lastip gespeichert. Ist diese Datei nach dem Systemstart noch nicht vorhanden wird sie vom Skript beim ersten Aufruf angelegt. Dies limitiert die Anfragen zu HE auf meist einmal täglich (beim IP-Wechsel) Die Tunnelanbieter mögen es – verständlicher Weise - wenig, wenn man zu häufig anfragt.
Die Antwort von HE (Update erfolgreich oder nicht) wird in /var/log/he_tunnel.log abgelegt.

Automatisch ausführen

Ich habe mich für das OPT EasyCron entschieden. Hier einfach das Skript hinzufügen und die gewünschte Ausführzeit angeben. Ich habe mich für alle 20 Minuten entschieden. Nicht zu lange, aber meist fällt das Update eh in die Nacht.

/config/easycron.txt

OPT_EASYCRON='yes'
EASYCRON_MAIL='no'
EASYCRON_N='1'
EASYCRON_1_CUSTOM=''
EASYCRON_1_COMMAND='he_tunnel_update.sh'
EASYCRON_1_TIME='*/20 * * * *'
--

Kategorien

HowTo, IPv6, Linux

0 Kommentar(e):

    Hinterlasse eine Antwort

    * (optional)

    * Die E-Mail Adresse wird nicht öffentlich angezeigt und zu keiner Zeit an Dritte weitergegeben oder zu Werbezwecken missbraucht