Dynamic DNS
From Elch-Wiki
Jump to navigationJump to search
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