DynDNS: Unterschied zwischen den Versionen

Aus schokokeks.org Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
(Umlaute korrigiert)
Zeile 3: Zeile 3:
==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:
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.
: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).  
 
:Wenn man normalerweise im Internet einen hostname eintippt, wird der Eintrag vom DNS-Cache des Providers aber zwischengespeichert (i.d.R. 2 Tage).  


==DynDNS==
==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.
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.
Ein Server, der diese beiden Dienste anbietet, nennt man DynDNS.


Auf unserem Server bieten wir die M�glichkeit an, diesen Dienst zu nutzen.
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.
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.
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.
Dadurch erreicht man eine sehr hohe Verfügbarkeit.


==Das Update==
==Das Update==
Zeile 27: Zeile 24:
Das Update der aktuellen Adresse erfolgt bequem per SSH mit einem [[SSH-Login mit Key|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 [[SSH-Login mit Key|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) in der Datei  
Dazu ist ein Key zu erstellen (geschickterweise ohne Passwort) und der nötige public-key muss auf dem Server (von einem Admin) in der Datei  


:<pre>~dnsupdate/.ssh/authorized_keys</pre>
:<pre>~dnsupdate/.ssh/authorized_keys</pre>


eingef�gt werden.
eingefügt werden.
Damit automatisch das Update ausgel�st wird, sobald eine Verbindung aufgebaut wurde, m�ssen vor dem Public-Key folgende Daten stehen (alles in einer Zeile und alles vor dem Rest):
Damit automatisch das Update ausgelöst wird, sobald eine Verbindung aufgebaut wurde, müssen vor dem Public-Key folgende Daten stehen (alles in einer Zeile und alles vor dem Rest):


:<pre>command="/usr/local/bin/keks-dnsupdate-dns-update-dyndns  user_alias",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty</pre>
:<pre>command="/usr/local/bin/keks-dnsupdate-dns-update-dyndns  user_alias",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty</pre>


Der Name ''user_alias'' ist der Name der Datei in ''~dnsupdate/dyndns/'' die zu dem DynDNS-Account geh�rt. In dieser Datei k�nnen beliebige Eintr�ge f�r den DNS-Server stehen. Die Variable [IP] wird dabei durch die aktuelle IP ersetzt. Die Datei ''~dnsupdate/dyndns/data'' enth�lt die aktuellen IP-Adressen f�r die einzelnen aliase.
Der Name ''user_alias'' ist der Name der Datei in ''~dnsupdate/dyndns/'' die zu dem DynDNS-Account gehört. In dieser Datei können beliebige Einträge für den DNS-Server stehen. Die Variable [IP] wird dabei durch die aktuelle IP ersetzt. Die Datei ''~dnsupdate/dyndns/data'' enthält die aktuellen IP-Adressen für die einzelnen aliase.


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  
:<pre>ssh -q -T dnsupdate@schokokeks.org</pre>
:<pre>ssh -q -T dnsupdate@schokokeks.org</pre>
bei jeder Einwahl ausf�hrt.
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'''.
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 ''done.''. 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 "done."'' erweitern.
Unser DNS-Server meldet ein erfolgreiches Update mit der Meldung ''done.''. 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 "done."'' erweitern.


===per HTTPS===
===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.
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.
Daher ist auch unser HTTP-update-Service mit dem von dyndns.org kompatibel.
Zeile 55: Zeile 52:
Es wird die URL  
Es wird die URL  
:<nowiki>https:</nowiki>//'''[user]''':'''[password]'''@dyndns.schokokeks.org/nic/update?myip='''[IP]'''
:<nowiki>https:</nowiki>//'''[user]''':'''[password]'''@dyndns.schokokeks.org/nic/update?myip='''[IP]'''
aufgerufen. Dyndns.org kennt noch mehr Parameter, die sind f�r uns aber unerheblich.
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 ~dsupdate/dyndns in dem die Daten liegen.
:'''[user]''' ist wie beim ssh-update der alias des Eintrages, also der Dateiname in ~dsupdate/dyndns in dem die Daten liegen.
:'''[password]''' ist das Passwort, das wird in /home/webadmin/dyndns-update/userdb verwaltet (mit htpasswd)
:'''[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.
:'''[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.

Version vom 11. März 2006, 14:12 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) in der Datei

~dnsupdate/.ssh/authorized_keys

eingefügt werden. Damit automatisch das Update ausgelöst wird, sobald eine Verbindung aufgebaut wurde, müssen vor dem Public-Key folgende Daten stehen (alles in einer Zeile und alles vor dem Rest):

command="/usr/local/bin/keks-dnsupdate-dns-update-dyndns  user_alias",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty

Der Name user_alias ist der Name der Datei in ~dnsupdate/dyndns/ die zu dem DynDNS-Account gehört. In dieser Datei können beliebige Einträge für den DNS-Server stehen. Die Variable [IP] wird dabei durch die aktuelle IP ersetzt. Die Datei ~dnsupdate/dyndns/data enthält die aktuellen IP-Adressen für die einzelnen aliase.

Das Update selbst fährt man am einfachsten aus, im dem man den Befehl

ssh -q -T dnsupdate@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 done.. 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 "done." 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 ~dsupdate/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.