Update DNS via script
http://www.ops.ietf.org/dns/dynupd/secure-ddns-howto.html
DNS with SQL Backend
http://www.powerdns.com/content/home-powerdns.aspx
http://packages.ubuntu.com/maverick/pdns-server
Using dynamic DNS / nsupdate
CLI tool: "nsupdate"
Secure DNS strongly advised!
Additional hint from the austrian LUGA mailing list (german):
Wenn man das austomatische Eintragen in die Bind Zonen einmal aktiviert hat, kann/will man die Zonefiles auch nicht mehr einfach so editieren. Dazu gibt es die Kommandos freeze/thaw im rndc ...
lmgtfy: http://www.ops.ietf.org/dns/dynupd/secure-ddns-howto.html http://dag.wieers.com/howto/bits/bind-ddns.php Jedes der dort gezeigten Scripts kannst du für deine Zwecke anpassen. Oder allgemeiner: http://www.google.ch/search?q=bind+dynamic+update
Wildcard DNS
Nice workaround for a single server: Wildcard DNS
Example zone excerpt:
;wildcard * A 213.185.164.158
Note: using a wildcard combined with a CNAME record does not work (bind9)
Perl Module
from the german LUGA mailinglist:
Alternativ und viel eleganter geht es mittels Perl und dem Net::DNS Paket. Das sähe dann grob in etwa so aus: my $host = `/bin/hostname`; my $domain = "dom.ain"; my $keyname="YYYY"; my $key="XXXX"; my $update = Net::DNS::Update->new($domain); $update->push(pre => nxrrset("${host}.${domain}. A")); $update->push(update => rr_add("${host}.${domain} 3600 A $inip")); $update->sign_tsig($keyname, $key); my $res = Net::DNS::Resolver->new; $res->send($update); Voraussetzung ist, dass du einen Key für die zu verändernde Zone erstellst, den du auch auf dem aufrufenden Host installierst. Damit kann der aufrufende Host dann halt in der einen Zone alles machen. Aber immer noch besser, als wenn der Webserver-User Schreibrechte auf alle Zonenfiles kriegt.
Pull Method
A script or web service writes new DNS entries into a file or directory. The DNS server periodically pulls the changes from that source and implements it.