Андрей Смирнов
Время чтения: ~16 мин.
Просмотров: 3

Динамический днс: настройка

Введение

Иногда необходимо иметь доступ к своей машине, или машине клиента, которые имеют динамический IP адрес. Для этих целей существует масса сервисов, но бесплатных становится все меньше и меньше.
Вот для этого и предназначена данная статья. Если у вас есть под рукой сервер (VDS, VPS или дедик), из которого можно сделать ДНС сервер, то с помощью данной статьи вы сможете сделать для себя такой сервис и пользоваться им как вам удобно и сколько вам хочется.
В ходе создания сервиса было перерыто множество страниц в интернете, зачастую противоречащих друг другу. Поэтому, ссылки на исходники указаны не будут. Это статья как бы компиляция всех сведений, нарытых в сети.

Настройка клиентской программы на шлюзе, хосте или сервере

Среди часто используемых DNS-клиентов отметим DDclient и INADYN. Кроме того, на большинстве маршрутизаторов установлено встроенное программное обеспечение для обнаружения изменения IP-адресов и сообщения их DNS-серверам.

Примечание. В Google Domains используется протокол dyndns2.

В DNS-клиенте настройте следующее:

  • Поставщик (также «DNS» или «Служба»): название поставщика DNS.
  • Имя пользователя (или учетные данные): имя пользователя из записи динамического DNS.
  • Пароль (или учетные данные): пароль из записи динамического DNS.

После создания записи и настройки клиентской программы её необходимо протестировать. Для этого введите субдомен или домен в веб-браузер (или соответствующий клиент) и проверьте, происходит ли подключение к нужному ресурсу.

Примеры

DDclient теперь поддерживает Google Domains.

DDclient с поддержкой Google Domains

Записи ddclient.conf:

Общие примеры настройки клиента:

DDclient
без поддержки Google Domains
INADYN

Пример записей ddclient.conf:

Добавьте следующие строки в запись inadyn.conf:

Обновление записи динамического DNS с помощью API

Клиентская программа динамического DNS автоматически обновляет динамическую запись DNS. Можно выполнить обновление вручную через API. Для этого следует отправить запрос POST (также допускается использование запроса GET) по следующему адресу:

Для API требуется протокол HTTPS. Пример запроса:

Примечание. В запросе необходимо указать агент пользователя. Обычно при тестировании с использованием указанного выше URL агент добавляется веб-браузером. Окончательный запрос HTTP, отправленный на серверы Google, должен выглядеть примерно так:

Параметры запроса:

Параметр Обязательный/необязательный Описание
Обязательный Имя пользователя и пароль, связанные с хостом, который необходимо обновить.
Обязательный Имя обновляемого хоста.
Необязательный
(обязательный при использовании адреса IPv6)
IP-адрес хоста. Если он не указан, будет использоваться IP-адрес агента, отправившего запрос.

Примечание. Параметр обязателен, если ваш агент использует адрес IPv6. IP-адрес агента можно проверить на сайте https://domains.google.com/checkip.

Необязательный Переводит используемый хост в офлайн-режим. Если запрос обновления выполняется на хосте в офлайн-режиме, этот хост переходит в онлайн-режим.
Допустимые значения:

Ниже перечислены варианты ответов на запрос.

Ответ необходимо правильно интерпретировать, в противном случае клиент может быть заблокирован.

Ответ Статус Описание
Выполнено Обновление выполнено. Через пробел указывается IP-адрес. Не следует выполнять обновление до смены IP-адреса.
Выполнено Предоставленный IP-адрес уже задан для данного хоста. Не следует пытаться выполнить обновление ещё раз до изменения IP-адреса.
Ошибка Имя хоста не существует, или не включен динамический DNS.
Ошибка Неверная комбинация имени пользователя и пароля для заданного хоста.
Ошибка Указанное имя хоста не является допустимым полностью определенным доменным именем.
Ошибка Клиент динамического DNS отправляет неверные запросы. Проверьте, указан ли агент пользователя в запросе.
Ошибка Доступ динамического DNS для получения имени хоста был заблокирован из-за неправильной интерпретации предыдущих ответов.
Ошибка Ошибка на сервере Google. Подождите 5 минут и повторите попытку.
Ошибка Пользовательские записи ресурсов A или AAAA могут конфликтовать с обновлением. Такой ресурс необходимо удалить со страницы настроек DNS, а затем снова выполнить обновление. 

Benefits from using Secondary DNS service

