Dynamic DNS: FreeBSD, www.dyndns.com и updatedd
Бывают ситуации, когда сервер не имеет статического 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-адреса и всегда подключаться к серверу по его имени.
См. также
- Свой сервер с динамическим IP-Адресом (www.no-ip.com и /usr/ports/dns/noip)