Dynamic DNS: Difference between revisions
From Elch-Wiki
Jump to navigationJump to search
No edit summary |
No edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
= Dynamic DNS auf trash.net = | = Dynamic DNS auf trash.net = | ||
* | * Voraussetzung ist ein eigenes Zonenfile für djbdns oder BIND | ||
Voraussetzung ist ein eigenes Zonenfile für djbdns oder BIND | * Abhängig vom verwendeten URI muss das Zonefile entweder für www (Aufruf über eigenen Domain-Namen) oder für den eigenen User (z.B. romanf) schreibbar sein | ||
www | |||
Mein Script für die Zone von djbdns ist sehr einfach: | * Mein Script für die Zone von djbdns ist sehr einfach: | ||
<pre> | <pre> | ||
#!/bin/sh | #!/bin/sh | ||
Line 23: | Line 22: | ||
</pre> | </pre> | ||
Für eine signierte BIND Zone so: | * Für eine signierte BIND Zone so: | ||
<pre> | <pre> | ||
#!/bin/sh | #!/bin/sh | ||
Line 42: | Line 41: | ||
</pre> | </pre> | ||
Abgelegt ist dieses Script als public_html/cgi-bin/update-dns.cgi | * Abgelegt ist dieses Script als ~/public_html/cgi-bin/update-dns.cgi | ||
Dort liegt auch noch ein AccessFile für die Zugangskontrolle: | * Dort liegt auch noch ein AccessFile (.htaccess) für die Zugangskontrolle: | ||
<pre> | <pre> | ||
AuthType Basic | AuthType Basic | ||
Line 51: | Line 50: | ||
</pre> | </pre> | ||
Wo das File | * Wo das File ~/html_auth/htpasswd den Account dnsupdate enthält (anlegen/verwalten mit "htpasswd") | ||
Aufgerufen wird das CGI | * Aufgerufen wird das CGI mit einem Cronjob: <pre>33 * * * * /usr/bin/curl --ipv4 -s -o /dev/null --user dnsupdate:20dns+update11 http://www.trash.net/~romanf/cgi-bin/update-dns.cgi</pre> | ||
/usr/bin/curl -s -o /dev/null --user dnsupdate: | |||
http://www. | |||
Latest revision as of 16:51, 14 May 2011
Dynamic DNS auf trash.net
- Voraussetzung ist ein eigenes Zonenfile für djbdns oder BIND
- Abhängig vom verwendeten URI muss das Zonefile entweder für www (Aufruf über eigenen Domain-Namen) oder für den eigenen User (z.B. romanf) schreibbar sein
- Mein Script für die Zone von djbdns ist sehr einfach:
#!/bin/sh echo "Content-type: text/plain" echo "" ZONEFILE=/etc/djbdns/tinydns/root/datafiles/truniger.ch FOUND=`grep "^+privat.truniger.ch:$REMOTE_ADDR:" $ZONEFILE` if [ -n "$FOUND" ] ; then exit fi ed -s $ZONEFILE <<EOF >/dev/null /^+privat.truniger.ch:/s/^.*$/+privat.truniger.ch:$REMOTE_ADDR:300 w q EOF mailx -s "New IP Adress $REMOTE_ADDR" truniger@trash.net </dev/null
- Für eine signierte BIND Zone so:
#!/bin/sh echo "Content-type: text/plain" echo "" ZONEFILE=/var/named/truniger.ch/zone.db FOUND=`grep "^privat\.truniger\.ch\..*${REMOTE_ADDR}$" $ZONEFILE` if [ -n "$FOUND" ] ; then exit fi ed -s $ZONEFILE <<EOF >/dev/null /^privat.truniger.ch..*IN.*A/s/^.*$/privat.truniger.ch. 300 IN A $REMOTE_ADDR w q EOF mailx -s "New IP Adress $REMOTE_ADDR" truniger@trash.net </dev/null
- Abgelegt ist dieses Script als ~/public_html/cgi-bin/update-dns.cgi
- Dort liegt auch noch ein AccessFile (.htaccess) für die Zugangskontrolle:
AuthType Basic AuthName "Privat Area" AuthUserFile /home/truniger/html_auth/htpasswd Require user dnsupdate
- Wo das File ~/html_auth/htpasswd den Account dnsupdate enthält (anlegen/verwalten mit "htpasswd")
- Aufgerufen wird das CGI mit einem Cronjob:
33 * * * * /usr/bin/curl --ipv4 -s -o /dev/null --user dnsupdate:20dns+update11 http://www.trash.net/~romanf/cgi-bin/update-dns.cgi