Блог Ходакова

#golang #macos #linux #overwatch и стопицот других тегов
Dynamic DNS у Hurricane Electric

Небольшая заметка на тему того, как настраивать Dynamic DNS у Hurrican Electric. Постоянно забываю, а у них на сайте это посмотреть неочевидно (надо разлогиниться, чтобы увидеть инструкцию). Прелесть HE заключается в том, что они предоставляют сервис динамического DNS бесплатно — я им пользуюсь вот уже 4 года для различных целей, и он меня не подводил.

Для начала, конечно, нужно делегировать домен или поддомен на NS-сервера HE — ns1.he.net, ns2.he.net (есть ещё ns3, ns4 и ns5). Делегация занимает плюс-минус 72 часа, и после неё можно приступать к настройке.

Последовательность действий такая:

  • Входим в панель редактирования домена (карандашик у свежедобавленного домена в списке)

Список доменов

  • Добавляем новую A-запись, которую хотим сделать динамической, нажатием кнопки «New A». Нас встретит диалоговое окно, в котором нужно ввести имя поддомена и нажать галочку «Enable entry for dynamic dns». По нажатию этой галочки подставляется автоматически текущий IP адрес, с которого производится работа с веб-интерфейсом. После этого нажимаем «Submit»

IP-адрес тут указан неправильный (ага, стану я вам палить свой домашний айпишник…)

  • В списке DNS-записей теперь существует наша новая запись с динамическим IP. Строка с ней окрашена в бирюзовый цвет. У неё есть кнопка обновления — она нам понадобится для генерации ключа, с помощью которого мы будем автоматически обновлять запись.

Возможно, это не бирюзовый цвет, но мне он кажется таковым

  • В появившемся окне нужно нажать на кнопку «Generate a key». Ключ можно ввести самостоятельно, или сгенерировать внешними приложениями — я рекомендую или пользоваться встроенным генератором HE, или сгенерировать ключ в 1Password. Ключ следует воспринимать, как пароль, причём очень важный — знающий его человек может перенаправить ваш поддомен на любой IP-адрес!

Окно создания ключа для DDNS-записи

  • Ключ записан (и спрятан), теперь можно настраивать «клиент» динамического обновления. «Клиент» в кавычках — потому что никакого специального ПО устанавливать не нужно, данный DDNS обновляется с помощью curl. Кроме того, HE говорит, что их система совместима с ddclient или другим ПО, совместимым с DynDns, но я это не проверял.

Схема URL для обновления IP такая: http://[доменное имя]:[сгенерированный ключ]@dyn.dns.he.net/nic/update?hostname=[доменное имя]. Запрос curl на сформированный таким образом адрес даст один из ответов:

  • badauth — ошибка авторизации (неправильное имя или пароль)
  • nochg — для данной записи IP-адрес не изменился
  • good <новый IP-адрес> — IP-адрес обновлён

Запросы к HE разрешены не чаще, чем раз в час. Это не техническое, а правовое ограничение: за спам их системы раз в 5-10 минут аккаунт могут заблокировать.

После получения и проверки возможности обновления IP-адреса можно настроить ddclient, в кронтаб положить обновление раз в час или каким-либо образом триггерить обновление при начале соединения с интернетом (во многих роутерах поддержка динамического DNS есть). Я обновление настроил на роутере, вы же в данном вопросе вольны решать сами, каким образом и как часто обновляться.

← TFTP в macOS Как жить без «Гугла» →