OpenWrt: DDNS-Client auf Access Point


Da mein „Hauptrouter“ von Netgear leider nur DDNS-Client für DynDNS.org spielen kann, und dieser Dienst seit einiger Zeit kostenpflichtig ist, brauchte ich eine andere Lösung dem DDNS-Dienst (www.no-ip.com) die aktuelle IP-Adresse mitzuzeilen.

Ich verwende einen TP-Link TL-WR841ND v7 mit OpenWrt als weiteren Access Point. Durch die alternative Firmware ist dieser umfangreich erweiterbar, unter anderem auch mit einem DDNS-Client.

Die Installation ist hier beschrieben: http://wiki.openwrt.org/doc/howto/ddns.client

Das Problem

Das Problem in meinem Fall ist, dass ich den Router nur als Access Point einsetze, dieser wählt sich also nicht direkt ins Internet ein. Dadurch kennt er die externe IP-Adresse nicht und kann auch nicht direkt auf einen Wechsel der IP reagieren.

Die Lösung

Damit der Router die externe IP-Adresse abrufen kann, kann man diese von einem Internetdienst abrufen. Dazu legt man die Source auf URL fest, als URL kann man beispelsweise http://ipv4.wtfismyip.com/text verwenden. Diese Internetseite liefert die aktuelle IP als reinen Text zurück.

Im Normalfall würde der Prozess starten, sobald sich die IP-Adresse an der Schnittstelle die unter Event Interface angegeben ist ändert. Da am WAN-Interface in diesem Fall jedoch nichts angeschlossen ist, müssen wir uns etwas anderes einfallen lassen.

Das Script lässt sich über die Kommandozeile mit folgendem Befehl starten:

. /usr/lib/ddns/dynamic_dns_functions.sh && start_daemon_for_all_ddns_sections "wan"

Damit das Script allerdings automatisch beim Neustart des Routers ausgeführt wird, müssen wir dieses noch in die rc.local-Datei eintragen. Über die Web-Oberfläche ist diese im Menüpunkt System > Startup editierbar.

Der Befehl muss einfach vor der Zeile exit 0 eingefügt werden. Die gesamte Datei sieht dann beispielsweise so aus:

# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.

# DDNS-Service starten:
. /usr/lib/ddns/dynamic_dns_functions.sh && start_daemon_for_all_ddns_sections "wan"

exit 0

Ich hoffe ich konnte euch damit weiterhelfen. Wenn noch etwas unklar ist, lasst einfach einen Kommentar da 🙂


2 Antworten zu “OpenWrt: DDNS-Client auf Access Point”

  1. Hallo,
    Ich habe eine ähnliche Situation. Ich benutze einen Router mit Openwrt hinter einer Fritzbox.
    Die Fritzbox wird benötigt da in dieser das Adsl Modem sitzt.

    Meine Konfiguration sieht also so aus:
    Telefondose –> Fritzbox–>Openwrt Router
    Der Wan Port des Openwrt Routers ist mit dem Switch in der Fritzbox verbunden. Die Fritzbox wurde so eingestellt das sie den ganzen Internetverkehr an den openwrt Router weiterleitet. (Exposed Host).

    Problem:
    Der Openwrt Router kennt natürlich nur die zugewiesene ip der Fritzbox und da diese immer gleich bleibt gibt es über ddns auch kein Update.

    Kann ich das Script so nutzen wie oben beschrieben? Und wenn ja was stelle ich bei Force ip Update und check ip in Openwrt ein?

    Wäre für Hilfe echt dankbar!

    Mfg
    David

    • Hallo David,
      erstmal Entschuldigung für die leicht verspätete Antwort, hab dein Kommentar erst jetzt gesehen 😉

      So wie ich das sehe passt deine Situation genau auf meine Problemstellung, solltest du also so nutzen können. Was du als Force update-Interval bzw. als Check-Interval einstellst dürfte ziemlich egal sein (ich gehe mal davon aus, du meinst die Intervalle, be mir heißen die Optionen nämlich etwas anders).
      Ersteres bestimmt eben wie oft die IP-Adresse auf jeden Fall beim DDNS-Dienst „geupdated“ wird, auch wenn sie sich nicht verändert hat. Ich habe hier 72h eingestellt – ich glaube das ist hauptsächlich wichtig, wenn du einen DDNS-Dienst hast der dir dein Konto sperrt wenn er länger nichts mehr „gehört“ hat.

      Letzteres bestimmt wie häufig geprüft wird ob sich die IP-Adresse geändert hat. Hier sind 10 Min. ein ganz guter Wert.

      Ich hoffe ich konnte deine Fragen klären, und ich würde mich freuen wenn du berichtest ob es geklappt hat!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.