dynv6.com veröffentlicht keine IPs

Pummeluff

Lt. Commander
Registriert
März 2021
Beiträge
1.484
Guten Tag,

Ich nutze dynv6, um auf meine Rechner aus dem Internet zu kommen. Das klappt auch soweit mit ddclient und in der Fritzbox. Die IPs werden auf der dynv6-Seite angezeigt.

Danach kann ich die IP auch mit dig, host usw. über öffentliche DNS-Server, z.B. 1.1.1.1 abfragen, sowohl IPv4 als auch IPv6.

Mein Problem
1 Woche später
Code:
host example.v6.rocks
Host example.v6.rocks not found: 3(NXDOMAIN)

Mein Workaround bisher
Ich log mich bei dynv6.com ein, ändere jeden Eintrag um eine Stelle, z.B. IP 1.2.3.4 auf 1.2.3.5 und wieder zurück auf 1.2.3.4. Danach kann ich meine Adressen auch wieder über öffentliche DNS-Server abfragen. ddclient und vermutlich auch die Fritzbox sparen sich wohl den Request zur Aktualisierung, wenn die IP gleichgeblieben ist.

Wie krieg ich das gelöst? Ich erinnere mich dunkel, dass das vor 2-3 Jahren noch nicht so war.
 
Alternative zu dynv6.com nutzen?
Hatte bei diesem Anbieter auch schon mit solchen unzuverlässigkeiten zu kämpfen.

Alternativ deinen workaround automatisieren
 
Zuletzt bearbeitet:
Es gibt eig. immer eine Update-URL bei den DynDNS Diensten, mit der der Router (Fritzbox) das selbstständig macht.
Habe ich sowohl bei ipv64.net als auch bei freemyip.com, erstes kann v4 und v6, bei letzterem ging es nicht so einfach für v6. Daher würde ich dir wenn ipv64.net empfehlen.

Auf der Fritzbox ist es unter:
Internet > Freigabe > DynDNS
Update-URL:
Code:
https://ipv64.net/nic/update?key=DEIN-KEY&domain=DEINE-DOMAIN&ip6=<ip6addr>
DEIN-KEY und DEINE-DOMAIN durch das ersetzen was du registiert hast, und die FB übernimmt das registrieren / updaten automatisch, z.B. wenn ein Reconnect und IP Wechsel vom ISP kommt (DSL Reconnect) oder wenn sie neu gestartet wird.
 
Zuletzt bearbeitet:
Typischen Problem von verfallende DNS-Einträge durch "Inaktivität".

Dynv6 will immer ein Update habe schau mal ob du die Fritzbox dazu bekommst das alle 24h zu machen.
 
Die Fritzbox hat kein Häkchen dafür. Da gibt's nur die Eingabemaske für DynDNS.
 
Bei den Fritzboxen wo ich es eingerichtet habe gab es dafür auch keinen Haken, die machen das wie geschrieben von allein. Die Update-URL mit den passenden Parametern am Ende, Domainname, Benutzername und Passwort auf der DynDNS Seite bei der FB eintragen, fertig.
Bei einem DS-Lite DSL-Anschluss kommt nächtlich ein Reconnect der Verbindung vom ISP samt neuer IPv6, läuft top.
 
@CubeID: Ich glaub, du hast mein Problem nicht ganz verstanden. Der initiale Eintrag meiner IP bei dynv6.com funktioniert problemlos. Genauso auf meinen Servern, die ich per ddclient registriert hab.

Mein Problem ist, dass die Einträge nach ca. 1 Woche zwar auf der dynv6-Seite noch vorhanden sind, im öffentlichen DNS allerdings die Domains nicht mehr aufgelöst werden können, also exakt das, was @Cool Master geschrieben hat.

Bei der Fritzbox scheint es keine Updatemöglichkeit zu geben. Bei ddclient müsste ich mal das die Optionen durchforsten, ob's da ein "Force-Update" gibt, auch wenn sich die IPs nicht ändern.
 
Eine Woche ist schon arg kurz...
Hmm, na dann vllt ein anderen DynDNS Provider probieren? Bei mir selber sehe ich es leider nicht wie häufig meine FB ein Update bei Freemyip macht, die andere FB mit IPv64 macht es eh täglich. weil die IP sich da ändert. Bei IPv64 kann man das im Webportal sehen was die letzten Aktivitäten / Updates waren. Bei Freemyip leider nicht, stelle ich vllt später mal um, so häufig ändern sich die Public IPs bei mir nicht.
 
