Настройка

Для настройки DDNS нам потребуется домен делегированный домен на Cloudflare и созданный API ключ, позволяющий редактировать записи домена.

Теперь установим необходимые пакеты на роутер, перейдем в System -> Software. Жмем на Update list…, и ставим 2 пакета

  • ddns-scripts-cloudflare
  • luci-app-ddns

Разлогинимся из GUI нашего роутера и заходим снова.

Переходим Services -> Dynamic DNS и увидим что-то подобное

У нас уже будет 2 готовых профиля, выберем myddns_ipv4, и нажмем Edit

Рассмотрим, что у нас тут настраивается

Enabled - включает и отключает автообновление IP адреса нашего домена

Lookup Hostname -указываем тот домен, с которым будет сравниваться IP адрес вашего WAN порта и реальное значение в DNS записи

IP address version - какую версию протокола IP будет использовать скрипт

DDNS Service provider - выбираем cloudflare.com-v4, для v6 на момент создания статьи еще нет функционала

Domain - тут указываем DNS запись, которую скрипт будет менять

Username - для Cloudflare ставим Bearer, имя пользователя изменяется в зависимости от DNS провайдера. Подробности API запроса уточняйте в документации выбранного DNS провайдера.

Password - в это поле вставляем свой секретны API ключ, которы нужно было сгенерировать в самом начале

Обычно этих данных достаточно, но что если мы хотим менять IP адрес не нашего корневого домена, а поддомена? Тогда нужно настройки привести к такому виду

Далее сохраняем и применяем изменения, можно для уверенности у домена указать не правильный IP и перезапустить службу.

Если обновление DNS записи не происходит, то можно включить логирование и посмотреть, где у нас есть ошибка.

Что делать, если нужно изменить IP у записи, которая находится за Cloudflare Proxy?

Если сравнивать с предыдущей настройкой, то в нашем случае обновление записи не будет работать. Потому как целевой домен который нужно “лукапить”, будет отображать IP адрес именно Cloudflaer’a.

Но для этого есть решение, в Cloudflare создайте новую A запись, например с именем check.example.com, задайте ей не правильный IP и не включайте проксирование.

Затем удаляем запись для проксируемого домена, то есть в нашем примере A-запись example.com. Создаем еще раз новую запись, но уже с типом CNAME, а в после Target, указываем наш созданный домен check.example.com, и на этой CNAME записи включаем проксирование.

Теперь настроим наш DDNS на роутере и в полях Lookup Hostname и Domain указываем значение check.example.com, сохраняем и перезапускаем службу.

Теперь мы меняем одним запросом, одну DNS запись, а example.com, просто линкуется, с записи check.example.com, не раскрывая настоящего IP адреса. Да, это костыль, но мы делаем решения не производственного уровня. Для более универсального метода, я рекомендую написать свой скрипт на Python, либо на Go.

Анонсы и еще больше информации в Telegram-канале