Динамическое обновление dns что это

Обновлено: 04.07.2024

Необходимость в таком обновлении возникла у меня в такой ситуации: на линуксе поднят openvpn сервер, к нему коннектятся удаленные клиенты. Openvpn сервер сам динамически выдает адреса клиентам и, хотелось бы, чтобы он и создавал dns записи с common name сертификата на DNS сервере, который интегрирован в Active Directory. Тут можно пойти простым путем, и поставить в свойстве зоны «Динамическое обновление» опцию «Небезопасные и безопасные», но тогда любой, кто имеет доступ к DNS серверу, сможет менять записи зоны – не комильфо. Если поставить «Только безопасные», то DNS сервер обязательно будет требовать аутентификацию по протоколу GSS-TSIG. Дальше пойдет речь о том, как это все настроить.

Для начала, создаём пользователя домена с минимальными правами, например ddns и задаём ему сложный пароль и опцию «Срок действия пароля не ограничен». У этого пользователя должно быть достаточно прав на изменение записей dns-зоны. В свойставх dns-зоны должна быть выбрана опция «Только безопасные обновления».

Устанавливаем Kerberos клиент:


Хотя клиент будет работать даже в такой конфигурации:


Для Kerberos важным моментом является синхронность часов севера и клиента. Можно установить службу ntpd – она будет поддерживать корректное время:


С помощью ktutil создадим keytab файл, в котором будут храниться данные для аутентификации пользователя ddns:


Теперь можно проверить, насколько всё сделано правильно:


Никакого вывода быть не должно. Можно посмотреть полученные билеты:


Если keytab поместить по умолчанию (etc/krb5.keytab), то можно сократить команду:


Теперь остается только настроить openvpn. Для этого в конфигурационном файле сервера openvpn должна быть опция:


Сам скрипт learn-address.sh:


Подытожу: Ключевым моментом является опция gsstsig в файле, который передается утилите nsupdate. При этом должен быть получен билет (ticket) от контроллера домена с помощью kinit &ltuser&gt.

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

Начиная с операционной системы Windows 2000 сервера Windows поддерживают динамические обновления. До появления операционной системы Windows 2000 динамические обновления поддерживались службой WINS, поэтому служба WINS очень подходила для преобразования имен клиентских систем под управлением операционных систем Microsoft.

В современном мире серверы WINS продолжают использоваться в основном для обратной совместимости. Если в сети используются исключительно операционные системы Windows 2000 и Windows XP и при этом запущена служба WINS, то ее можно смело хоронить.

Вернемся к динамическим обновлениям. Динамические обновления могут запрашиваться из двух источников: компьютеры под управлением операционной системы Windows 2000 или более поздней версией и серверы DHCP на основе операционной системы Windows 2000 или более поздней версии. По умолчанию, клиенты под управлением операционной системы Windows 2000 автоматически регистрируют имя узла на сервере DNS.

При использовании сервера DHCP клиенты регистрируют имя узла, а сервер DHCP регистрирует адрес, соответствующий имени узла клиента. Для клиентов под управлением операционной системы, выпущенной до Windows 2000, сервер DHCP можно заставить динамически регистрировать и имя и адрес IP клиента.

Динамическое обновление со стороны клиента или сервера DHCP совершенно не имеет смысла, если сервер DNS откажется принять такой обновление. Динамические обновления включаются или выключаются на вкладке Общие (General) диалогового окна свойств зоны. Существует три варианта настройки динамических обновлений:

  • Запретить (No) — динамические обновления запрещены
  • Разрешить (Yes) —Все динамические обновления разрешены (самый нежелательный вариант с точки зрения безопасности)
  • Только безопасные обновления — этот вариант доступен только для зон, интегрированных в Active Directory. Только системы, чьи учетные записи входят в Active Directory, могут динамически обновлять данные зоны DNS (это самый безопасный вариант динамических обновлений).

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

Это особенно важно, если каждый сетевой интерфейс находится в другой логической подсети, так как клиенты в одной подсети могут получать от сервера DNS адрес IP, входящий в другую логическую подсеть.

Если маршрутизация настроена неправильно, то клиенты не смогут получать доступ к серверу с несколькими сетевыми интерфейсами. Альтернативой отключению динамического обновления является включение порядка на масках подсети в настройках сервера DNS. Этот способ будет рассматриваться далее.


Динамический DNS автоматически обновляет записи DNS при изменении IP-адреса. Также он используется в больших сетях, в которых размещаются внутренние службы, и используются собственные внутренние DNS- и DHCP-серверы.