Wenn schon eine Fritzbox vorhanden ist, was spricht gegen den hauseigenen DDNS Dienst Myfritz? Reicht i.d.R. aus, wenn man nicht grad irgend nen EdgeCase bedienen muss.
Und, falls eigene Domain vorhanden ist, einfach per CNAME auf die hässlich lange myfritz-Adresse leiten:
example.v6.rocks CNAME abcdef.myfrritz.net
 
ddclient hat nicht (mehr) wirklich funktioniert, daher dieser cronjob (v6 only):
Code:
$ cat /etc/cron.hourly/update-dynv6
#!/bin/bash
ipv6=$(curl -s https://api6.ipify.org/)
curl -s "https://dynv6.com/api/update?hostname=<hostname>&token=<token>&ipv4=-&ipv6=$ipv6"

die anpassung für zusätzlich v4 sollte klar sein :)
 
  • Gefällt mir
Reaktionen: Cool Master
Wenn nur du auf deinen Rechner zugreifen willst, wieso nicht Wireguard nutzen? Das ist direkt in der FB integriert.
 
@enxyo Weil man auch dafür, sofern man nicht den Fritz-Account nutzt, bei wechselnder Public-IP einen DynDNS-Dienst braucht
 
CubeID schrieb:
Hmm, na dann vllt ein anderen DynDNS Provider probieren?
Ja, der Aufwand hält mich etwas davon ab. Ich hatte früher TwoDNS genutzt. Dieselben Probleme und die Notwendigkeit für IPv6 haben mich dann auf Dynv6.com umsteigen lassen. Ich seh grad auf der Homepage, dass TwoDNS inzwischen den Service eingestellt hat.

CubeID schrieb:
Bei IPv64 kann man das im Webportal sehen was die letzten Aktivitäten / Updates waren.
Mir zeigt dynv6.com auch zuverlässig an, wann das letzte Update erfolgte. Also prinzipiell funktioniert dynv6.com. Ich kann die IPs automatisch aktualisieren, sofern sich was ändert und die Zonen haben sich richtig gut einrichten lassen, sowohl IPv4 als auch IPv6. Nur fehlt halt irgendwie die Verteilung der Einträge nach einer gewissen Zeit. Eventuell stoßen die auch ein Notify nur beim tatsächlichen Ändern der IP an.

Der Lord schrieb:
Wenn schon eine Fritzbox vorhanden ist, was spricht gegen den hauseigenen DDNS Dienst Myfritz?
Ist mir nicht so recht sympathisch. Kann's aber nicht logisch begründen. Ich hab's noch nie genutzt. Und den CName bräuchte ich ja trotzdem.

0x8100 schrieb:
ddclient hat nicht (mehr) wirklich funktioniert,
War bei mir auch so. Aber ich hab's zum Laufen bekommen. Statt Version 3, die bei Debian und Ubuntu noch im Paketmanager ist, gibt's auf der Github-Seite inzwischen Version 4. Und die funktioniert tatsächlich wieder zuverlässig.

enxyo schrieb:
Wenn nur du auf deinen Rechner zugreifen willst, wieso nicht Wireguard nutzen?
Weil ich für Wireguard DynDNS brauch, damit sie ich die verschiedenen Rechner im großen weiten Internet erstmal finden können? Meine IPs sind zwar irgendwie statisch, zumindest haben sie sich nicht geändert, seit ich die Server und Anschlüsse hab. Aber garantiert ist das nicht.
 
Pummeluff schrieb:
gibt's auf der Github-Seite inzwischen Version 4
ist richtig, hatte damals auch in den code schauen wollen, um zu sehen, wo es klemmt. habe dann gesehen, dass das perl ist... und wenn man sieht, dass man das im grunde mit einem curl-aufruf hinbekommt, dann kann ich auch auf den ddclient verzichten.
 
  • Gefällt mir
Reaktionen: Pummeluff
Pummeluff schrieb:
Weil ich für Wireguard DynDNS brauch, damit sie ich die verschiedenen Rechner im großen weiten Internet erstmal finden können? Meine IPs sind zwar irgendwie statisch, zumindest haben sie sich nicht geändert, seit ich die Server und Anschlüsse hab. Aber garantiert ist das nicht.
Willst nur du mit einem Gerät auf deinen Rechner von der Ferne zugreifen, oder mehrere Personen? Denn wenn es nur du bist mit z.B. dem Handy, Laptop oder Tablet, dann ist das sehr einfach. du brauchst auch kein dyndns für Wirequard.
 
Die Infrastruktur steht schon seit mehreren Jahren:
  • 1. V-Server: Zentraler Knotenpunkt, hat eine IPv4 und eine IPv6.
  • 2. V-Server: Minecraft-Server. Ist per Wireguard zum 1. V-Server verbunden. Server hat nur eine IPv4.
  • Mein Heimnetzwerk: Provider Deutsche Glasfaser. Hab nur eine öffentliche IPv6. Dauerhaftes Wireguard-Netz zum 1. V-Server
  • Heimnetz meiner Eltern: Die haben nur eine öffentliche IPv4. Dauerhaftes Wireguard-Netz zum 1. V-Server.
  • Mehrere Mobiltelefone + Notebook: Können sich sowohl zu meiner Fritzbox (IPv6) als auch zum 1. V-Server (IPv4) verbinden.
  • Ein Rechner in einem geschlossenen LAN: Verbindung zum 1. V-Server per IPv4

Dazu will ich aber auch die Fallbackmöglichkeit haben, dass ich mich auf den beiden V-Servern, meinem NAS im Heimnetzwerk und auf der als Wireguard-Server missbrauchten Dreambox meiner Eltern per SSH ohne Wireguard einloggen kann.

Und da ist ein DynDNS-Name schon durchaus sinnvoll, auch wenn sich zumindest die IPs der V-Server und die meiner Fritzbox nicht ändern.

Eventuell werd ich mal die Methode ohne ddclient und den profanen Curl-Request einrichten. Nach mehrmaligem Überlegen gefällt mir die Idee immer besser. Ich werd da mal ein ddclient-lite-lite in Form eines Bash-Scripts basteln.
 
Ok, ich hab jetzt die Lösung mit curl umgesetzt:

Basis dazu:
showIP-Script (heißt inzwischen getIP)
Bash:
#!/bin/bash

FB_HOST="fritz.box"
SERVICE_PATH="/igdupnp/control/WANIPConn1"
SERVICE_URN="urn:schemas-upnp-org:service:WANIPConnection:1"
CURL_OPTS="-s -k --connect-timeout 5"
ipv4=0
ipv6=0
cidr=0
prefix=0

print_usage()
{
    echo "IP-Infos"
    echo -e "\nUsage: $(basename $0) [-h] [-4] [-6] [-c] [-p] [host]"
    echo -e "\nOptionale Argumente:"
    echo -e "  -h, --help\tZeige diese Hilfe und beende das Programm"
    echo -e "  -4\t\tIPv4"
    echo -e "  -6\t\tIPv6"
    echo -e "  -c, --cidr\tCidr"
    echo -e "  -p, --prefix\tPräfix"
    echo -e "  host\t\tIP|Hostname der Fritzbox"
}

send_upnp_request() {
  local action="$1"
  local response=$(curl ${CURL_OPTS} \
    -H "Content-Type: text/xml; charset=\"utf-8\"" \
    -H "SoapAction:${SERVICE_URN}#${action}" \
    -d "<?xml version='1.0' encoding='utf-8'?><s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'><s:Body><u:${action} xml
ns:u='${SERVICE_URN}'/></s:Body></s:Envelope>" \
    "http://${FB_HOST}:49000${SERVICE_PATH}")

  # Fehlererkennung
  if echo "$response" | grep -q "<errorCode>"; then
    local error_code=$(echo "$response" | sed -n 's/.*<errorCode>\([0-9]\+\).*/\1/p')
    local error_desc=$(echo "$response" | sed -n 's/.*<errorDescription>\([^<]\+\).*/\1/p')
    echo "Fehler: ${action}:${NC} [${error_code}] ${error_desc}" >&2
    return 1
  fi

  echo "$response"
}

while [[ $# -gt 0 ]]; do
    case $1 in
        "--help"|"-h")
            print_usage
            exit 0
            ;;
        "--prefix")    prefix=1;;
        "--cidr")      cidr=1;;
        -*)
            options="${1#-}"
            while [[ -n "$options" ]]; do
                case "${options:0:1}" in
                    "4")    ipv4=1;;
                    "6")    ipv6=1;;
                    "c")    cidr=1;;
                    "p")    prefix=1;;
                    *)  echo "Fehler: Unbekannte Option -${options:0:1}" >&2
                        exit 1
                        ;;
                esac
                options="${options:1}"

            done
            ;;
        *)   
            FB_HOST="$1";;
    esac
    shift
