Dynamic DNS: FreeBSD, www.dyndns.com и updatedd

Материал из wiki.lissyara.su
Перейти к: навигация, поиск

Бывают ситуации, когда сервер не имеет статического IP-адреса (неважно по какой причине). Ситуация, когда сервер уже не откликается по ранее известному IP, мягко говоря неприятна.

В качестве сервиса привязки динамического адреса к какому либо имени хоста выбрал первый попавшийся, которым оказался www.dyndns.com.

Регистрация

  • Регистрируемся на www.dyndns.com, переходим в раздел «Account», выбираем «Add Host Services».
  • В открывшейся странице выбираем из списка понравившийся домен, придумываем и вписываем Hostname.
  • Устанавливаем Service Type — Host with IP address (тип хоста — с IP адресом).
  • Поле «IP Address» для простоты заполним текущим значением IP адреса.
  • Жмем кнопку «Create Host» и видим как в «Host Services» появилась созданная нами запись.
  • На этом пока общение с www.dyndns.com заканчиваем и переходим к установке клиента.

Установка updatedd

Теперь нам нужен некий скрипт, который будет периодически посещать www.dyndns.com под нашими логин/паролем и указывать этому сервису адрес какого хоста следует обновить.

Непродолжительное ковыряние в портах навело на /usr/ports/dns/updatedd/, или как сам он о себе заявляет — «Dynamic DNS Update Client supporting multiple services». Устанавливаем как обычно:

cd /usr/ports/dns/updatedd/ && make install clean

В результате появился файл конфигурации /usr/local/etc/updatedd-wrapper.conf.

Настройка updatedd

По смелой мысли изобретателей, этот клиент поддерживает кучу сервисов

  • changeip.com
  • dyndns.org
  • eurodyndns.org
  • ovh.com,
  • no-ip.org
  • ods.org
  • hn.org
  • regfish.com
  • tzo.com

Для конфигурирования достаточно задать логин:пароль и hostname в соответствующих секциях. Пример для dyndns:

login {
        changeip_1      = "user:pass";
        dyndns_1        = "nash_login:nash_parol";
        eurodyndns_1    = "user:pass";
        hn_1            = "user:pass";
        noip_1          = "user:pass";
        ods_1           = "user:pass";
        ovh_1           = "user:pass";
        regfish_1       = "TOKEN=token";
        regfish_2       = "STD=user:pass";
        tzo_1           = "user:pass";
};

Далее ищем секцию и прописываем в неё наш свежепридуманный и зарегистрированный в www.dyndns.org домен:

dyndns(disabled) {
        login           = dyndns_1;
        hostnames       = "domen.dyndns.org";
        ip-addr         = ipv4:`/usr/local/share/updatedd/ipserv.pl dyndns`;
        use-syslog      = yes;
        options         = "--with-backmx --wildcard on";
#       force;
}

Меняем в этой секции disabled на active, разрешая тем самым ее работу. В конфигурационном файле буквально пяток опций и каких либо пояснений, как кажется, не требуют.

Запуск и проверка результата

Запускаем /usr/local/bin/updatedd-wrapper и через минуту идем на www.dyndns.com, смотрим Host Services. В столбце «Last Updated» появилась дата и время последнего обновления записи, а в /var/log/messages при этом видим запись

updatedd: domen.dyndns.org: Update good and successful, IP updated

В случае неверного логина/пароля:

updatedd: domen.dyndns.org: Bad authorization (username or password)

Если с момента последнего обновления текущий IP не изменился,то в /var/log/messages будет

updatedd: domen.dyndns.org: No changes, update considered abusive

Остаётся только засунуть в cron эту процедуру обновления IP-адреса и всегда подключаться к серверу по его имени.

См. также