Avec bind, si tu autorise la mise-à-jour des records via nsupdate, tu peux faire un script maison de ce genre (lancé par un cron job régulièrement) :
#!/bin/sh
DUF='/tmp/rdns6.dnsupdate'
DUF2='/tmp/rdns6.dnsupdate2'
DB='/opt/bolemo/var/rdns6.db'
DBT='/tmp/rdns6.dbtmp'
touch $DB
rm -f $DBT
:> $DUF
:> $DUF2
#echo 'debug' >> $DUF
#echo 'debug' >> $DUF2
echo 'server ns.tondomaine.com' >> $DUF
echo 'server ns1.tondomaine.com' >> $DUF2
ip -6 neigh | awk '
BEGIN {
while ((getline dbl < "'$DB'") > 0) l[dbl]=1
close ("'$DB'")
chg=0
}
index($1,"prefixeipv6")==1 {if (l[$1]==1) {l[$1]=2} else {l[$1]=3}}
END {
for (ip in l) {
"ipv6calc -qa " ip | getline arpa
"echo \""ip"\" | md5sum - | cut -f1 -d\" \"" | getline ptr
if (l[ip]==1) {
printf ("update delete %s PTR\n",arpa) >> "'$DUF'"
printf ("update delete %s.rev.tondomaine.com AAAA\n",ptr) >> "'$DUF2'"
printf ("DELETING %s %s\n",ptr,arpa)
chg=1
continue
}
if (l[ip]==3) {
printf ("update add %s 120 PTR %s.rev.tondomaine.com\n",arpa, ptr) >> "'$DUF'"
printf ("update add %s.rev.tondomaine.com 120 AAAA %s\n",ptr,ip) >> "'$DUF2'"
printf ("ADDING %s %s\n",ptr,arpa)
chg=1
} else {
printf ("KEEPING %s %s\n",ptr,arpa)
}
print ip >> "'$DBT'"
}
if (chg==1) system("touch '$DBT'")
}
'
echo 'send' >> $DUF
echo 'send' >> $DUF2
if [ -e "$DBT" ]; then
cat $DUF
nsupdate $DUF
cat $DUF2
nsupdate $DUF2
[ -s $DBT ] && mv -f $DBT $DB || rm -f $DBT
fi
rm -rf $DUF
rm -rf $DUF2