done

[[ $ipv4 -eq 1 ]] && send_upnp_request "GetExternalIPAddress" | sed -n 's/.*<NewExternalIPAddress>\([^<]\+\).*/\1/p'
[[ $ipv6 -eq 1 ]] && send_upnp_request "X_AVM_DE_GetExternalIPv6Address" | sed -n 's/.*<NewExternalIPv6Address>\([^<]\+\).*/\1/p'
[[ $prefix -eq 1 ]] && send_upnp_request "X_AVM_DE_GetIPv6Prefix" | sed -n 's/.*<NewIPv6Prefix>\([^<]\+\).*/\1/p'
[[ $cidr -eq 1 ]] && send_upnp_request "X_AVM_DE_GetIPv6Prefix" | sed -n 's/.*<NewPrefixLength>\([0-9]\+\).*/\1/p'

Das Fritzbox-Skript hat mich trotz extensiver Nutzung von Deepseek einiges an Arbeit gekostet, da ich keine Doku zur UPnP-Schnittstelle gefunden hab und die KI auch ziemlich lang im Dunkelt getappt ist.

Auf dem VServer war's einfach:
/etc/cron.d/dynv6
Code:
0 */6 * * * root systemd-cat -t "dynv6" /usr/bin/curl -s "https://dynv6.com/api/update?hostname=vserver.v6.rocks&token=xxxgeheimxxx&ipv4=$(/usr/local/bin/getIP -4)&ipv6=$(/usr/local/bin/getIP -6)"

Bei meinem NAS war's dann schon etwas aufwendiger durch das Auslesen der Fritzbox:
/etc/cron.d/dynv6
Code:
0 */6 * * * root systemd-cat -t "dynv6" /usr/bin/curl -s "https://dynv6.com/api/update?hostname=nas.example.v6.rocks&zone=example.v6.rocks&token=xxxgeheimxxx&ipv6=$(/usr/local/bin/getIP -6)"
0 */6 * * * root systemd-cat -t "dynv6" /usr/bin/curl -s "https://dynv6.com/api/update?hostname=example.v6.rocks&token=xxxgeheimxxx&ipv6=$(/usr/local/bin/getFritzIP -6 fritzbox.localdomain)&ipv6prefix=$(/usr/local/bin/getFritzIP -p fritzbox.localdomain)"

Noch etwas gemeiner war's dann auf der Dreambox meiner Eltern. Da gibt's weder Cron noch systemd-timer:
/usr/local/bin/dynv6update
Code:
#!/bin/bash

while true; do
    logger -t "dynv6" $(/usr/bin/curl -s "https://dynv6.com/api/update?hostname=example2.v6.rocks&token=xxxgeheimxxx&ipv4=$(/usr/local/bin/getFritzIP -4)")
    sleep 21600
done

/etc/systemd/system/dynv6.service
Code:
[Unit]
Description=dynv6 Update
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/dynv6update
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Es funktioniert. Danke @0x8100
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: 0x8100 und rezzler
Pummeluff schrieb:
Bei der Fritzbox scheint es keine Updatemöglichkeit zu geben.
Probier doch mal aus, was passiert, wenn du bei dir die 24h-Zwangstrennung in der FritzBox aktivierst?
 
Mein Internetzugang ist über die Deutsche Glasfaser. Die Verbindung wird vom DG-Modem an den WAN-Port der Fritzbox durchgereicht.

Die Option der Zwangstrennung gibt's da nicht mehr.

Mir gefällt die Idee der Zwangstrennung auch nicht sonderlich. Das ist ein Relikt aus früheren Zeiten, was eigentlich keiner braucht. Schon bei meinem früheren Provider (1&1) hab ich nach dem Neuverbinden dieselbe IP wieder bekommen.

Und davon abgesehen, will ich auch die Stunden an Arbeit nicht umsonst investiert haben. Bin mit der Lösung ganz zufrieden. Den DynDNS-Eintrag hab ich in den beiden Fritzboxen ja trotzdem drin stehenlassen.
 
Zurück
Oben