Однако небольшие компании и домашние сети обычно не имеют собственного DNS-сервера, так зачем им динамический DNS?

В этом руководстве мы рассмотрим, как работает динамический DNS и как настроить его на домашнем маршрутизаторе.

Как работают службы динамического DNS и зачем их использовать?

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

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

В следующем обсуждении мы предположим, что хотим сделать веб-сервер, расположенный на внутреннем сервере, доступным в Интернете.

На приведенной ниже сетевой схеме показана конфигурация.

схема работы ddns

Чтобы сделать веб-сервис доступным в Интернете, мы используем метод, называемый переадресацией портов (дополнительные сведения см. В руководствах « Переадресация портов» и « Внутренний или внешний IP-адрес» ).

Теперь наш веб-сервер кажется нашему внешнему клиенту расположенным в IPex и на порту Portex.

Если мы введем сюда типичные числа, мы увидим наш веб-сервер по адресу

IP-адрес = 81.157.34.43 и порт 80

Все, что нам нужно сделать, это сказать нашему внешнему клиенту использовать эти значения.

Однако внешний IP-адрес IPex ( 81.157.34.43 ) также может быть динамически назначен интернет-провайдером, и мы не можем сделать его статическим, если не заплатим за статический адрес.

Кроме того, внешний клиент должен запомнить IP-адрес .

Службы динамического DNS

Если мы теперь представим динамический DNS-сервис в картине.

Затем мы назначаем имени внешний IP-адрес .

Конечно, мы могли бы сделать это вручную , но это было бы очень ненадежно.

Вместо этого возможность автоматического обновления записей DNS-сервера встроена в большинство NAT-маршрутизаторов.

Вот снимок экрана страницы конфигурации динамического DNS моего маршрутизатора NAT (BT Home Hub).

настройка ddns в роутере

Конфигурация включает в себя ввод имени вашего DDNS- провайдера и ваших данных для входа.

Когда вы примените его, вы должны получить подтверждение подключения.

статус подключения к ddns

Если вы получили неверное имя пользователя / пароль, проверьте данные для входа и повторите попытку.

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

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

Все основные провайдеры работают одинаково, и процесс регистрации прост. В этой статье используется NO-IP.

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

Ниже приведена форма имени для No-IP.

настройки ddns для no-ip.com

Динамический DNS (DDNS) не поддерживается!

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

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

Тестирование вашей конфигурации

Перейдите к команде ping и проверьте, что вы можете получить доступ к IP-адресу, выполнив проверку связи с доменным именем, которое состоит из имени хоста + имени домена.

тестирование ddns

Обычное использование

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

Общие вопросы и ответы

В- В чем разница между динамическим DNS и DNS?

В- Как мне найти свой внешний IP-адрес?
О- Зайдите в Google и введите свой IP-адрес.

В- Нужен ли мне DDNS?
О- Обычно нет. Он нужен вам только при предоставлении услуг клиентам из Интернета.

Резюме

Динамический DNS (DDNS) очень полезен, если вам нужно получить доступ к внутренним сетевым службам через Интернет.

Он не предназначен для размещения бизнес-сайта, для этого вам понадобится стандартный веб-хостинг.


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

Когда происходит изменение DNS, остальной части Интернета требуется время, чтобы это заметить. Некоторые примеры таких изменений: обновление IP-адреса сервера, обновление записи MX для размещения вашей электронной почты в новом месте или добавление нового веб-сайта. Параметр TTL сообщает Интернету, как долго ждать, прежде чем вернуться для проверки вашей записи DNS на предмет потенциально новой информации.

Если для параметра TTL DNS установлено значение 12 часов, ваши записи DNS будут кэшироваться в течение 12 часов, прежде чем срок их действия истечет, и новая информация вступит в силу.

TTL на доменах IONOS устанавливается на срок до 1 часа для всех записей A, AAA, MX, TXT и CNAME.

Как долго длится TTL?

Обратите внимание, что даже если вы измените TTL для своего доменного имени, это не означает, что автоматически каждая сеть в Интернете будет соблюдать это значение. Многие поставщики интернет-услуг (ISP) игнорируют настройки TTL и проверяют внешние записи DNS по своему собственному расписанию.

Лучшие практики DNS TTL

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

По крайней мере, за 24 часа до начала обновите TTL до более короткого значения. Например, вы можете изменить его на 3600 (1 час).

Минимальное значение TTL DNS

Если вы планируете в ближайшее время внести изменения в DNS, вам следует начать с установки низкого значения TTL. Это помогает обеспечить более быстрое распространение ваших изменений и их распознавание в Интернете.

