Это старая версия документа.
Содержание
Введение
Иногда необходимо иметь доступ к своей машине, или машине клиента, которые имеют динамический IP адрес. Для этих целей существует масса сервисов, но бесплатных становится все меньше и меньше. Вот для этого и предназначена данная статья. Если у вас есть под рукой сервер (VDS, VPS или дедик), из которого можно сделать ДНС сервер, то с помощью данной статьи вы сможете сделать для себя такой сервис и пользоваться им как вам удобно и сколько вам хочется. В ходе создания сервиса было перерыто множество страниц в интернете, зачастую противоречащих друг другу. Поэтому, ссылки на исходники указаны не будут. Это статья как бы компиляция всех сведений, нарытых в сети.
Начало работы
Для начала работы по созданию сервиса предполагается, что у вас установлены и настроен на сервере BIND и пакет dnsutils. Если обнаружилось вдруг, что у вас этого нет, почитайте, что написано в этой статье. Для простоты сразу договоримся, что оперировать будем доменом dyndns.my и поддоменом с динамическим IP dhost. Полный адрес получится dhost.dyndns.my. В домене должна быть запись A ns с IP вашего сервера. Или не ns, тут кому как нравится, но в этом примере дело обстоит именно так. Ну и для полной ясности, и сервер, и клиент - компы с Ubuntu. Версия уже принципиального значения не имеет.
Он сказал, поехали!
Настройка клиентской части
Создадим отдельный каталог в /etc.
sudo mkdir /etc/ddns/
Перейдем в него.
cd /etc/ddns/
Генерируем пару ключей для обмена информацией между клиентом и сервером.
sudo dnssec-keygen -b 512 -a HMAC-MD5 -v 2 -n HOST dyndns.my
В результате этой операции в каталоге появляются два файлика - Kdyndns.my.+157+48025.key и Kdyndns.my.+157+48025.private. Из первого файла нам будет необходим только набор символов после «157 ». Именно после пробела начинается тело ключа. Создаем скрипт обновления доменных зон.
sudo nano ddns.sh
Вставляем туда текст.
#!/bin/bash TTL=3600 SERVER=ns.dyndns.my HOSTNAME=dhost.dyndns.my ZONE=dyndns.my KEYFILE=Kdyndns.my.+157+48025.private new_ip_address=`curl http://dyndns.my/ip.php` #Этот файлик создадим позднее на сервере! cd /etc/ddns nsupdate -v -k $KEYFILE << EOF server $SERVER zone $ZONE update delete $HOSTNAME A update add $HOSTNAME $TTL A $new_ip_address send EOF