Динамический DNS: зачем нужен и когда заменяет белый IP

Задача, которую решает динамический DNS, звучит так: подключиться к своему компьютеру, камере или серверу извне, когда провайдер меняет вам адрес. Постоянное имя вроде home.example.com ведёт туда же, куда и вчера, даже если за ночь адрес сменился трижды. Ниже — когда это работает, когда не помогает вообще, как настроить и что делать, если обновление встало.

Динамический DNS ведёт к вашему серверу, даже когда IP-адрес меняется

Где бы вы ни находились, Dynamic DNS от Alviy приведёт вас точно к цели назначения, даже если IP-адреса меняются динамически. Выберите имя, настройте обновление и забудьте про необходимость записывать числа-октеты нужного адреса.

Когда DDNS нужен, а когда не поможет

Динамический DNS отвечает ровно за одно: держит доменное имя нацеленным на текущий адрес. Он не открывает доступ туда, куда доступа нет. Поэтому первым делом стоит понять, ваш ли это случай.

Задача Достаточно ли DDNS Что ещё понадобится
Камера видеонаблюдения домаДа, если адрес белыйПроброс порта на роутере
NAS и файловый серверДаПроброс портов, надёжный пароль
RDP к рабочему компьютеруДаНестандартный порт и ограничение по адресам
Игровой или тестовый серверДаПроброс портов под протокол игры
Публичный сайт на домашнем каналеТехнически даЛучше проксирование: канал и адрес не стоит светить
Провайдер выдал серый адресНетБелый IP, VPN или проксированный доступ

Из чего складывается динамический DNS

Работает связка из трёх частей, и ломается обычно ровно одна из них — понимание, какая именно, экономит вечер:

  • DNS-сервер отвечает на запросы резолвинга имени. У записи стоит низкий TTL, поэтому мир узнаёт о смене адреса за минуты, а не за сутки.
  • Сервис обновления принимает запросы в формате DynDNS и правит запись в зоне. Это точка, где проверяются логин и пароль.
  • Клиент обновления живёт на вашей стороне: следит за адресом и, когда тот меняется, дёргает сервис. Им может быть роутер, утилита на компьютере или NAS.

Если клиент не запустился — имя ведёт на вчерашний адрес. Если сервис отклонил запрос — то же самое, но виноваты учётные данные. Если TTL высокий — адрес уже новый, а часть провайдеров отдаёт старый ещё несколько часов.

Почему адрес вообще меняется

В интернете чаще всего используются статические IP, но у домашних и корпоративных подключений они обычно динамические. Причин две:

  • DHCP. Сервер провайдера выдаёт адрес в аренду на срок TTL. Формально это могут быть две недели, но провайдеры сильно занижают период, чтобы эффективнее использовать свой пул адресов. Каждое переподключение, перезагрузка роутера или обрыв линии — повод выдать другой адрес.
  • NAT. На роутере указывается несколько адресов для трансляции — типичная картина в корпоративных сетях. В домашней сети с Wi-Fi роутером NAT есть всегда, но наружу обычно смотрит один адрес, и его смена определяется как раз DHCP.

Отсюда и правило: если вам нужен вход снаружи, полагаться на «адрес вроде не менялся уже месяц» нельзя. Он сменится в самый неудобный момент.

Белый, серый и CGNAT: как определить свой адрес

Это главная развилка. IPv4-адреса закончились: чтобы получить новые, провайдер встаёт в многомесячную очередь в IANA и ежегодно платит за обслуживание каждого адреса. Поэтому у провайдера обычно меньше адресов, чем клиентов, и он либо управляет ими динамически через DHCP, либо прячет клиентов за NAT.

Белый адрес — уникальный в интернете и зарегистрированный за провайдером. Никаких ограничений на входящие подключения нет.

Серый адрес — частный, работающий только внутри сети провайдера. Такие диапазоны зарезервированы и в интернете не маршрутизируются:

  • 10.0.0.0 — 10.255.255.255 (10.0.0.0/8)
  • 100.64.0.0 — 100.127.255.255 (100.64.0.0/10) — так называемый CGNAT, адреса именно для провайдерской трансляции
  • 172.16.0.0 — 172.31.255.255 (172.16.0.0/12)
  • 192.168.0.0 — 192.168.255.255 (192.168.0.0/16)

Трансляцию таких клиентов в белые адреса организует роутер провайдера, и этот механизм полностью скрыт от вас — вмешаться в него нельзя. Сайты открываются нормально, а вот сервисы, требующие входящих подключений, работать не могут.

Как проверить. Зайдите в веб-интерфейс роутера и посмотрите адрес на WAN-интерфейсе. Затем узнайте, какой адрес видит внешний сервис. Если они совпадают — адрес белый. Если на WAN стоит что-то из списка выше, а снаружи видно другое — вы за провайдерским NAT, и DDNS вам не поможет, пока не появится белый адрес. Что делать в этом случае — три пути доступа к устройству за серым IP разобраны в отдельном материале про белый и серый IP.

Отдельно про домашний роутер с белым адресом: на нём тоже работает NAT, но здесь вы можете пробрасывать порты и управлять трансляцией сами. В этом и разница.

Проброс портов: половина работы, о которой забывают

Частое разочарование: имя настроено, адрес обновляется, а подключиться всё равно не выходит. Причина в том, что DDNS доводит запрос до вашего роутера, а дальше роутер не знает, какому устройству в домашней сети его отдать. Это решает проброс портов — правило вида «всё, что пришло на порт 8080 снаружи, отправляй на 192.168.1.50, порт 80».