Some of the main benefits of setting a Secondary DNS include:

  • 100% Uptime: If the Primary DNS provider becomes unavailable, the DNS traffic will automatically be served by the secondary provider without any visible effects to the visitors of the web site.
  • Backup DNS: The Secondary DNS can be used as backup plan, if something happens with the primary provider. You will have a fresh copy of all your DNS records.
  • Provider independency: Last few years the DDoS attacks are growing in both frequency and severity. Adding additional DNS provider with Secondary DNS gives you better security and provider independency.
  • Additional security: If you manage own DNS servers, you can secure them with Secondary DNS configuration with hidden Master. ClouDNS will handle all the public traffic for you.
  • Easy migration from self hosted DNS to Managed Anycast DNS: If you manage your own DNS servers, adding Secondary DNS is a fairly easy process. You can migrate to DDoS Protected and Anycast DNS transparently without any other changes of your management system, access and control panels.

Additional benefits of using ClouDNS’s Secondary DNS:

  • Cloud-based infrastructure: ClouDNS is designed to operate as cloud-based infrastructure service. Our self-developed system for synchronization and data distribution allows you to monitor in real time the DNS zones status at each location. With our service, you can add extra DNS resources instantly at any time.
  • DDoS Protection: In light of the recent rise of DDoS attacks, it has become increasingly important for companies to have active protection. Our self-developed protection for DNS-based attacks is designed to mitigate any type of DDoS attacks over multiple DDoS Protection facilities. Our experts have broad experience in the new DDoS Mitigation technologies combined with long years partnership with the leading DDoS Mitigation companies.
  • Anycast DNS: Fastest possible DNS responses to the end users and resolvers. Real hardware, route monitoring and full dual stack network (IPv4 and IPv6) available at each POP.
  • Uptime Guarantee: ClouDNS is the first DNS provider to guarantee 10,000% uptime Service Legal Agreement (SLA). For every minute of downtime we will extend your account with hundred.
  • Guaranteed lowest prices: We guarantee the lowest prices in the industry. If you find a lower price for Secondary DNS service, we will instantly amend your agreement with the exact same price.
  • 24/7 Support: No matter what day, no matter when, we provide continuous, uninterrupted network monitoring and support.

Настройка DDNS на роутере

Для настройки DDNS нужно, чтобы ваш роутер был подключен к интернету.

Рассмотрим настройку DDNS на примере роутеров TP-Link и Asus.

TP-Link

На роутере TP-Link входим в веб-интерфейс и в меню находим пункт «Динамический DNS». Из списка предлагаемых сервисов выбираем, например, no-ip.com и заходим на их сайт. В процессе регистрации вам нужно будет придумать уникальное доменное имя. При регистрации необходимо будет указать свой почтовый ящик. На него придет письмо, для подтверждения, что почтовый ящик ваш. Так же потребуется придумать пароль для учётной записи.

Эти данные затем следует ввести на странице настроек DDNS. Выбираем No-IP. В качестве имени пользователя прописываем почтовый ящик, указанный при регистрации и пароль учётной записи.

И поставить галочку в пункте «Включить DDNS». Если вы всё сделали правильно, состояние подключения изменится вначале на «Подключение», а затем на «Успешно». Всё готово. Теперь вы можете на любом компьютере, подключенном к интернету, ввести ваше уникальное доменное имя и получить доступ к открытым ресурсам локальной сети. Например, подключиться к FTP-серверу, прописав в начале адреса ftp://. Но перед этим надо настроить FTP-сервер и проброс портов.

Для примера запустил на своем компьютере веб-сервер. У него IP адрес в локальной сети 192.168.0.100. Настраиваю виртуальный сервер на роутере. Все запросы, которые придут на роутер на порт номер 80 будут переадресовываться на 80-тый порт моего компьютера.

Теперь, после настройки динамического DNS и проброса 80-го порта, пытаюсь зайти на сайт по доменному имени, полученному в сервисе NO-IP.

Если у вас серый IP, то из других сетей не получится получить доступ, хотя в локальной сети вы будете подключаться.

Asus

На роутерах Asus открываем страницу «Интернет», вкладка DDNS. Здесь нужно включить DDNS, поставив галочку в соответствующем пункте. После того, как вы нажмёте кнопку «Применить», откроется следующая страница настроек, где из выпадающего списка выберите WWW.ASUS.COM. А в строке ниже введите уникальное доменное имя. Снова нажмите «Применить» и дождитесь, пока роутер соединится с сервером. Теперь вы можете отправить запрос к вашему маршрутизатору с любого компьютера, используя доменное имя, которое вы выбрали. В приведенных ниже настройках это naseti.asuscomm.com.

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

