hansdampf06
Goto Top

FortiGate und genericDDNS

Hallochen Gemeinde,

aufgrund eines Standort- und somit Anschlusswechsels übernimmt vorerst die FortiGate (60D) das PPPoE (bei der Telekom) - soweit alles gut. Demgemäß soll auch das Dynamic DNS von der FortiGate erledigt werden und hierbei den bisherigen Account bei ddnss.de benutzen. Dieser Anbieter ist natürlich in der expliziten Auflistung in der FortiGate nicht vorhanden, so dass als ddns-server der Wert genericDDNS auszuwählen ist.

Bei ddnss.de erfolgte das Update über URL entweder per User + Password oder per Key. Die Syntax sieht so aus:
http://ddnss.de/upd.php?user=USER&pwd=PASS&host=HOSTNAME.ddnss.de
oder
http://ddnss.de/upd.php?key=SCHLÜSSEL&host=HOSTNAME.ddnss.de
Beides geht natürlich auch per HTTPS.

Leider ist im Internet so gut wie nichts brauchbares an Informationen für diese Variante zu finden. Orientiert an dem, was zu finden ist, lautet die Konfiguration:

config system ddns
    edit 1
        set ddns-server genericDDNS
        set ddns-domain "HOSTNAME.ddnss.de"  
        set monitor-interface "WAN_VLAN7"  
        set ddns-server-ip 85.114.136.161
        set ddns-zone "HOSTNAME"  
        set ddns-ttl 482
        set ddns-auth tsig
        set ddns-keyname "key"  
        set ddns-key 'ENC ...'  
    next
end

Der von ddnss.de im Account vorgegebene SCHLÜSSEL wurde vor der Eingabe über einen base64-Generator konvertiert und dann bei ddns-key eingegeben.

Die FortiGate probiert zwar regelmäßig ein Update, aber es wird immer folgende Fehlermeldung ausgeworfen:

1684926852: Start to update genericDDNS (HOSTNAME.ddnss.de)
1684926852: next wait timeout 10 seconds
generic_ddns_handler(): bad key name
1684926852: Failed on update genericDDNS (HOSTNAME.ddnss.de), next try at 1684926972

Zu dieser Fehlermeldung konnte ich nichts finden. Was ist in diesem Fall die richtige Angabe für ddns-keyname? Der Parameter kann jedenfalls nicht undefiniert gelassen werden, weil dann die FortiGate bei der Konfiguration meckert.

Ich verstehe die CLI-Syntax so, dass die FortiGate den Parameter ddns-server-ip als Äquivalent für "http://ddnss.de" verwendet. Muss etwa irgendwie die gesamte restliche URL bei ddns-keyname / ddns-key angegeben werden? Was gehört dann zu welchem der beiden Parameter?

Vielen Dank im Voraus für Euren Input und viele Grüße
HansDampf06

PS: Beim vormals verwendeten Draytek Vigor130 (Angabe der URL sowie von User und Password) beziehungsweise Speedport Pro Plus (User und Password) ist die Verwendung des ddnss.de-Accounts problemfrei möglich.

Content-ID: 7288526125

Url: https://administrator.de/forum/fortigate-und-genericddns-7288526125.html

Ausgedruckt am: 21.12.2024 um 17:12 Uhr

HansDampf06
HansDampf06 24.05.2023 um 14:35:47 Uhr
Goto Top
In der CLI-Referenz ist hinsichtlich dem Parameter genericDDNS angemerkt, dass (nur) solche DDNS-Server unterstützt werden, die RFC2136 entsprechen. Dem hatte ich bisher keine nähere Beachtung geschenkt.

Deswegen bin ich jetzt dem dann doch noch näher nachgegangen und bin so ganz oben in den aufgelisteten Suchergebnissen auf den entsprechenden Wikipedia-Artikel zum DynDNS gestoßen. Dort wird beschrieben, dass es zwei Verfahren für das DDNS-Update gibt: (1) per URL / HTTP oder (2) gemäß RFC2136/RFC3007. Übertrage ich diese Beschreibung auf die FortiGate, so ist das FortiOS - im Gegensatz zu Draytek Vigor130 / Speedport Pro Plus - nach seinen Konfigurationsmöglichkeiten wohl nur zur zweiten Variante, aber nicht zur ersten in der Lage. Dann kann natürlich ein Account bei ddnss.de, der auf die erste Variante setzt, nicht aktualisiert werden. Mithin muss das DNS-Update auch scheitern.

Somit bliebe wohl nur, entweder bei ddnss.de anzufragen, ob auch eine Update-Möglichkeit per RFC2136/RFC3007 besteht (eher unwahrscheinlich), oder auf den Parameter FortiGuardDDNS und somit auf einen ganz anderen FQDN zu wechseln. Freilich müssen dann alle Anwendungen, die auf den bisherigen FQDN abstellen, angepasst werden.

Kann jemand diese Erkenntnis bestätigen? Oder gäbe es noch einen anderen (einfache(re)n) Weg?

Viele Grüße
HansDampf06
godlie
godlie 24.05.2023 um 15:12:22 Uhr
Goto Top
Hallo,

ich würde das ganze über einen Shedule Trigger in Verbindung einer Webhook Action realisieren.

Bei der Webhook Action kannste alles mitgeben was du brauchst, als Trigger einen Sheduled Trigger erstellen

https://docs.fortinet.com/document/fortigate/7.4.0/administration-guide/ ...
https://docs.fortinet.com/document/fortigate/7.4.0/administration-guide/ ...

grüße
ketanest112
ketanest112 20.08.2024 um 20:54:34 Uhr
Goto Top
Auch wenn der Beitrag schon etwas älter ist: Ich würde das tatsächlich auch über einen Webhook realisieren (sofern der Server die IP-Adresse ausliest und nicht per GET- oder POST-Variable braucht). genericDDNS kann man machen, setzt aber wie gesagt einen RFC2136 Server voraus und kann (Stand Firmware 7.2) nur HMAC-MD5 als Hash-Algorithmus (womit man sich das Verschlüsseln dann eigentlich auch gleich sparen könnte), deshalb lieber Webhook mit HTTPS.
HansDampf06
HansDampf06 21.08.2024 um 20:20:03 Uhr
Goto Top
@godlie, @ketanest112

Besten Dank für Eure Rückäußerungen!

Das Problem hatte sich im Juli/August 2023 durch die Ersetzung der FortiGate vollständig erledigt. Denn die Ersetzung der FortiGate war längst überfällig, so dass dem von Euch empfohlenen Ansatz über einen Webhook nicht mehr nachgegangen wurde/wird.

In der jetzigen Konfiguration mit einem OPNsense-Router wird die DynDNS-Aktualisierung vom internen Netzwerk über den Daemon ddclient (mit Zeitintervall) auf einem/mehreren permanent laufenden Servern ausgeführt. Dadurch ist einerseits eine Reduktion der installierten Funktionen auf dem Router und andererseits eine regelmäßige Prüfung - und nicht nur beim Initialisieren der Internetverbindung - gegeben. Freilich könnte das OPNsense-eigene Paket os-ddclient verwendet werden, was aber eine zusätzliche Funktion auf dem Router wäre, die vermieden werden soll.

Der ddclient selbst ist sehr simpel und die Logs im syslog sind überschaubar und inhaltlich sofort erfassbar. Insoweit tendiert der administrative Aufwand gegen Null.

Viele Grüße
HansDampf06