GnuDIP mit LANCOM-Routern (LCOS) Anleitung
Geschrieben von: Michael Loth   
Mittwoch, den 06. Mai 2009 um 00:00 Uhr

Dynamic-DNS-Client im LANCOM über GnuDIP

Programm "LANconfig" > Konfiguriere "Kommunikation" > Reiter "Allgemein" > Schaltfläche "Aktionstabelle"

Als Alternative zur Aktualisierung der DynDNS-Informationen über eine einfache HTTP-Anfrage nutzen manche Dienste das GnuDIP-Protokoll. Das GnuDIP-Protokoll basiert auf einem Challenge-Response Mechanismus:

  1. Der Client öffnet die Verbindung zum GnuDIP-Server.
  2. Der Server antwortet mit einem für die Sitzung berechneten Zufallswert.
  3. Der Client erzeugt aus dem Zufallswert und dem Password einen Hashwert und sendet diesen an den Server zurück.
  4. Der Server prüft diesen Hashwert und meldet das Ergebnis in Form einer Ziffer zurück an den Client.

Das GnuDIP-Protokoll kann die Nachrichten zwischen Client und Server entweder auf einer einfachen TCP-Verbindung austauschen (Standard-Port 3495) oder als CGI-Skript auf einem Internetserver laufen. Die Variante über einen HTTP-Aufruf des CGI-Skripts hat den Vorteil, dass auf dem Server kein weiterer Port für GnuDIP geöffnet werden muss, außerdem sichert HTTPS zusätzlich gegen passives Abhören und Offline-Wörterbuch-Attacken.

Die Anfragen an einen GnuDIP-Server werden aus dem LANCOM mit einer Aktion in der folgenden Form ausgelöst:

gnudip://<srv>[:port][/pfad]?<parameter>

  • <srv> – Die Adresse des GnuDIP-Servers.
  • [:port] – Die Angabe des Ports ist optional, falls nicht definiert, werden die Standardwerte verwendet (3495 für TCP, 80 bzw. 443 für HTTP/HTTPS).
  • [/pfad] – Die Pfadangabe wird nur bei HTTP/HTTPS benötigt, um den Speicherort des CGI-Skriptes zu definieren.

Die folgenden Parameter erweitern den Aufruf:

  • method=<tcp|http|https> – Wählt das Protokoll aus, das für die Übertragung zwischen GnuDIP-Server und -Client verwendet werden soll. Hier kann nur genau ein Protokoll gewählt werden.
  • user=<username> – Gibt den Benutzernamen für das Konto auf dem GnuDIP-Server an.
  • pass=<password> – Gibt das Kennwort für das Konto auf dem GnuDIP-Server an.
  • domn=<domain> – Gibt die DNS-Domäne an, in der sich der DynDNS-Eintrag befindet.
  • reqc=<0|1|2> – Definiert die Aktion, die mit der Anfrage ausgelöst werden soll. Mit der Aktion <0> wird eine dedizierte IP-Adresse an den Server übermittelt, die für das Update verwendet werden soll. Mit der Aktion <1> wird ein DynDNS-Eintrag gelöscht. Mit der Aktion <2> wird ein Update ausgelöst, es wird aber keine IP-Adresse an den Server übermittelt. Statt dessen verwendet der Server die IP-Adresse des GnuDIPClients für das Update.
  • addr=<address> – Gibt für eine Aktion mit dem Parameter <0> die IP-Adresse an, die für das Update desDynDNS-Eintrags verwendet werden soll. Fehlt diese Angabe bei einer <0>-Aktion, so wird die Anfrage wie eine <2>-Aktion behandelt.

Beim GnuDIP-Protokoll entspricht der Hostname, der registriert werden soll, dem an den Server übermittelten Benutzernamen. Wenn der Benutzername z. B. “myserver” lautet und die DNS-Domäne “mydomain.org”, dann wird der DNS-Name “myserver.mydomain.org” registriert.
Sie können z. B. mit der folgenden Aktion eine DynDNS-Aktualisierung bei einem DynDNS-Anbieter über das GnuDIP-Protokoll durchführen, sobald eine Verbindung aufgebaut wurde, und dabei die aktuelle IP-Adresse des LANCOMs (%a) übertragen:

gnudip://gnudip.loth.net?method=tcp&user=homeserver&domn=loth.net&pass=password&reqc=0&addr=%a

 

Um einen DynDNS-Eintrag zu löschen, wenn z. B. eine Verbindung getrennt wurde, verwenden Sie die folgende Aktion:

gnudip://gnudip.loth.net?method=tcp&user=homeserver&domn=loth.net&pass=password&reqc=1

Der GnuDIP-Server gibt als Ergebnis der Anfrage einen der folgenden Werte an den GnuDIP-Client zurück (vorausgesetzt, die Verbindung zwischen Server und Client konnte hergestellt werden):

  • 0 – Der DynDNS-Eintrag wurde erfolgreich aktualisiert. 0:Adresse – Der DynDNS-Eintrag wurde erfolgreich mit der angegebenen Adresse aktualisiert.
  • 1 – Die Authentifizierung am GnuDIP-Server war nicht erfolgreich.
  • 2 – Der DynDNS-Eintrag wurde erfolgreich gelöscht.

Diese Antworten können in den Aktionen des LANCOMs ausgewertet werden, um bei Bedarf weitere Aktionen einzuleiten.

Anmerkung:
Auszug aus dem LCOS-Referenzmanual (ftp://ftp.lancom.de/Documentation/Reference-Manual/LCOS-ADDtENDUM-760-DE.pdf), Seiten 44-45
Das original LCOS-Referenzmanual gibt als TCP-Port 3945 an - der Standart GnuDIP TCP-Port ist jedoch 3495.