Как видим, подключить и настроить DDNS на роутере не сложно. Главное условие – у вас должен быть белый IP-адрес. И, разумеется, функция DDNS должна присутствовать в настройках вашего маршрутизатора.

Справка по разделу ‘Полная WHOIS информация по домену’:

WHOIS — сетевой протокол прикладного уровня, базирующийся на протоколе ТСР, предназначенный для получения публичной информации (регистрационных данных) о владельцах доменных имён, IP-адресов и автономных систем. Протокол используется для подачи автоматизированных запросов к публичным серверам WHOIS баз данных регистраторов, базам IP-адресов и регистраторов доменных имён. Доступ к информации, размещённой регистраторами в своих WHOIS-базах, при использовании пользователями технологического портала WHOIS.UANIC.NAME, формы подачи персонального запроса к информации, хранимой распределёнными WHOIS базами, обеспечивает пользователям нашего сервиса доступ в реальном времени к информации баз WHOIS, по индивидуальным, неавтоматизированным, запросам. Доступ к информации баз WHOIS через порт 43, позволяющий выполнять автоматизированные запросы, может быть предоставлен реселлерам UANIC в качестве дополнительного сервиса, по запросу.

Поиск полных контактных данных WHOIS владельца (регистранта) доменного имени, ответственного администратора доменного имени, технического и\или финансового контакта домена, а также первичной даты регистрации (делегирования домена), и ее истечения, серверах имен, и текущем статусе запрашиваемого домена, может быть бесплатно выполнен путём подачи пользователем запроса через форму поиска WHOIS информации, размещённую на данном сайте.

Базы данных WHOIS управляются в основном регистраторами и регистратурами. Отдел IANA корпорации ICANN управляет центральной регистратурой для всех видов интернет-ресурсов и указывает на сервер WHOIS ответственной (под)-регистратуры, а также на контактную информацию этой регистратуры, в случае, если она размещена публично. Существует полная и сокращённая форма предоставления регистраторами информации из WHOIS баз. Полнота и формат выдачи информации из WHOIS базы определяется отдельно каждым регистратором, на основании протокола RFC 3912.

Для получения информации пользователю необходимо указать в WHOIS-форме интересующее его доменное имя, и подать запрос, путём нажатия на кнопку WHOIS. Сведения, содержащиеся в базе WHOIS UANIC обновляются автоматически, кроме того, подлежат ручному обновлению с частотой не более 10 суток.

English version: https://whois.uanic.name/eng/yaemu.ddns.net/

Он сказал, поехали!

Настройка клиентской части

Раздел идет впереди настройки сервера потому, что ключи авторизации необходимо генерировать на клиенте.

Создадим отдельный каталог в /etc.

sudo mkdir etcddns

Перейдем в него.

cd etcddns

Генерируем пару ключей для обмена информацией между клиентом и сервером.

sudo dnssec-keygen -b 512 -a HMAC-MD5 -v 2 -n HOST dyndns.my

В результате этой операции в каталоге появляются два файлика — Kdyndns.my.+157+48025.key и Kdyndns.my.+157+48025.private. Из первого файла нам будет необходим только набор символов после «157 ». Именно после пробела начинается тело ключа.
Создаем скрипт обновления доменных зон.

sudo nano ddns.sh

Вставляем туда текст.

#!/bin/bash
TTL=3600
SERVER=ns.dyndns.my
HOSTNAME=dhost.dyndns.my
ZONE=dyndns.my
KEYFILE=Kdyndns.my.+157+48025.private
new_ip_address=`curl http://dyndns.myip.php`  #Этот файлик создадим позднее на сервере!
cd etcddns
nsupdate -v -k $KEYFILE << EOF
server $SERVER
zone $ZONE
update delete $HOSTNAME A
update add $HOSTNAME $TTL A $new_ip_address
send
EOF

Сохраняем. Затем даем права на исполнение.

sudo chmod +x ddns.sh

Создаем символическую ссылку в каталог /usr/sbin, чтобы не добавлять в пути скрипт обновления зон. Это не обязательно, будет просто не лишним для того, чтобы из консоли набирать команду без путей.

sudo ln -s etcddnsddns.sh usrsbinddns_update

Раз добавили, то в /etc/crontab будем использовать его.

Настройка серверной части

Настройка сервера имен заключается в прописывании домена и установке разрешения на обновления записей A доменных имен с динамическими IP.
Переходим в каталог bind.