Три вещи, которые стоит сделать сразу:

  • закрепить за устройством постоянный локальный адрес, иначе правило однажды укажет в пустоту;
  • не выставлять наружу стандартные порты управления как есть — их сканируют круглосуточно;
  • проверять доступность не из домашней сети, а с мобильного интернета: изнутри многие роутеры отвечают сами себе и создают ложное ощущение, что всё работает.

Как настроить: четыре шага

Порядок один и тот же независимо от того, что вы подключаете:

  • 1. Выбрать имя. Это то, что вы будете вводить вместо адреса. Имя привязывается к вашей учётной записи, и обновлять его сможет только она.
  • 2. Настроить обновление. Проще всего — прямо на роутере: в большинстве прошивок есть раздел DynDNS, куда вписываются сервис, имя хоста, логин и пароль. Инструкции по популярным моделям — в разборах Keenetic и Padavan, общий порядок — в настройке роутера.
  • 3. Пробросить порты до нужного устройства, как описано выше.
  • 4. Проверить снаружи. Дождитесь первого обновления, затем обратитесь к имени с внешней сети. Если имя резолвится в правильный адрес, а подключения нет — проблема уже не в DNS, а в пробросе или файрволе устройства.

Протокол обновления DynDNS2

Механизм динамических обновлений DNS описан в RFC 2136, но тот формат, который поддерживают роутеры и бытовые устройства, стандартом IETF не является. Он сложился де-факто: компания DynDNS.org первой начала раздавать такие имена, позже стала DYN.COM и была поглощена Oracle. Её формат и называют DynDNS2 — именно его понимает практически всё оборудование:

wget -O - http://{username}:{password}@dynupdate.alviy.com/nic/update?hostname={yourhostname}&myip={ipaddress}

Здесь username и password — учётные данные в системе, yourhostname — имя, адрес которого обновляется, ipaddress — новый адрес. Если параметр адреса не передавать, сервис возьмёт тот, с которого пришёл запрос: так делает большинство клиентов.

Важная тонкость: передача учётных данных прямо в URL считается небезопасной, и современные браузеры такой формат больше не поддерживают. Запрос доходит до сервера уже без логина и пароля, а в ответ приходит ошибка авторизации noauth. Проверять обновление вручную стоит утилитой вроде curl или wget, а не адресной строкой браузера.

Чем обновлять: роутер, компьютер или NAS

Клиент обновления — единственная часть, которая работает на вашей стороне, и выбор здесь влияет на надёжность:

  • Роутер. Лучший вариант по умолчанию. Он и так знает внешний адрес первым, работает круглосуточно и не зависит от того, включён ли компьютер.
  • Отдельный клиент на компьютере или сервере. Нужен, когда прошивка роутера не умеет работать с вашим сервисом или список сервисов в ней зашит намертво. Готовые клиенты под Windows, Linux и macOS описаны в документации.
  • NAS. В прошивках Synology, QNAP и подобных обычно есть встроенный раздел DDNS — он же и будет клиентом.

Держать два клиента одновременно не стоит: они начнут перебивать записи друг друга, и диагностировать это потом неприятно.

Если обновление встало: что проверить по порядку

Симптомы похожи, а причины разные. Проходите по порядку — так быстрее, чем наугад.

Что видно Вероятная причина Что делать
Имя ведёт на старый адресКлиент не отправил обновлениеПроверить статус DDNS в роутере, перезапустить клиент
Ответ noauthЛогин или пароль не дошлиПеревести пароль в клиент заново, проверить формат запроса
Адрес обновился, доступа нетНе настроен проброс портовПроверить правило и локальный адрес устройства
Изнутри работает, снаружи нетПроверка велась из домашней сетиПовторить с мобильного интернета
На WAN адрес вида 100.64.x.xПровайдерский CGNATЗапросить белый адрес у провайдера
Обновляется, но с задержкой в часыВысокий TTL записиПонизить TTL в настройках зоны

DDNS, VPN и туннели: что выбирать

Все три решают похожую задачу — попасть домой снаружи, — но по-разному:

  • DDNS — самый простой путь, когда адрес белый. Ничего не шифрует и ничего не проксирует, только держит имя актуальным.
  • VPN нужен, когда вы хотите не публиковать сервисы наружу, а попадать в домашнюю сеть как в локальную. Ему тоже нужен доступный извне адрес — то есть VPN обычно ставят вместе с DDNS, а не вместо него.
  • Обратный туннель — единственный вариант при сером адресе: соединение устанавливается изнутри наружу, поэтому провайдерский NAT ему не помеха. Платите за это зависимостью от посредника и задержкой.

Бесплатные сервисы и их ограничения

Знакомство с динамическим DNS у многих начинается с бесплатных имён на ddns.net, No-IP или DynDNS.org. Работают они честно, но у бесплатных планов есть общие черты: имя нужно регулярно подтверждать вручную, иначе его отберут; список поддерживаемых прошивок ограничен; при массовых сбоях бесплатные учётки восстанавливают последними. Разбор того, чем это оборачивается на практике и как перенести имя без простоя, — в отдельном материале о замене ddns.net.

Коротко: динамический DNS стоит настраивать, когда провайдер дал белый адрес, но не гарантирует его постоянство. Проверьте тип адреса, заведите имя, повесьте обновление на роутер и не забудьте про проброс портов — на нём спотыкаются чаще, чем на самом DNS. Если нужны не только имена, но и управление зоной целиком, посмотрите DNS-хостинг, а список типов записей пригодится, когда дело дойдёт до почты и подтверждений домена. Стоимость сервиса определяется по подписочной модели.