dynv6.com veröffentlicht keine IPs

Pummeluff schrieb:
Die Option der Zwangstrennung gibt's da nicht mehr.
Bei meiner 7490 am Telekom-FTTH-Anschluss könnte ich die anmachen. Das ist in dem Fall ja keine Funktion vom Anbieter, sondern von der FritzBox.
Pummeluff schrieb:
Mir gefällt die Idee der Zwangstrennung auch nicht sonderlich. Das ist ein Relikt aus früheren Zeiten, was eigentlich keiner braucht.
Für die Fehlersuche/-eingrenzung fänd ichs schon aussagekräftig.
 
GetExternalIPAddress hab ich in der Doku gefunden. X_AVM_DE_GetExternalIPv6Address, X_AVM_DE_GetIPv6Prefix und X_AVM_DE_GetIPv6Prefix konnte ich in der Spec jedoch nicht entdecken.
 
In der FritzBox hast du aber unter

DNS-Rebind-Schutz deine Domain eingetragen? Sonst blockt sie die Abfrage, wenn die IP auf dich verweist.​

 
Ja, steht drin.

Update:
Hab eben mal nachgesehen. Von meinen 4 Zonen stand bei einer 1 Zone. Last Update 3 weeks ago.

Der Eintrag war auch nicht verfügbar in öffentlichen DNS-Servern. Mein Curl-Aufruf gibt da zurück: "Address unchanged." Ich hab den Eintrag jetzt mal über die Weboberfläche geändert und den Curl aufruf neu gestartet. Damit wurde die Adresse wieder korrigiert und ist jetzt auch wieder über DNS erreichbar.

Bei einer anderen Adresse steht bei Last Update: 2 weeks ago. Allerdings kann der Name noch aufgelöst werden.

Ich werd mich mittelfristig wohl mal nach einem anderen DynDNS-Provider umsehen. Dabei find ich die v6.rocks-Domains eigentlich ziemlich cool.
 
Kauf dir für 4.8€ pro jahr eine .de und gut, dann zu Cloudflare übertragen und du kannst ohne Ende Subdomains erstellen/updaten.
 
Update: Hab jetzt ein paar Sachen angepasst:
  • Cronjob-Ausführung von 6 auf 2 Stunden verringert, da bei 2 Systemen schon wieder die Einträge weg waren.
  • Bei einem IPv6-Host musste ich noch den Parameter zone hinzufügen. Da bekam ich die Fehlermeldung zone not found
 
Avenger84 schrieb:
ohne Ende Subdomains erstellen/updaten

Kann man auch so, einfach ein A bzw. AAAA Eintrag so machen: *.example.com dann musst du die Sub-Domains nicht mal eintragen sondern hast ein Wildcard. 4,80 € für eine .de Domain ist aber sehr gut, hast du da ein Beispiel wo man die bekommt? Ich zahle für .de ca. 12 € im Jahr.
 
netcup z.b. möchte ganze 35 cent pro monat für eine .de domain. die haben auch eine api zum aktualisieren der records. damit habe ich mir ein dyndns gebaut.
 
  • Gefällt mir
Reaktionen: Cool Master
Cool Master schrieb:
4,80 € für eine .de Domain ist aber sehr gut, hast du da ein Beispiel wo man die bekommt?
Hier auf anraten aus diesem Forum
danach zu Cloudflare umgezogen, weil man bei inwx nur eine Domain kostenlos dynamisch ändern kann.

Mit dem Wildcard Beispiel habe ich nicht verstanden.
 
  • Gefällt mir
Reaktionen: Cool Master
Avenger84 schrieb:
Mit dem Wildcard Beispiel habe ich nicht verstanden.

im DNS A (IPv4) bzw. AAAA (IPv6) gibst du deine IP an und beim name eben *.example.com

Damit kannst du dann auf abc.example.com, def.example.com usw. zugreifen.
 
Da das Thema noch nicht endgültig abgeschlossen war, hab ich über Silvester mal wieder etwas gebastelt.

Problem (weiterhin): In dynv6 werden meine IPs korrekt angezeigt. Über öffentliche DNS-Server, z.B. 1.1.1.1 (Cloudflare) wird die IP nur eine bestimmte Zeit lang aufgelöst. Manchmal toggelt es auch, d.h. bei einer Abfrage wird die IP aufgelöst, 1 Sekunde später nicht mehr.

Alles deutet darauf hin, dass dynv6 die Einträge nicht neu publiziert, wenn sie sich nicht ändern. Und die public DNS-Server werfen die Einträge ohne Publizierung dann einfach mal raus.

Die neue Lösung (dank KI):
Ich setze die IP auf 0.0.0.0 und 2 Sekunden später auf die korrekte IP. Damit erzwinge ich praktisch die erneute Publizierung.

Bash:
#!/bin/bash

#HOSTNAME="$1.v6.rocks"
HOSTNAME="meinvserver.v6.rocks"
TOKEN="xxxgeheimxxx"

# 1. Abfrage DNS
# DNS leer → öffentliche IP abfragen → Eintrag erneuern
# DNS nicht leer → öffentliche IP abfragen und vergleichen
#   =: nix
#   !=: Eintrag erneuern
# Eintrag erneuert: Check, ob es geklappt hat.


is_valid_ipv4() {
    [[ $1 =~ ^([0-9]{1,3}\.){3}[0-9]{1,3}$ ]] || return 1
    local IFS=. n; read -ra n <<< "$1"
    for i in "${n[@]}"; { (( i >= 0 && i <= 255 )) || return 1; }
}