cd etcbind
sudo nano dnskeys.conf

Вставляем туда текст и тело ключа, о котором упоминалось в предыдущем разделе.

key "dyndns.my" {
        algorithm hmac-md5;
        secret "тут тело ключа";
};

Добавляем в файл /etc/bind/named.conf строчку с указанием файла, где определен ключ.

include "/etc/bind/dnskeys.conf";

Следующим шагом необходимо в файл /etc/bind/named.conf.local прописать доменную зону, которой мы оперируем.

zone "dyndns.my" {
        type master;
        allow-update {key dyndns.my;};
        file "/etc/bind/pri.dyndns.my";
};

Необходимо будет создать и файл /etc/bind/pri.dyndns.my с различными записями для домена. Он обычный, с минимально необходимым набором записей для функционирования домена, потому и нет необходимости рассматривать его в данной статье.
Рестартуем сервер имен для завершения и применения настроек.

sudo service bind9 restart

Теперь в каталог, предназначенный для веб страниц, помещаем очень простой скрипт на php.

sudo nano varwwwip.php

Вставляем туда код.

<?php
echo $_SERVER"REMOTE_ADDR";
?>

Вот и все телодвижения по настройке серверной части.

Настройка заключительная

Доделываем клиента.

sudo nano etccrontab

Добавляем строчку.

*/15 *  * * *   root    usrsbinddns_update

Это означает, что раз в 15 минут скрипт будет запускаться.
На этом настройка клиентской части закончена. Можно подождать 15 минут и убедиться, что наш хости работает пингом со стороннего сервера. А можно и выполнить команду.

sudo ddns_update

Для чего, собственно, мы и делали симлинк в /usr/sbin.
Если вы не получили в ответ выхлоп со словом REFUSED, значит вы все сделали правильно и можете быть счастливы.

Настраиваем динамический IP-адрес

Подробнее:Вход в веб-интерфейс роутеровПодключение компьютера к роутеру

После этого можно переходить непосредственно к конфигурированию автоматического получения IP-адреса. Предлагаем разобраться с этим процессом на примере трех самых популярных веб-интерфейсов от разных производителей сетевого оборудования.

Вариант 1: TP-Link

Подключая интернет впервые, скорее всего, пользователь получит предложение приобрести роутер от провайдера

Чаще всего так распространяют модели от компании TP-Link, поэтому сначала рассмотрим этот интернет-центр, взяв во внимание актуальную версию прошивки

  1. Совершив успешную авторизацию, откройте меню «Быстрая настройка» и нажмите «Далее».

Отметьте маркером пункт «Стандартный Wi-Fi роутер» и переходите далее.

В списке предоставляемых протоколов отметьте «Динамический IP-адрес» и направляйтесь к следующем шагу.

Остается только задать основные параметры беспроводной сети, если это требуется, а затем настройка будет успешно завершена.

Дополнительно или вместо быстрого конфигурирования можно переместиться в раздел «Сеть».

Там откройте первую категорию «WAN», задайте этот тип подключения.

По необходимости остается только задать предпочтительные DNS, если они должны отличаться от стандартных, а также поменять имя узла, но только в том случае, когда это требует поставщик интернет-услуг.

Перезагрузите маршрутизатор, чтобы изменения вступили в силу. Если после этого доступ к сети появился, значит, все параметры выставлены верно.

Вариант 2: D-Link

Даже в тех ситуациях, когда используется роутер не от компании D-Link, можно следовать данной инструкции как универсальной, ведь реализация этого интернет-центра стандартная и примерно соответствует другим.

  1. Здесь можно пойти двумя путями. Первый заключается в запуске Мастера быстрого конфигурирования через меню «Начало».

Проверьте, что маршрутизатор подключен к проводу от провайдера по WAN, а затем нажмите «Далее».

Выберите страну своего провайдера и определите компанию. Если найти его не удается, укажите параметр «Вручную».

Отметьте маркером пункт «Динамический IP».

Если нужно, задайте имя подключения и настройте автоматическое получение DNS. Чтобы выбрать расширенные параметры, нажмите «Подробно».

Изменять большинство присутствующих здесь свойств не нужно обычному пользователю, но потребуется убедиться в том, что возле «NAT» установлена галочка.

В завершение удостоверьтесь в правильности выбранных параметров и щелкните «Применить».

Второй метод настройки необходим тем, кто одновременно использует несколько типов WAN-соединения или кому не подходит средство быстрого конфигурирования. Выполните всего несколько простых действий:

  1. Разверните раздел «Сеть» и переключитесь в категорию «WAN». Удалите присутствующие шаблоны, если они не нужны, нажав по соответствующей кнопке.

Затем нажмите «Добавить» для создания новых параметров.

В появившемся меню разверните выпадающий список «Тип соединения» и выберите «Динамический IP».

Дополнительные параметры чаще всего изменять не нужно. Проверьте только, что галочкой отмечен пункт «NAT», а затем сохраните текущую конфигурацию.

Вариант 3: ASUS

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

  1. В веб-интерфейсе нажмите по кнопке «Быстрая настройка Интернет».

Переходите к созданию новой сети.

Кликните по кнопке «Настройка вручную», если параметры не были определены автоматически.

При появлении вопроса об имени пользователя и пароле ответьте «Нет», поскольку динамический IP не предполагает использование таких данных.

Следом выберите тип подключения «Автоматический IP».

Настройте беспроводную сеть, чтобы выйти из Мастера.

Как видно, в Мастере конфигурирования приходится задавать новые параметры и для Wi-Fi, что некоторым не подходит, поэтому предлагаем разобраться со вторым методом настройки динамического IP.

  1. Через главное меню переместитесь в раздел «Интернет».

Укажите тип «WAN» в первом же пункте, чтобы появились остальные необходимые.

Задайте соответствующий тип WAN-соединения, включите NAT и WAN, чтобы обеспечить нормальное функционирование.

Опуститесь ниже, если требуется ввести параметры, назначенные провайдером. Там можно написать новое имя узла, клонировать MAC-адрес и выбрать режим DHCP-запросов.

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

Безопасность при использовании Dynamic DNS

Так как наш роутер имеет уникальный, постоянный адрес (пусть даже не известный для всех), через который можно получить к нему доступ, то обязательно нужно подумать о безопасности. Чтобы закрыть для посторонних доступ к самому маршрутизатору, FTP-серверу, камерам и другим серверам и устройствам, которые подключены/настроены на роутере.

В первую очередь нужно установить надежный пароль администратора роутера. Об этом я писал в статье как на роутере поменять пароль с admin на другой. Если там есть возможность сменить имя пользователя – смените. Даже если кто-то узнает адрес вашего роутера и перейдет по нему, то не зная логина и пароля, он не сможет получить доступ к настройкам.

Если настроен FTP-сервер, общий доступ к файлам – обязательно нужно сменить имя пользователя и пароль установленного по умолчанию пользователя admin (он запрашивается при доступе к FTP-серверу). Если создаете новых пользователей, то устанавливайте для них надежные пароли.

К маршрутизатору подключена IP-камера, сетевое хранилище NAS? Они также должны быть защищены хорошим паролем. Стандартное имя пользователя (admin) я так же рекомендую сменить. Сделать это можно в настройках этих устройств.

Если вы, например, планируете использовать адрес DDNS только для доступа к FTP-серверу, а доступ к панели управления роутером вам не нужен, то убедитесь, что удаленный доступ отключен в настройках роутера.

Выводы

Функцию DDNS можно настроить только на том роутере, который получает от провайдера внешний, белый, динамический IP-адрес. Если роутер получает статический внешний (WAN) IP-адрес, то в этой функции нет никакого смысла.

Если провайдер не может, или не хочет выдавать вам белый WAN IP-адрес, а вы не хотите, или нет возможности подключить услугу «Статические IP-адрес», то изучите информацию по своему роутеру. Возможно, там есть способ получать доступ к настройкам через облако. Но вот доступ файлам, IP-камере, NAS, через облако скорее всего не настроить.

32

Сергей

Полезное и интересное

Выводы

На выходе мы получили вполне себе работающий сервис динамических имен. Есть, конечно, и существенный недостаток. Используемый ключ подходит для изменения любого поддомена из прописанных. Т.е., он один для всех. Это открывает простор для хулиганства, если кто-то упрет ключ. Поскольку, сервис делался для себя, то особых проблем это не вызовет. Ибо надо быть не совсем здоровым психически, чтоб хулиганить самому у себя. Возможно есть и решение, позволяющее каждый поддомен авторизовать по своему ключу, но целью данной статьи это не ставилось, потому гугля сильно и не терзалась.

Большая просьба, при перепечатке данной статьи, указывать источник, в частности, этот ресурс.

Рейтинг автора
5
Материал подготовил
Максим Иванов
Наш эксперт
Написано статей
129
Ссылка на основную публикацию
Похожие публикации