Problem Custom (v6) DynDNS und Selfhost



  • Hallo zusammen, mir ist heute ein Problem mit einem selbst erstellten DynDNS IPv6 (Selfhost) Eintrag aufgefallen.

    Bei Ergebnis gibt man unter anderem die IP Adresse als Platzhalter %IP% ein. Das funktionierte bei mir nicht und es kam im Logfile die Meldung, dass das Ergebnis nicht übereinstimmt. Ich habe dann die von Selfhost zurückgegebne IPv6 Adresse statt den Platzhalter eingegeben und es funktionierte. Ich habe dann die auf dem WAN Interface ausgelesene IPv6 Adresse mit der von Selfhost zurückgegebenen verglichen und dabei ist mir folgendes aufgefallen:

    WAN Interface IPv6 (%IP%)
    2001:18b4:3200:7f4a:20d:b9ff:fe45:b718

    Selfhost Wert
    2001:18b4:3200:7f4a:020d:b9ff:fe45:b718

    Selfhost gibt die IPv6 Adresse ungekürzt zurück und die pfSense ließt sie gekürzt aus und lässt die vorangestellte 0 weg.

    Gibt es eine Möglichkeit das zu korrigieren?


  • Moderator

    @nonick und warum willst du etwas korrigieren was so richtig ist? Laut ipv6 Definition ist es völlig legitim in der Schreibweise führende 0 wegzulassen.

    2a06:45:13::99
    

    sagt also das gleiche aus wie

    2a06:0045:0013:0000:0000:0000:0000:0099


  • Hallo Jens, danke für deine Antwort.

    Mir ist die Schreibweise von IPv6 Adressen schon klar. Mein Problem ist ein anderes.

    Bei den Custom (v6) Einstellungen gibt es das Feld: Ergebnis passt. Dort wird die aktuelle IPv6 Adresse vom WAN Interface mit der von Selfhost im DNS hinterlegten verglichen. Ist das Ergebnis gleich, dann ist keine Aktualisierung notwendig. Wenn nicht, dann wird die aktuelle IPv6 WAN Adresse zu Selfhost übermittelt und im DNS aktualisiert.

    Ich gebe in dem Feld Ergebnis passt für Selfhost bei erfolgreicher Aktualisierung folgendes ein: status=200 updateip=%IP%
    Die pfSense trägt dann für den Platzhalter %IP% die aktuelle IPv6 Adresse vom WAN Interface ein. Das Ergebnis sieht dann so aus:

    status=200 updateip=2001:18b4:3200:7f4a:20d:b9ff:fe45:b718

    Selfhost gibt aber als Antwort die ungekürzte Adresse zurück:

    2001:18b4:3200:7f4a:020d:b9ff:fe45:b718

    Damit passt das Ergebnis nicht, im Logfile steht

    /services_dyndns_edit.php: phpDynDNS (): (Fehler) Das Ergebnis passt nicht. [status=200 updateip=2001:18b4:3200:7f4a:020d:b9ff:fe45:b718 ]

    Die pfSense vergleicht einfach nur stur die 2 IPv6 Adressen:

    WAN=2001:18b4:3200:7f4a:20d:b9ff:fe45:b718
    Selfhost Rückgabewert= 2001:18b4:3200:7f4a:020d:b9ff:fe45:b718

    Meiner Meinung nach ist der pfSense die Schreibweise von IPv6 Adressen nicht klar und ist der Meinung, es handelt sich um 2 verschiedene Adressen.

    Das dem so ist sieht man daran, das wenn ich statt dem Platzhalter %IP% die aktuelle IPv6 Adresse vom WAN Interface ungekürzt eintrage, es dann funktioniert.

    LG, Micha


  • Moderator

    @nonick Ah, jetzt verstehe ich etwas besser was gemeint ist. Muss das Result Matching überhaupt gemacht werden? Soweit ich das verstanden hatte, ist das Feld optional und muss nicht geprüft werden, der Push mit der IPv6 Adresse geht aber trotzdem raus?



  • Leider ist das die Voraussetzung damit der dyndns Service ein force Update macht. Ohne dem prüft dieser nur und da dann ohne diesen Ergebnis immer alles OK ist, geschieht dann keine Aktualisierung.

    Zur Zeit helfe ich mir damit, dass ich in dem Feld den korrekten Wert "status=200 updateip=%IP%" eingetragen habe. Dadurch kommt es nach einem IP Wechsel immer dazu, dass das Ergebnis nicht passt und der dyndns Service löst das force Update aus.

    Meine Sorge war am Anfang, dass der dyndns Service alle 10 min. ein force Update auslöst (da so das Ergebnis nie passt) und Selfhost mir irgendwann aufs Dach steigt. Das passiert aber nicht, der dyndns Service führt das nur einmal aus und legt sich dann wieder hin.

    Schön wäre es, wenn es richtig funktionieren würde.


  • Moderator

    OK jetzt die zweite Preisfrage: Warum pushst du dann überhaupt ein IPv6 Update, wenn es keines geben müsste oder verstehe ich dein Problem falsch? Wenn es doch kein Prefix Change gibt und du kein Update machen musst, warum dann überhaupt das Ganze?



  • Durch die Zwangstrennung und neuen IPv6 Präfix muss ja die neue Adresse dem DNS (Selfhost) mitgeteilt werden. Der dyndns Service erkennt nach der Trennung die neue IPv6 Adresse, macht aber nicht gleich ein force Update. Der Dienst fragt erst bei Selfhost nach, ob die neue IPv6 Adresse vielleicht schon im DNS steht. Die dann darauf folgende Fehlerantwort kann der dyndns Service aber nicht überprüfen, da kein Eintrag im Feld "Ergebnis passt" steht und geht dann davon aus das alles OK ist. Dadurch geschieht dann keine Aktualisierung der neuen IPv6 Adresse.

    Das Feld "Ergebnis passt" ist wichtig, nur dadurch erfährt der dyndns Service überhaupt erst was richtig oder falsch ist und handelt entsprechend. Das ist auch der Grund warum ich in das Feld was geschrieben habe, dadurch passt das Ergebnis nie und es kommt zum force Update. Glücklicherweise macht er das nur einmal, sonst würde ich von Selfhost Probleme bekommen.


  • Moderator

    @nonick Gut also doch dynamisches Prefix, ich dachte schon das ist sinnfreies pushing wegen einem halb-kaputten dyndns Dienst. Wäre nicht der erste. Anyway ich denke die einzige korrekte Antwort wäre eine Anfrage im Dyndns bzw. IPv6 Forenbereich nach einem Selfhost v6 Eintrag, der das Ganze richtig behandelt und auf die Eigenheiten des Dienstes eingeht. Alles kann man an der Stelle eben dann doch nicht mit customV6 abdecken, wenn jeder Dienst leider anders reagiert. Da bin ich immer wieder recht froh um DNS Dienste wie bei Cloudflare, die einen das DNS nicht nur selbst konfigurieren lassen, sondern auch API Updates unterstützen und damit dritte DynDNS Anbieter überflüssig machen.

    Gruß



  • Ein richtiger Selfhost v6 Eintrag wäre natürlich das beste. Das mit dem DNS Dienst bei Cloudflare muss ich mir mal anschauen. Da könnte man so ein Problem einfach lösen.