Динамический DNS

Дата: 14.02.2009

Рубрики: *NIX, Technology, Интернет

Что такое динамический DNS думаю знают все. Для тех кто не знает напомню, провайдер при подключении к интернет выделяет компьютеру случайный IP-адрес. Дабы не платить провайдеру денег за постоянный IP придумали динамический DNS, программа-клиент на компьютере пользователя отслеживает какой IP выдал провайдер и автоматически прописывает его в DNS, тем самым делая возможным обращение по имени. Зачем это нужно? Бывают разные применения, например, на домашнем компьютере поднят web-сервер и нужно чтобы сайт расположенный на нем посещали люди.

Существует достаточно много сервисов, предоставляющий подобный функционал, однако, если нужно реализовать подобное на собственном домене, скорее всего эти сервисы попросят заплатить денег.

Я уже писал о том как можно реализовать динамический DNS если у Вас есть сервер с ISPmanager, однако решение описанное в той заметке очень уж специфично для моих личных обстоятельств. Сейчас мои сайты благополочно переехали на выделенный сервер, где есть запущенный Apache, а значит ISPmanager доступен через браузер, соответственно вызывать mgrctl из командной строки у меня больше надобности нет.

Сегодня я перенес свой DynDNS туда же на выделенный сервер, набросав вот такой скрипт.

#!/bin/sh
echo Content-type: text/plain
echo
IP=`/usr/bin/host sub.dom.ru ns1.dom.ru |/usr/bin/awk '/sub/ { print $4 }'`
CMD='/usr/bin/fetch -q -o /dev/null'
POST='http://127.0.0.1/manager/ispmgr?\
authinfo=dns:123&func=domain.sublist.edit&\
name=sub&sdtype=A&sok=yes&plid=dom.ru&'
echo -n 'Your IP is '
echo -n $REMOTE_ADDR
if [ $IP != $REMOTE_ADDR ]; then
echo -n '. Updating... '
`$CMD $POST'elid=sub+A++'$IP'&addr='$REMOTE_ADDR'`
echo Done.
else
echo '. Noting to do.'
fi

Данный скрипт можно положить куда-нибудь в cgi-bin одного из сайтов на сервере и вызвать его из браузера. При этом скрипт спросит у DNS сервера текущий IP для домена третьего уровня sub.dom.ru, авторизуется в ISPmanager на сервере пользователем dns с паролем 123 и установит IP для sub.dom.ru тем, с которого была вызвана страничка.

Из интересного:

Связанные записи

Метки: , ,

2 комментария на запись "Динамический DNS"

ls
18 февраля 2009

Отлично, только лучше для узнавания element id не host использовать, а grep'нуть файл зоны (если AP_DOC_ROOT при сборке апачевого suexec позволяет это делать), надежнее, или даже более true way спросить у манагера записи зоны.

19 февраля 2009

В моем случае host спрашивает у named'а на сервере с манагером, как мне показалось это наиболее простое решение. Да, предложенные тобой варианты тоже возможны.

Оставить комментарий

Имя:
E-mail:
Сайт: