On Mon, 19 Dec 2005, Robert Tulke wrote:

> Hallo ich betreibe einen Server im Internet worauf der DNS Server Bind 
> läuft Nun möchte ich wie es einige freie Anbieter tun, DynDNS Service 
> selbst für mich privat betreiben leider hab ich bisher noch keine 
> tools/programme gefunden die das am besten im Zusammenhang mit Bind9 
> machen.

nsupdate macht das von Haus aus.

Das sieht hier so aus und wird vom ip-up.d aus aufgerufen:

dfw1:/etc/ppp/ip-up.d# cat dipsec

== cut ==
#!/bin/bash
/usr/local/bin/dns-secgw.sh | /usr/bin/nsupdate -k /etc/bind/dnsupdate.key -v
/bin/sleep 1
/etc/init.d/ipsec restart
== cut ==

== cut dns-secgw.sh ==
#!/bin/sh

AWK=/usr/bin/awk
GREP=/bin/grep
IFCONFIG=/sbin/ifconfig

myhostname=HOSTNAME.FQDN.NAME
myifc=DEININTERFACE-MIT-DER-IP (hier ppp0)
myip=`$IFCONFIG | $GREP -A 1 ^${myifc} | $GREP "inet addr:" | $AWK '{print $2}' 
| $AWK 'BEGIN{ FS=":" } { print $2 }'`

echo "update delete ${myhostname}"
echo ""
echo "update add ${myhostname} 1 A ${myip}"
echo ""
== cut ==

Dem Ziel-DNS ggü. wird mit dem Key authentifiziert.

Dein lokaler DNS "weiß" natürlich zumindest aufgrund einer forward-Zone, 
welchen Remote-DNS er ansprechen soll.

Das sieht dann in der named.conf.local hier so aus:
zone "DEINE.PRIVATE.ZONE.FÜR.ALLE.HOSTS" IN {
        type forward;
        forward only;
        forwarders {
                DEIN.EXTERNER.NAMESERVER.IP;
        };
};

Leider geht damit kein Reverse-Resolving, das nach außen sichtbar ist - 
aber immerhin. :-)

Aber zumindest können andere Hosts diese 
"DEINE.PRIVATE.ZONE.FÜR.ALLE.HOSTS" wie folgt abfragen:

dig @deindns DEINHOSTNAME.DEINE.PRIVATE.ZONE.FÜR.ALLE.HOSTS

oder über eine entsprechende forward-zone direkt resolven.

Noch schöner: Keiner außer Dir weiß welche Hosts in welcher Zone es in 
deinem LAN gibt.

Wenn Du dann noch deinem lokalen BIND mitteilst, daß er die max-ncache-ttl 
auf 1 sec stellt, dann hast Du IP-Wechselzeiten im einstelligen 
Sekundenbereich. Das bekommst Du mit dyndns und Konsorten nicht hin.


> Kennt jemand solche Programme? Oder gibt es irgendwie die 
> möglichkeit so etwas selbst zu betreiben?

Alles mit Bordmitteln. Keine 3rd-Party notwendig.


t++

Antwort per Email an