is_valid_ipv6() {
    local ipv6="$1"

    # Leere Eingabe prüfen
    if [[ -z "$ipv6" ]]; then
        return 1
    fi

    # IPv6-Adressen können in verschiedenen Formaten vorliegen:
    # 1. Vollständige Form: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
    # 2. Komprimierte Form: 2001:db8:85a3::8a2e:370:7334
    # 3. Mit IPv4-Embedded: ::ffff:192.168.0.1

    # Prüfung mit regex für IPv6-Adressen
    # Erklärung des regulären Ausdrucks:
    # ^(?!.*::.*::) - Verhindert mehr als eine :: Komprimierung
    # ([0-9a-fA-F]{1,4}:){1,7} - 1-7 Gruppen von 1-4 Hex-Zeichen mit Doppelpunkt
    # | - oder
    # :: mit verschiedenen Kombinationen
    # (\.((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){4}) - Für IPv4-embedded Notation

    local ipv6_regex='^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$'

    if [[ "$ipv6" =~ $ipv6_regex ]]; then
        return 0  # Gültige IPv6-Adresse
    else
        return 1  # Ungültige IPv6-Adresse
    fi
}

update_dyndns() {
    echo "Setze DynV6 auf 0.0.0.0 und ::"
    /usr/bin/curl -s "https://dynv6.com/api/update?hostname=$HOSTNAME&token=$TOKEN&ipv4=0.0.0.0&ipv6=::"
    echo
    sleep 2
    echo "Setze DynV6 auf $public_ip4 und $public_ip6"
    /usr/bin/curl -s "https://dynv6.com/api/update?hostname=$HOSTNAME&token=$TOKEN&ipv4=$1&ipv6=$2"
    echo
}

public_ip4="$(curl -4 https://ifconfig.co)"
public_ip6="$(curl -6 https://ifconfig.co)"
if ! is_valid_ipv4 "$public_ip4" ; then
    echo "Fehler: Konnte öffentliche IPv4 nicht ermitteln. Abbruch!"
    exit 1
fi

if ! is_valid_ipv6 "$public_ip6" ; then
    echo "Fehler: Konnte öffentliche IPv6 nicht ermitteln. Abbruch!"
    exit 1
fi

# IP vom DNS
ip_dns4="$(dig -t A $HOSTNAME +short @1.1.1.1 2>/dev/null)"
ip_dns6="$(dig -t AAAA $HOSTNAME +short @1.1.1.1 2>/dev/null)"

if [[ -z "$ip_dns4" || "$ip_dns4" != "$public_ip4" || -z "$ip_dns6" || "$ip_dns6" != "$public_ip6" ]]; then
    echo "Update dynv6: $public_ip4 + $public_ip6"
    update_dyndns "$public_ip4" "$public_ip6"
else
    echo "Nichts zu tun. Public-IP: $ip_dns4 + $ip_dns6"
fi

Der Cronjob dazu. Alle 2 Stunden.
/etc/cron.d/dynv6
Bash:
0 */2 * * * root systemd-cat -t "dynv6" /usr/local/sbin/dynv6update

Im Log sieht das dann so aus:
Code:
# wird nichts geändert:
Jan 16 02:00:01 tonne.ton dynv6[85750]: Nichts zu tun. Public-IP: 5.4.3.2 + 2a00:xxxx::3d2c
# Änderung:
Jan 16 22:00:01 tonne.ton dynv6[87890]: Update dynv6:5.4.3.2 + 2a00:xxxx::3d2c
Jan 16 22:00:59 tonne.ton dynv6[87909]: addresses updated
Jan 16 22:00:01 tonne.ton dynv6[87890]: Setze DynV6 auf 0.0.0.0 und ::
Jan 16 22:01:06 tonne.ton dynv6[87915]: addresses updated

Für mich ziemlich interessant dabei war jetzt das Verhalten:
Vom 14.01. bis 16.01. gab es keine Änderung. Ab dem 16.01. 18:00 Uhr bis jetzt wurde die IP alle 2 Stunden zurückgesetzt. Nur zwischendrin gab es mal ein oder 2 Abfragen, bei denen nichts geändert werden musste.

Auf meinem 2. Server, der nur eine IPv4 hat, sieht's ähnlich aus.

Warum die DNS-Einträge nur so kurzlebig sind, kann ich mir jetzt nicht erklären.
 
Pummeluff schrieb:
dass dynv6 die Einträge nicht neu publiziert
DNS arbeitet anders herum. Nur wenn die Cache-Zeit abgelaufen ist, fragt man nach. Du kannst Jahre, sogar Jahrzehnte lang irgendwelche DNS-Einträge statisch haben. Hatten wir letzt sogar einen Thread im Forum, bei dem über Monate die IPv4 falsch hinterlegt war. IPv6 war richtig und daher sah es so aus, als wäre alles OK. Aber dynv6 scheint langsam kaputt zu gehen … Jener Post geht dann wieder zurück auf einen Thread bei uns …

Daher wäre (auch) mein Tipp, den DynamicDNS-Anbieter anzuschreiben und solange eine Alternative zu suchen.
Pummeluff schrieb:
Das funktioniert nur augenscheinlich. Weil solche öffentlichen DNS-Anbieter mit ganz vielen Server arbeiten, wirst Du vermutlich zufällig solange immer den selben Server bekommen haben.
 
dynv6 is irgendwie scheintot, die community geht seit ewigkeiten nicht, auf die supportmails antwortet auch keiner.
habe auch mit der dynv6.net domain immer wieder Probleme, welche nur auf 1 der 3 Server richtig konfiguriert ist.
Es gibt noch den dienst ipv64.net der Ähnlich funktioniert.
 
  • Gefällt mir
Reaktionen: KitKat::new()
Zurück
Oben