IPv6: Dynamische IPs bei Unitymedia
Als Kunde von Unitymedia bekomme ich für all meine Geräte eine IPv6-Adresse zugewiesen. Leider ändert sich diese bei jedem Bootvorgang des Modems.
Motivation
Ich habe einen RaspberryPi mit externer Festplatte und ich möchte, dass er jeden Tag einmal von meinem Rootserver ein Päckchen mit Backups empfängt.
Früher war das bei Unitymedia kein Problem, da sich die einmal zugewiesene IPv4-IP praktisch nie geändert hat. Seit meinem Umzug nach Frankfurt am Main bekommt mein Modem nur noch eine geNATete IPv4-IP, bei der jegliche Portweiterleitung im Router auf das Zielsystem nicht zuverlässig funktioniert. Weiter bekommt jedes meiner Geräte aber eine IPv6-IP, die vollständig erreichbar ist.
Da sie sich entgegen meines Verständnisses von IPv6 regelmäßig ändert, muss ein Hack her.
freedns.io
Da ich keine Lust hatte, auch noch einen DNS-Server zu betreiben, habe ich mich dazu entschieden, den Dienst freedns.io zu verwenden. Diesen kann man per HTTPS-POST einfach aktualisieren. Das API lässt zwar nur zwei Updates am Tag zu, das reicht aber in der Regel für meine Zwecke. Es werden übrigens nur Updates gezählt, bei denen sich der Eintrag tatsächlich ändert.
Somit kann man einen trivialen Cronjob schreiben, der alle 15 Minuten die eigene IP meldet.
*/15 ~/scripts/freednsio.sh
Bei ArchLinux wird das Paket python2-netifaces benötigt, damit das folgende Skript funktioniert.
#!/usr/bin/python2 import urllib import urllib2 import netifaces addrs = netifaces.ifaddresses('eth0') url = 'https://freedns.io/request' params = { 'username': 'blipp', 'password': 'blubb', 'host': 'hostname', 'record': 'AAAA', 'value': addrs[netifaces.AF_INET6][0]['addr'] } data = urllib.urlencode(params) req = urllib2.Request(url, data) try: response = urllib2.urlopen(req) content = response.read() print content except urllib2.URLError as e: print "FreeDNS-Update-Error: %d %s (%s)" % (e.code, e.reason, e.read())
Fazit
Mit diesem etwas unschönen Hack kann man die eigene Maschine ohne große Ausfälle erreichbar halten. Vielleicht hilft es Euch ja auch.
Kommentare
Adrian am :
Thomas Heidrich am :
John am :
Thomas Heidrich am :