Сначала генерим ключик для общения клиента с ДНС сервером
/usr/sbin/dnssec-keygen -a HMAC-MD5 -b 512 -n HOST h.olegk.ruПотом полученный ключ прописываем в настройках ДНС-сервера
key "h.olegk.ru" {
algorithm hmac-md5;
secret "....";
};
zone "olegk.ru" IN {
type master;
file "dynupdated/olegk.ru";
allow-update { key h.olegk.ru; };
};
И на клиенте (на домашнем сервере) прописываем простейший скрипт, который тупо запускается через некоторые интервалы времени и перезаписывает A-запись домашнего сервака в домене (я поставил каждые 2 минуты - нагрузка пока позволяет :)).
#!/bin/sh
IFACE="eth2"
TTL=60
SERVER=ns1.olegk.ru
HOSTNAME=h.olegk.ru
ZONE=olegk.ru
KEYFILE=/etc/namedb/Kh.olegk.ru.+157+63926.private
new_ip_address=`/sbin/ifconfig $IFACE | grep "inet addr:" | awk '{print $2}' | awk -F ":" '{print $2}'`
new_ip_address=${new_ip_address/ /}
nsupdate -v -k $KEYFILE << EOF
server $SERVER
zone $ZONE
update delete $HOSTNAME A
update add $HOSTNAME $TTL A $new_ip_address
send
EOF
До кучи настроил потом еще и запись dhcp-сервером всех узлов домашней сетки в отдельную DNS-зону, чтобы можно было не запоминать внутренний IP какого-нибудь домашнего второстепенного сервака (например того же ноута с убунтой, который заливает мне фотки в пикасу или мониторит квартиру камерой). Для этого потребовалось всего лишь добавить в настройки dhcp-сервера
ddns-update-style interim;
ignore client-updates;
update-static-leases true;
key "h.olegk.ru" {
algorithm hmac-md5;
secret "...";
}
zone net.olegk.ru. {
primary ns1.olegk.ru;
key h.olegk.ru;
}
Вот так всё просто. Красота!
P.S.: как в блоггер вставлять куски кода, чтобы было красиво???
Комментариев нет:
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.