Dynamic dns что это
Удалённый доступ к маршрутизатору через DDNS
В данной заметке я расскажу о том, как организовать удалённый доступ к своему домашнему беспроводному маршрутизатору, используя функцию DDNS, являющуюся стандартной функцией любого современного сетевого устройства.
Для чего может потребоваться удалённый доступ к домашним сетевым устройствам через сеть Интернет:
В публичной сети Интернет найти сетевое устройство и получить к нему доступ возможно только, если это устройство имеет так называемый публичный или реальный IP-адрес (что это такое, кому интересно, можете найти в Интернете, используя любимую поисковую систему).
Интернет-провайдеры, предоставляющие доступ к сети Интернет, при подключении и авторизации могут выдавать один из трёх вариантов IP-адресов:
При первом варианте прямой удалённый доступ организовать в большинстве случаев не получится, только, в некоторых случаях, через специальный внешний сервер.
При втором варианте Вы сразу получаете постоянный адрес для удалённого доступа, но, как правило, это платная услуга операторов связи, стоимость которой обычно составляет до 200 руб. в месяц.
При третьем варианте ваш полученный реальный адрес динамически меняется в соответствии с условиями провайдера, что создаёт большие неудобства при удалённом доступе. Именно в этом случае Вам может помочь функция DDNS. Идея функции состоит в том, что ваше сетевое устройство, например, маршрутизатор, само сообщит на внешний сервер текущий реальный IP-адрес, полученный от провайдера, а сервер автоматически переадресует на этот адрес при каждой Вашей попытке открыть заранее настроенный на сервере домен (сайт).
В итоге для получения доступа к своему сетевому устройству, Вы просто в адресной строке браузера указываете свой зарегистрированный на сервере домен третьего или второго уровня, и открывается окно авторизации Вашего сетевого устройства.
Серверов, оказывающих услуги DDNS на платной, условно–бесплатной и бесплатной основе огромное множество в сети Интернет, как зарубежных, так и отечественных. Но далеко не каждое сетевое устройство способно работать с любым сервером. Чаще всего в устройствах имеется возможность работать с ограниченным количеством подобных ресурсов, выбираемых из выпадающего списка. Например, в современных беспроводных маршрутизаторах D-Link можно выбрать понравившийся сервер из более чем 20 доступных вариантов.
Последовательность действий для настройки функции следующая:
Для обеспечения безопасности, обязательно настройте на своём устройстве авторизацию по логину и паролю.
Если ваши сетевые устройства, к которым требуется удалённый доступ, расположены относительно сети Интернет за маршрутизатором, то настраивать функцию DDNS требуется именно на этом маршрутизаторе. При этом ещё потребуется на маршрутизаторе настроить проброс портов на эти устройства.
Если требуется доступ к настройкам самого маршрутизатора, то, как правило, на маршрутизаторе надо отдельно включить доступ к интерфейсу с WAN порта.
Собственный Dynamic DNS
Иногда необходимо прописать DNS для компьютера с динамическим IP адресом. Простым путем для этого являются сервисы по типу dyndns, описанные в недавнем топике Связываем домен и динамический IP. Иногда такой подход работает достаточно плохо.
Напрмер в моей ситуации, провайдер иногда меняет мой публичный IP адрес. Это иногда случается обычно раз в несколько месяцев. Кроме того, мой домашний компьютер перезагружается крайне редко. За это время сервис dyndns, которым я пользовался ранее успевал пару раз прислать мне оповещения о неактивности с целью отключить «неиспользуемый» аккаунт. Перейти на вручную прописываемую DNS зону также не получается, потому что иногда адрес все же меняется. Причем обычно об этом узнаешь когда нужен доступ к домашнему компьютеру здесь и сейчас.
Для реализации описываемого метода понадобится сервер в интернете с DNS сервером bind на нем. А так же доменная зона, субдомен которой мы будем выделять для нашего компьютера. Описывается вариант с подключением Linux-компьютера к Linux-серверу. Для использования других операционных систем понадобится почитать мануалы и модифицировать некоторые шаги.
Итак:
1. Имеем установленный сервер bind9 с доменом server.org
2. Создаем зону client.server.org.zone:
здесь сервера ns1.server.net и ns2.server.net — DNS сервера для нашей зоны, client.server.net — адрес нашего домашнего компьютера
4. Создаем фаил с ключем на сервере:
server# cd /var/named/chroot/etc
server# vim keys.conf :
key client.server.net. <
algorithm «HMAC-MD5»;
secret «omr5O5so/tZB5XeGuBBf42rrRJRQZB8I9f+uIIxxei8qm7AVgNBprxtcU+FQMzBvU/Y+nyM2xbs/C8kF3eJQUA==»;
>;
В данном случае использован симметричный ключ, что небезопасно: если кто-то имеет доступ к фаилу с ключами на вашем сервере, он может воспользоваться вашим ключем для изменения данных вашей зоны. В таком случае можно использовать несимметричный ключ.
Выставляем права доступа к фаилу с ключами:
server# chmod 640 keys.conf
server# chown root:named keys.conf
5. добавляем нашу зону в named.conf:
include «/etc/keys.conf»
zone «client.server.net» <
type master;
file «zones/client.server.net»;
allow-update <
key client.server.net;
>;
>;
Здесь прописан параметр, который позволяет обновлять данные зоны. Вообще, почитав мануалы, можно найти опции этого параметра, позволяющие обновлять только одну запись в зоне для данного ключа. Т.е можно иметь зону с прописанными в ней поддоменами client1, client2, etc. которые будут авторизоваться с ключами key1, key2, etc.
6. Перезапускаем DNS сервер:
server# /etc/init.d/named reload
7. Создаем на клиенте скрипт, который будет обновлять данные зоны:
#!/bin/bash
IFACE=»wlan0″
TTL=3600
SERVER=ns1.example.com
HOSTNAME=foo.example.com
ZONE=example.com
KEYFILE=/root/ddns-keys/Kfoo.example.com.+157+12345.private
В начале скрипта описаны соответствующие параметры: интерфейс, имена сервера и зоны, местоположение фаила с ключем.
8. Осталось только настроить автозапуск/автоматическую смену адреса при смене DNS.
Мы это сделаем при помощи скрипта для NetworkManager:
создадим фаил /etc/NetworkManager/dispatcher.d/20-dyndns.sh:
#!/bin/sh
if [ «x$state» == «xup» ] ; then
/etc/namedb/ddns-update
elif [ «x$state» == «xdown» ]; then
true
fi
Сделаем его исполняемым и принадлежащим пользователю root.
Как работает динамический DNS
Динамический DNS автоматически обновляет записи DNS при изменении IP-адреса. Также он используется в больших сетях, в которых размещаются внутренние службы, и используются собственные внутренние DNS- и DHCP-серверы.
Однако небольшие компании и домашние сети обычно не имеют собственного DNS-сервера, так зачем им динамический DNS?
В этом руководстве мы рассмотрим, как работает динамический DNS и как настроить его на домашнем маршрутизаторе.
Как работают службы динамического DNS и зачем их использовать?
Службы динамического DNS используются небольшими компаниями и частными лицами, когда они хотят опубликовать службу в Интернете, и эта служба размещается во внутренней или домашней сети.
Домашние сети обычно используют маршрутизатор NAT для подключения к Интернету, что означает, что устройства, расположенные во внутренней сети, недоступны из Интернета.
В следующем обсуждении мы предположим, что хотим сделать веб-сервер, расположенный на внутреннем сервере, доступным в Интернете.
На приведенной ниже сетевой схеме показана конфигурация.
Чтобы сделать веб-сервис доступным в Интернете, мы используем метод, называемый переадресацией портов (дополнительные сведения см. В руководствах « Переадресация портов» и « Внутренний или внешний IP-адрес» ).
Теперь наш веб-сервер кажется нашему внешнему клиенту расположенным в IPex и на порту Portex.
Если мы введем сюда типичные числа, мы увидим наш веб-сервер по адресу
IP-адрес = 81.157.34.43 и порт 80
Все, что нам нужно сделать, это сказать нашему внешнему клиенту использовать эти значения.
Однако внешний IP-адрес IPex ( 81.157.34.43 ) также может быть динамически назначен интернет-провайдером, и мы не можем сделать его статическим, если не заплатим за статический адрес.
Службы динамического DNS
Если мы теперь представим динамический DNS-сервис в картине.
С помощью динамического DNS мы назначаем веб-серверу имя, которое затем можем дать внешним клиентам. — Это имя закреплено.
Теперь, так как этот внешний IP — адрес будет меняться периодически нам нужно будет обновлять в DNS записи периодически.
Вместо этого возможность автоматического обновления записей DNS-сервера встроена в большинство NAT-маршрутизаторов.
Вот снимок экрана страницы конфигурации динамического DNS моего маршрутизатора NAT (BT Home Hub).
Конфигурация включает в себя ввод имени вашего DDNS- провайдера и ваших данных для входа.
Когда вы примените его, вы должны получить подтверждение подключения.
Если вы получили неверное имя пользователя / пароль, проверьте данные для входа и повторите попытку.
Регистрация у поставщика услуг DDNS
Прежде чем вы сможете включить динамический DNS, вам потребуется учетная запись от провайдера DDNS.
Доступно несколько провайдеров. Большинство из них предоставляют бесплатную услугу с улучшенным обновлением.
Все основные провайдеры работают одинаково, и процесс регистрации прост. В этой статье используется NO-IP.
Вам нужно будет создать имя хоста для IP-адреса, выбрать одно из доступных доменных имен, предоставленных провайдером, и ввести имя хоста.
Ниже приведена форма имени для No-IP.
Динамический DNS (DDNS) не поддерживается!
Если ваш маршрутизатор не поддерживает обновления DDNS, вы можете получить клиент DDNS, который вы устанавливаете на машину, выполняющую ту же работу.
Единственная проблема с этим подходом заключается в том, что машина должна постоянно работать.
Тестирование вашей конфигурации
Перейдите к команде ping и проверьте, что вы можете получить доступ к IP-адресу, выполнив проверку связи с доменным именем, которое состоит из имени хоста + имени домена.
Обычное использование
Хотя он используется геймерами и техническими специалистами, он, вероятно, получит более широкое распространение в областях удаленной безопасности / наблюдения и управления.
Общие вопросы и ответы
В- В чем разница между динамическим DNS и DNS?
О — Динамический DNS — это функция DNS. Ранние системы DNS были статическими, а IP-адреса и сопоставление имен вводились вручную. Динамический DNS обновляет сопоставления Имя-IP автоматически при изменении.
В- Как мне найти свой внешний IP-адрес?
О- Зайдите в Google и введите свой IP-адрес.
В- Нужен ли мне DDNS?
О- Обычно нет. Он нужен вам только при предоставлении услуг клиентам из Интернета.
Резюме
Динамический DNS (DDNS) очень полезен, если вам нужно получить доступ к внутренним сетевым службам через Интернет.
Он не предназначен для размещения бизнес-сайта, для этого вам понадобится стандартный веб-хостинг.
Домашний хостинг сайтов с динамическим IP
У меня (как и у многих web-разработчиков) имеется с десяток сайтов которые необходимо где-то размещать (хостить).
Сайты практически не приносят прибыли, поскольку это какие-то старые работы (по разным причинам не пошедшие в продакшн), домашняя страница, сайт заведенный красивой почты и тому подобное. Но в то же время эти сайты жалко бросать, а потому приходится каждый месяц на них тратить вполне реальные деньги чтобы покупать хостинг. Деньги, прямо скажем небольшие, но тем не менее их жалко, поскольку отдачи от сайтов никакой нет.
В то-же время в наличии имеется:
Разумеется есть всем известные Dynamic DNS сервисы вроде noip.com, но они успешно решают лишь задачу удаленного доступа к нашему серверу (по SSH или FTP), но для хостинга совершенно нам не подходят, поскольку в настройках домена на DNS-сервере нам нужно обязательно прописать A-запись с реальным IP-адресом (а не ссылку на наш виртуальный домен).
Что делать?
Я не буду останавливаться на том, как настроить linux сервер (и тем более как его выбрать), поскольку предполагаю, что он у вас уже есть. Также я не буду подробно расписывать настройки nginx и Apache, поскольку опять-таки предполагаю, что вы с этим справитесь самостоятельно.
Первое с чем у меня возникли проблемы — это как перенаправить посетителей с моих доменов (у меня есть 2 домена) на мой домашний сервер. То есть чтобы клиент который набрал domain.com попал ровно на мой домашний сервер с учетом того, что на нем каждый день меняется IP-адрес.
Для решения нам нужно настроить DNS-сервер, а именно следующие записи: SOA, NS, MX, A, CNAME. Важно чтобы мы имели возможность настройкой TTL (time to live), поскольку время жизни наших записей должно быть очень небольшим, буквально 60-120 секунд. В противном случае при смене IP-адреса сервера пользователи долго не смогут попасть на наш сервер (из-за кеширования).
Итак, нам нужен DNS сервер, варианты решения:
Используем сервисы которые предоставляют нам DNS-хостинг
Для этого есть ряд бесплатных сервисов, из которых самым популярным является freedns.afraid.org. На таких сервисах можно добавить свой домен(ы) и получить возможность через API обновлять у них A-запись при помощи небольшого скрипта.
Выглядит вполне неплохо, но подвох в том, что эти сервисы оставляют за собой право довешивать к вашему домену поддомены третьего уровня. То есть вы зарегистрировали у них user.ru, а они спокойно довешают свои сайты вида hello.user.ru, shop.user.ru и так далее. Разумеется от этого можно отказаться, но… за деньги. Платить деньги за такие сервисы смысла я не вижу, поскольку за сравнимые деньги вы можете купить полноценный хостинг на каком-нибудь провайдере без всяких плясок вокруг DNS настроек.
Остальные сервисы рассматривать не будем, а сосредоточимся на втором варианте.
Используем собственный DNS-сервер в связке с DDNS-доменом
Для этого варианта у нас, во-первых, должен быть DDNS-домен (который обновляется при смене IP), например, domain.ddns.net, а во-вторых, придется установить и настроить BIND на нашем сервере.
Всего необходимо сделать ровно 5 шагов. Везде под словами «domain» или «domain.ru» подразумевается ваше имя домена (короткое или полное).
1. Настроить 2 или 3 DDNS-поддомена
Почему 2 или 3? Потому, что ряд регистрантов не разрешит вам использовать домен только с одним NS-сервером. Самое обидно, что не все про это скажут — ваш домен просто не будет работать, но вы не будете понимать почему.
Тут все просто — идем на noip.com, там регистрируем аккаунт и добавляем 3 бесплатных поддомена (больше 3 не даст).
2. Настраиваем собственный DNS-сервер
Создаем зоны (по одной зоне на каждый наш домен):
и собственно файл с настройками зоны:
Примечание: обращаю внимание, что TTL устанавливаем равным 60 секунд. В файле /etc/bind/named.conf.local добавляем подключение нашей зоны:
Все, рестартуем BIND:
И глянем /var/log/syslog чтобы там не было сообщений об ошибках
3. Настроить наш домен(ы)
Идем в панель управления регистратора и там в настройках нашего домена в качестве NS-серверов указываем созданные DDNS-поддомены:
После этого возможно придется подождать несколько часов (или даже сутки) пока настройки среплицируются между всеми серверами.
4. Настроить периодическое обновление IP-адресов
Мой роутер поддерживает обновление IP-адреса на одном домене, но мне нужно это делать сразу для 3-х доменов. Плюс нам надо обновлять IP-адрес в конфиге BIND’а, поэтому напишем скрипт который будет делать:
Скрипт нужно запускать под рутом (чтобы ему хватило прав обновлять конфиги BIND’а и рестартовать его). Добавляем в crontab рута его запуск каждую минуту:
Пару слов про определение текущего IP-адреса. В скрипте выше это делается через резолвинг DDNS-поддомена domain.ddns.net. То есть сначала наш роутер его туда прописывает, а потом мы читаем. Это не очень хороший вариант, поскольку мы завязываемся на роутер и можем потерять несколько минут пока на DDNS-поддомене обновится IP-адрес на актуальный. Все это время наш сервер будет недоступен.
Поэтому у себя я использовал улучшенный вариант, который заодно не лазит в интернет:
В данном варианте мы загружаем главную страницу роутера (через http), дальше регэкспом находим на ней текущий IP-адрес. Разумеется, этот вариант подходит далеко не всем, но на DD-WRT прошивках работает.
5. Настройка роутера
Вывод
Итак, что я получил в итоге:
DDNS (динамический DNS) на роутере: что это, как работает и как пользоваться?
В этой статье я постараюсь простыми словами пояснить, что такое функция динамической системы доменных имен (DDNS) и для каких задач она используется. Чтобы подготовить максимально простую статью, я все проверил на своем оборудовании. Постарался изучить все нюансы и возможные проблемы, с которыми можно столкнуться в процессе настройки.
Что такое DDNS?
Выводы: если провайдер выдает внешний статический IP-адрес (чаще всего нужно отдельно подключать эту услугу) – заморачиваться с настройкой функции «Динамический DNS» не нужно, в этом не смысла, так как у вас уже есть постоянный адрес. Если же у вас динамический внешний IP – настройка DDNS решит эту проблему. Так как после настройки мы получим статический адрес.
Не все так просто: «серые» IP-адреса и DDNS
Сейчас я коротко расскажу, что такое серые и белые внешние IP-адреса, и вы все поймете. Для выхода в интернет провайдер присваивает роутеру, или конкретному устройству внешний (публичный) IP-адрес. Белый, публичный IP-адрес (даже если он динамический) позволяет получить доступ к нашему роутеру из интернета. То есть, этот адрес обеспечивает прямую связь из сети интернет и маршрутизатором.
Если ваш маршрутизатор не умеет определять это автоматически, то есть другой способ выяснить.
Как проверить, «белый» или «серый» IP-адрес выдает провайдер?
Дальше нам нужно зайти на любой сайт, на котором можно посмотреть свой внешний IP-адрес. Например, на https://2ip.ru/
Важно! Убедитесь, что на устройстве, в браузере не включен VPN. Иначе, на сайте будет отображаться не ваш реальный IP-адрес, а адрес VPN-сервера. Используйте стандартный браузер.
Если WAN IP-адрес в настройках роутера и на сайте отличатся, значит провайдер выдает вам серый IP-адрес. А если они совпадают – то белый. В моем случае адреса разные, значит у меня серый IP-адрес и DDNS настроить не получится.
В этом случае (если адрес серый) можно позвонить в поддержку интернет-провайдера, и сказать, что вам нужен белый внешний IP-адрес. Скорее всего они сделают вид, что не понимают о чем идет речь, и начнут рассказывать вам о статических и динамических адресах. Мол это одно и то же, подключите статический IP у нас и все заработает. Да, статический IP будет белым, но как правило, это платная услуга. Да и как мы уже выяснили выше в статье, настраивать DDNS тогда уже не нужно.
Как работает динамический DNS на роутере?
Безопасность при использовании Dynamic DNS
В первую очередь нужно установить надежный пароль администратора роутера. Об этом я писал в статье как на роутере поменять пароль с admin на другой. Если там есть возможность сменить имя пользователя – смените. Даже если кто-то узнает адрес вашего роутера и перейдет по нему, то не зная логина и пароля, он не сможет получить доступ к настройкам.
К маршрутизатору подключена IP-камера, сетевое хранилище NAS? Они также должны быть защищены хорошим паролем. Стандартное имя пользователя (admin) я так же рекомендую сменить. Сделать это можно в настройках этих устройств.
Если вы, например, планируете использовать адрес DDNS только для доступа к FTP-серверу, а доступ к панели управления роутером вам не нужен, то убедитесь, что удаленный доступ отключен в настройках роутера.
Выводы
Функцию DDNS можно настроить только на том роутере, который получает от провайдера внешний, белый, динамический IP-адрес. Если роутер получает статический внешний (WAN) IP-адрес, то в этой функции нет никакого смысла.
Если провайдер не может, или не хочет выдавать вам белый WAN IP-адрес, а вы не хотите, или нет возможности подключить услугу «Статические IP-адрес», то изучите информацию по своему роутеру. Возможно, там есть способ получать доступ к настройкам через облако. Но вот доступ файлам, IP-камере, NAS, через облако скорее всего не настроить.