Hast schon recht, nur nutze ich zur Zeit keinen Webserver, also suche ich eine möglichst simple Lösung.
Edit:
Traceroute habe ich durch den Vorschlag im nächsten Post von Habnefritzbox ersetzt.
Das Präfix bekomme ich, wenn ich sed in die Pipe packe:
Code:
sed "s/\(.*\):\(.*\):\(.*\):\(.*\):\(.*\)/\1/"
Wenn ich das richtig sehe, sucht sed rückwärts(!) den übergebenen String (also die nackte IPv6, die ich mit den zwei greps gebastelt habe) durch, teilt an den Doppelpunkten, von hinten beginnend in 5 Teile, wobei \5 dann den letzten Teil nach einem Doppelpunkt beinhaltet (also das 8. Segment der IPv6), \4 den vorletzten Teil(7.Segmentteil), \3 das 6. Segmentteil, \2 das 5. Segmentteil und \1 den ganzen Rest (also die Segmente 1-4 mit Doppelpunkten dazwischen = unser gesuchtes Präfix!). Nach dem / beginnt, was man ausgeben möchte, hier natürlich die \1, also das gefundene Präfix.
Nicht elegant, habe ich aus einem Webbeispiel zum Umsortieren von Vor- Nachnamen und Adressen gefunden und angepasst, funktioniert aber einwandfrei.
Ein kleines Skript (habe ich schon im Forum von 1&1 vorgestellt, das Forum ist aber halt nur für 1&1-Kunden) habe ich etwas erweitert, nun prüft es nur noch auf Änderungen des Präfix:
Code:
#!/bin/sh
HOSTNAME="meinname.feste-ip.net"
HOST=":1234:5678:90ab:cdef"
USER="12345"
PASS="qwertz"
#Homeserver
HOSTONE=":1234:5678:90ab:cdef"
USERONE="123456"
PASSONE="qwertz"
#Fritzbox Heimkino
HOSTTWO=":90ab:cdef:1234:5678"
USERTWO="222222"
PASSTWO="qwertz"
#Asterisk
HOSTFOURTYTWO=":4242:4242:4242:4242"
USERFOURTYTWO="424242"
PASSFOURTYTWO="6x9"
PFAD="/etc"
PREFIX=`ip -6 addr show eth0 | grep -v "deprecated" | sed -nre "s,^.*inet6 ([0-9a-fA-F:]+).*$,\1,p" | grep -v "^[Ff][DdEe]" | sed "s/\(.*\):\(.*\):\(.*\):\(.*\):\(.*\)/\1/"`
OLDPREFIX=`cat $PFAD/oldprefix.txt`
if [ "$PREFIX" = "$OLDPREFIX" ]; then
echo "Keine Aenderung" >> /dev/null
else
echo $PREFIX > $PFAD/oldprefix.txt
wget -4 --user="$USER" --password="$PASS" --output-document=/dev/null "http://members.feste-ip.net/nic/update?system=dyndns&hostname=$HOSTNAME"
wget -6 --user="$USER" --password="$PASS" --output-document=/dev/null "http://v6.members.feste-ip.net/nic/update?system=dyndns&hostname=$HOSTNAME&myip=$PREFIX$HOST"
wget -6 --output-document=/dev/null "https://carol.selfhost.de/update?username=$USERONE&password=$PASSONE&myip=$PREFIX$HOSTONE"
wget -6 --output-document=/dev/null "https://carol.selfhost.de/update?username=$USERTWO&password=$PASSTWO&myip=$PREFIX$HOSTTWO"
#...
wget -6 --output-document=/dev/null "https://carol.selfhost.de/update?username=$USERFOURTYTWO&password=$PASSFOURTYTWO&myip=$PREFIX$HOSTFOURTYTWO"
fi
Das script habe ich unter /usr/dyndnsupdate.sh gespeichert, mit chmod +x dyndnsupdate.sh ausführbar gemacht und mit crontab -e folgenden job ergänzt:
Code:
*/1 * * * * cd /usr && sh dyndnsupdate.sh>>/dev/null
Es wird - das ist, gebe ich zu etwas unelegant - minütlich gestartet. Verursacht aber auch nur einen einzigen Query an den internen DNS der FBF. Also keinen Traffic nach außen und auch intern fast nix.
Hat sich das Präfix der LAN-IP de Fritzbox geändert, wird das gefunden Präfix + Hosterweiterung an feste-IP.net gegeben.
Das schöne bei feste-ip.net sind dann die Subhosts: Man kann Subdomains anlegen, z.B. asterisk.meinname.feste-ip.net und dafür den Hostteil der IPv6 hinterlegen. Wird meinname.feste-ip.net aktualisiert, bastelt deren Dienst also aus dem Präfix der übermittelten IPv6 und der jeweiligen Hostadresse deren IPv6 zusammen. Sehr bequem, weil man mit einem Aufruf alle Subdomains aktualisiert. Mit 4,95€/Jahr auch preislich nicht schlecht.
Um auch die IPv4 zu aktualisieren, rufe ich den Updatestring für die IPv4-Aktualisierung von feste-ip.net auf, ohne eine IP zu übergeben. Dann nimmt feste-ip.net wie die meisten DynDNS-Anbieter die öffentliche IP, von welcher die Anfrage kommt. IPv4 hat man ja meist nur eine. Wenn sich das Präfix geändert hat, war wohl ein Reconnect, also macht es Sinn, auch gleich die IPv4 zu aktualisieren.
Das weitere sind dann die Selfhost-UpdateURLs.
Bei Selfhost läuft das ganz praktisch: Die DynDNS sind nicht an einzelne (Sub)Domain fest gekoppelt, sondern können beliebig eine IP zugewiesen bekommen, egal ob IPv4 oder IPv6, aber nur eins zur Zeit. In der Domainverwaltung legt man dann zur eigenen Domain die Subdomains an. Dabei trägt man ein, welcher Recordtyp (A für IPv4, AAAA für IPv6) gewünscht ist und ob feste IP oder welcher DynDNS-Account. Um IPv4 und IPv6 auf einer (Sub)domain zu nutzen, legt man die Subdomain zweimal an (mit unterschiedlichen DynDNS-Accounten).
Beispiel:
man hat meinname.de (wenn man Grwentghifutan als Namen hat, bekommt man die Domain vielleicht noch)
Jetzt legt man z.B. 4 DynDNS-Accounts an, den kann man Namen geben, um die Übersicht nicht zu verlieren. Jeder DynDNS-Account hat eigenen Nutzernamen und Passwort.
1. DynDNS nennen wir "fritzboxextern". Die Accountdaten nutzen wir zur Aktualisierung der IPv4
2. DynDNS nennen wir "fritzboxIPv6". Die Accountdaten nutzen wir zur Aktualisierung der WAN-IPv6 der FBF (mit Bordmitteln, Benutzerstring bei DynDNS in der FBF)
3. DynDNS nennen wir "webserverIPv6". Die Accountdaten nutzen wir zur Aktualisierung der IPv6 unseres Webservers
4. DynDNS nennen wir "asteriskIPv6". Die Accountdaten nutzen wir zur Aktualisierung der IPv6 unseres Asterisk
Als nächstes richtet man die Subdomains ein:
fernzugriffaufmeinefbf.meinname.de, Record-Typ A, DynDNS, Account "fritzboxextern"
fernzugriffaufmeinefbf.meinname.de, Record-Typ AAAA, DynDNS, Account "fritzboxIPv6"
www.meinname.de, Record-Typ A, DynDNS, Account "fritzboxextern"
www.meinname.de, Record-Typ AAAA, DynDNS, Account "webserverIPv6"
asterisk.meinname.de, Record-Typ A, DynDNS, Account "fritzboxextern"
asterisk.meinname.de, Record-Typ AAAA, DynDNS, Account "asteriskIPv6"
Jetzt kann man jeden Dienst per IPv4 (per NAT, mit Portweiterleitung im Router) und per IPv6 (ohne NAT, aber ggf. Portöffnung in der Firewall) über den Namen erreichen. Meiner Meinung nnach eine praktische Sache.
Das ganze geht mit "Bordmitteln", wenn man wie ich IPv6 nur für die Telefonsysteme nutzt (Asterisk und einige FBFen, sowie einige extra Asteriske zum Experimentieren) um das leidige NAT-Problem endgültig zu beseitigen, die wohl sinnvollste Lösung. Einen Webserver betreibe ich halt nicht, mein Asterisk wird per Hand konfiguriert. Einen Mailserver habe ich zwar auch, da ist IPv6 aber noch nicht zwingend (NAT macht da keine Probleme, Portweiterleitungen reichen völlig). Aber wenn mans eh hat ist es nur 4 Zeilen im Skript mehr (Benutzername, Passwort, Hostpart und update-URL)
Das Skript habe ich mir aus Funden im Netz zusammengebastelt. Für grep musste ich viel suchen, deshalb auch zweimal grep in der Zeile... Nicht elegant, funktioniert aber.