Установите для минимального значения TTL DNS значение больше 0. Никогда не устанавливайте для TTL DNS значение 0. Число 0 не определено в стандарте, и это может привести к игнорированию или отклонению вашей информации DNS.

Максимальное значение TTL DNS

Рекомендация: для большинства пользователей максимальное значение TTL для DNS 86400 (24 часа) является хорошим выбором.

Динамический DNS TTL

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

Как выполнить поиск в DNS TTL

Узнайте, как проверить настройки TTL для вашего веб-сайта.

Linux, Unix или Mac OS X

В оболочке (командной строке) введите:

Это вернет информацию DNS (включая значения TTL) для имени домена:

Windows

В Windows вы можете использовать эту nslookupутилиту для проверки значений TTL DNS для веб-сайта.

Сначала откройте окно командной строки.

• Windows 7: Пуск -> Все программы -> Стандартные -> Командная строка • Windows 10: щелкните правой кнопкой мыши кнопку «Пуск» -> Выполнить -> введите «cmd» в поле и нажмите «ОК».

Чтобы запустить nslookup и получить значения TTL, введите:

Это вернет информацию авторитетного сервера имен для этого домена, включая TTL по умолчанию в секундах и часах.

В этом случае TTL веб-сайта установлен на 3600 секунд (1 час).

В сети

Есть несколько веб-сайтов, которые позволяют использовать утилиту dig для бесплатного поиска DNS TTL.


Как видите, значение TTL DNS для записей этого домена установлено на 21599 секунд (6 часов).

Как изменить TTL, если у вас есть собственный DNS

Если вы используете собственный DNS-сервер, для изменения TTL достаточно отредактировать файл зоны и убедиться, что ваша DNS-служба принимает изменения. Специфика будет зависеть от того, какую службу DNS вы используете, а в некоторых случаях от того, какую версию Linux или Unix вы используете.

После внесения изменений вы можете проверить, вступили ли они в силу, запросив у вашего сервера новую информацию DNS с помощью команды:

Поиск файла зоны: Red Hat и CentOS

Поиск файла зоны: Debian и Ubuntu

Редактирование файла зоны

В файле зоны вам нужно будет отредактировать две строки: TTL и серийный номер.

  1. Обновите TTL до значения, которое вы хотите использовать.
  2. Обновите серийный номер, чтобы BIND зарегистрировал изменение.

TTL будет первой строкой файла и будет выглядеть примерно так:

Просто измените число на значение TTL, которое вы хотите установить, в секундах.

Обновление серийного номера

В типичной конфигурации серийный номер нужно просто увеличить. Например, серийный номер 1234будет обновлен до 1235.

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

Сохраните и выйдите из файла.

Перед тем, как перезагрузить изменения, проверьте синтаксис основной конфигурации BIND с помощью команды:

Если все в порядке, проверьте синтаксис только что отредактированного файла зоны с помощью команды:

Если файлы проходят проверку синтаксиса, перезагрузите файл зоны в BIND с помощью команды:

Необязательно: в Red Hat и CentOS, если systemctlон был настроен, вы можете перезапустить BIND вместо этого, используя команду:

Несвязанный

Unbound недавно заменил BIND в качестве DNS-сервера по умолчанию во многих системах BSD, включая FreeBSD 10 и выше и OpenBSD 5.6 и выше.

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

  • OpenBSD :/var/unbound/etc/unbound.conf
  • FreeBSD 10.0 и ранее :/usr/local/etc/unbound/unbound.conf
  • FreeBSD 10.1 и выше :/etc/unbound/unbound.conf
  • Red Hat и CentOS 7 :/etc/unbound/unbound.conf

В файле конфигурации Unbound по умолчанию не указаны значения TTL. Вы можете добавить TTL в файл несвязанной зоны со следующими атрибутами:

  • cache-max-ttl Максимальный период времени для кеширования TTL. По умолчанию 86400 секунд (1 день).
  • cache-min-ttl Минимальная продолжительность кеширования TTL. По умолчанию 0 секунд. Примечание: официальная документация рекомендует оставить это значение равным нулю.

Чтобы изменить или установить TTL, отредактируйте unbound.conf файл:

Проверьте файл для cache-max-ttl и cache-min-ttl атрибутов. Если они уже существуют, вы будете их редактировать. Если их нет, вам нужно будет добавить их:

Поместите эти конфигурации в основной блок команд сервера, затем сохраните и выйдите из файла.

После редактирования файла конфигурации вы можете протестировать конфигурацию с помощью команды:

Наконец, перезапустите Unbound, чтобы изменения вступили в силу с помощью команды:

Читайте также: