DynDNS: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
K →per SSH: Schreibfehler korrigiert |
||
Zeile 29: | Zeile 29: | ||
Das Update der aktuellen Adresse erfolgt bequem per SSH mit einem [[Key-Login (OpenSSH)|SSH-Key]]. Sobald der Rechner mit dem passenden private-key eine Verbindung zum Server aufbaut, wird die IP-Adresse aktualisiert. | Das Update der aktuellen Adresse erfolgt bequem per SSH mit einem [[Key-Login (OpenSSH)|SSH-Key]]. Sobald der Rechner mit dem passenden private-key eine Verbindung zum Server aufbaut, wird die IP-Adresse aktualisiert. | ||
Dazu ist ein Key zu erstellen ( | Dazu ist ein Key zu erstellen (geschickterweise ohne Passwort) und der nötige public-key muss auf dem Server (von einem Admin) eingefügt werden. | ||
Das Update selbst führt man am einfachsten aus, im dem man den Befehl | Das Update selbst führt man am einfachsten aus, im dem man den Befehl |
Version vom 31. Juli 2008, 17:24 Uhr
Wir verwalten den Namensraum unserer Domains selbst auf unserem eigenen DNS-Server.
DNS-Server
Wie ein DNS-Server und das ganze DNS funktioniert, wäre jetzt etwas lang zum erklären, aber grundsätzlich ist es so:
- jeder hostname wie z.B. bla.dyn.schokokeks.org wird vom DNS-Server in eine IP-Adresse aufgelöst.
- Wenn man normalerweise im Internet einen hostname eintippt, wird der Eintrag vom DNS-Cache des Providers aber zwischengespeichert (i.d.R. 2 Tage).
DynDNS
Das Problem eines Computers, der mit einer dynamischen Adresse im Internet hängt teilt sich also in die beiden Bereiche: der zuständige DNS-Server muss wissen, wie die aktuelle IP des Rechners ist und diese in seinen DNS-Daten richtig eintragen. Und zweitens muss die Zeit, die die Daten im Zwischenspeicher bleiben drastisch reduziert werden.
Ein Server, der diese beiden Dienste anbietet, nennt man DynDNS.
Auf unserem Server bieten wir die Möglichkeit an, diesen Dienst zu nutzen. Dazu bekommt der Nutzer einen Zugang über den die jeweils aktuelle IP-Adresse zum Zeitpunkt der Wiedereinwahl aktualisiert werden kann. Aus diesen Daten wird dann ein Hostname im DNS-Server erstellt, der eine Gültigkeit von 120 Sekunden hat. Das bedeutet, nach spätestens 120 Sekunden muss jeder Nameserver im Internet wieder bei unserem Server nachfragen, ob die Adresse noch stimmt.
Dadurch erreicht man eine sehr hohe Verfügbarkeit.
Das Update
per SSH
Das Update der aktuellen Adresse erfolgt bequem per SSH mit einem SSH-Key. Sobald der Rechner mit dem passenden private-key eine Verbindung zum Server aufbaut, wird die IP-Adresse aktualisiert.
Dazu ist ein Key zu erstellen (geschickterweise ohne Passwort) und der nötige public-key muss auf dem Server (von einem Admin) eingefügt werden.
Das Update selbst führt man am einfachsten aus, im dem man den Befehl
ssh -q -T dyndns@schokokeks.org
bei jeder Einwahl ausführt.
Eventuell möchte man eine spezielle SSH-Key-Datei angeben, das macht man dann mit -i pfad/zur/id_rsa.
Unser DNS-Server meldet ein erfolgreiches Update mit der Meldung good ipadresse. Eventuell möchte man diese Meldung nicht sehen, sondern nur wenn das Update fehlgeschlagen ist. Dann kann man den Befehl noch um den Anhang | grep -v -e "good " erweitern.
per HTTPS
Es kamen immer wieder Anfragen, ob man unsere DynDNS-Einträge auch per https aktualisieren kann. Offenbar gibt es Hardware-Router, die mit dem Service von dnydns.org kompatibel sind und trotzdem einen frei wählbaren update-Server-Name erlauben.
Daher ist auch unser HTTP-update-Service mit dem von dyndns.org kompatibel.
Technisch funktioniert das so: Es wird die URL
- https://[user]:[password]@dyndns.schokokeks.org/nic/update?myip=[IP]
aufgerufen. Dyndns.org kennt noch mehr Parameter, die sind für uns aber unerheblich.
- [user] ist wie beim ssh-update der alias des Eintrages, also der Dateiname in ~dnsupdate/dyndns in dem die Daten liegen.
- [password] ist das Passwort, das wird in /home/webadmin/dyndns-update/userdb verwaltet (mit htpasswd)
- [IP] ist die aktuelle IP des Clients. Der Parameter ist optional, wenn er angegeben wird hat er Priorität gegenüber dem was der Webserver als REMOTE_ADDR sagt.
Aufgrund der Tatsache, dass viele Hardware-Router das Update nur über HTTP und nicht über HTTPS durchführen können, wurde unsere Richtlinie in diesem Punkt etwas gelockert. Das Update darf nun auf gleiche Art und Weise auch über HTTP gemacht werden. Sofern HTTPS vom benutzen Gerät unterstützt wird, ist dies natürlich zu bevorzugen!
DynDNS-Update mit einem DD-WRT-Router
Sofern man einen Router mit der Linux-Firmware DD-WRT hat, kann man diesen für das DynDNS-Update benutzen. Dazu muss folgendes eingetragen werden:
DDNS-Service: DynDNS.org Nutzername: USERNAME Passwort: PASSWORT Hostname: HOSTNAME --dyndns_server_name dyndns.schokokeks.org --dyndns_server_url /nic/update?
Der Hostname wird nur gebraucht um herauszufinden ob ein Update nötig ist. Beachten Sie, dass die zusätzlichen Parameter mit in das Feld für den Hostname eingetragen werden müssen!
DynDNS-Update mit einem Router von AVM
Besitzer eines Routers vom Hersteller AVM können den in die Firmware integrierten DynDNS-Client leider nicht benutzen. Wer keine gemoddete Firmware einspielen möchte, der kann mit folgendem Workaround seinen eigenen DynDNS-Client (ohne Verschlüsselung) auf dem Router betreiben.
Zunächst muss der Telnet-Server auf der Fritz!Box aktiviert werden, was sich z.B. durch das Drücken der Tastenfolge #96*7* an einem analogen Telefon bewerkstelligen lässt. Danach kann man sich mit einem Telnet-Client auf dem Router einloggen und folgende Zeilen eingeben:
cat >> /var/dyndns.sh << EOF #!/bin/sh while true; do wget -q http://benutzername:passwort@dyndns.schokokeks.org/ sleep 300 done EOF
Anschließend muss nur noch das soeben erstellte Skript gestartet werden. (Das Skript bleibt nur bis zum nächsten Neustart des Routers im Speicher.)