Wive-NG routers firmware (dsl/rtnl/mt).
Главная > Другое > Документация > DNS <=> WINS

DNS <=> WINS

Автообновление записей в DNS из WINS
(samba + pdnsd)


Продолжая цикл статей о настройке минимальных сервисов в локальной сети мне хотелось бы описать как можно подружить недотехнологии майкрософт со стандартными *nix сервисамию И первое что мы затронем это динамическое обновление записей в DNS для windows клиентов локальной сети.


И как обычно, зачем это нужно...? Наши «любимые» и «умные» пользователи почему-то имеют тягу к самовольном изменении имени компьютера рабочей группы и т.д. А нам хочется чтобы каждому компьютеру в сети соответствовала актуальная запись в DNS. Да и клиент настраивающий у себя на компьютере например web сервер не будет вынужден звонить вам и просить к примеру прописать его на вашем сервере как VASYA.вашдо.мен, ему будет достаточно сменить имя компьютера и перезагрузиться и запись будет автоматически добавлена в DNS. Более того, за Windows замечено довольно странное поведение, а странность в том, что даже если имя машины было отрезолвлено через WINS это чудо (по крайней мере WindowsXP) зачем-то спрашивает тоже самое у DNS.. Естественно DNS не найдя у себя в локальных записях такой машины, пошлёт запрос к вышестоящему DNS и будет ждать ответа, отсюда дополнительная задержка. И если у вас медленное наземное соединение по которому «ходят» DNS запросы к вышестоящему серверу, это может внести некоторый дискомфорт в работу сети. Более того, лишний запрос DNS наружу, это автоматом лишний, хоть и не большой, трафик.


И так цель есть (обеспечить обновление записей DNS из WINS) приступим к реализации. Для этого нам понадобиться уже настроенный ранее WINS сервер на основе SAMBA и pdnsd сервер...


Кратенько Расскажу как Все это будет работать. В конфигурации самба есть такая прекрасная опция wins hook = которая задает путь к исполняемому файлу/скрипту который будет вызван при помещении новой записи в базу WINS сервера, а также при продление «аренды имени» у WINS. Данная вункция экспортирует все необходимые значения которые нам необходимы для создания записи в DNS. А у pdnsd есть прекрасная утилитка pdnsd-ctl и существует она именно для динамического управления записями DNS, т.е. нам остается только связать 2 эти замечательные вещи между собой простеньким скриптом!


Текст скрипта привожу ниже:


#!/bin/sh
#Данный скрипт предназначен для динамического обновления записей DNS из WINS
#Для работы тредуется корректно настроенный и работающий wins сервер на базе самба
#в конфигурацию которого необходимо добавить wins hook = <полный путь к этому скрипту>
#также необходим корректно настроенный pdnsd (DNS сервер)
#Иправления, пожелания и предложения шлите на sfstudio@mail.ru
#Наш сайт http://sadnet.info... Маначкин Евгений Романович


#Ваш домен:
DOMAIN=.sadnet.lo
#Путь к pdnsd-ctl
PDNS=/opt/pdnsd/sbin/pdnsd-ctl
#Путь к логу
LOG=/var/log/smb_dns_up.log
#§итаем входные данные
OP=$1
NAME=$2
TYPE=$3
WINS_TTL=$4
shift 4
IP_ADDRS="$@"
DNAME=("$NAME$DOMAIN")
DATE=`date`


#в зависимости от переменной $OP либо добавляем либо обновляем запись
#с ttl переданным wins


if [ "$OP" = "add" ]; then
echo $DATE :добавляем $IP_ADDRS $DNAME >> $LOG
$PDNS add a $IP_ADDRS $DNAME $WINS_TTL > /dev/null
fi


if [ "$OP" = "refresh" ]; then
echo $DATE :обновляем $IP_ADDRS $DNAME >> $LOG
$PDNS record $DNAME delete > /dev/null
$PDNS add a $IP_ADDRS $DNAME $WINS_TTL > /dev/null
fi




Вот такой вот маленький скрипт. Собственно создаем файл к примеру с именем smb_dns_update, делаем его исполняемым. Далее правим в нем пути к файлам (зависит от вашей системы). Правим домен на ваш. Добавляем в /etc/samba/smb.conf в секцию globa строку wins hook = <полный путь к этому скрипту>, редактируем стартовый скрипт pdnsd добавив ключ -s в запуске демона, что позволит исользовать нам pdnsd-ctl. перезапускам самбу (service smb restart). Все, в логе при появлении новых машин вы смодете видеть нчто подобное:


Пнд Ноя 27 20:57:20 OMST 2006 :добавляем 10.7.0.70 PAVEL-.sadnet.lo


после этого nlookup pavel-.sadnet.lo должен возвращать адрес 10.7.0.70.


Вот и все дела. Далее разговор у нас пойдет о proftpd и на подходе настройка apache.




Маначкин Еагений Романович
28.11.2006


Rambler's Top100
Locations of visitors to this page