Документация: ПО Факел — разрабатываемая версия

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

Обзор

ПО Факел умеет обновлять удаленную DNS запись, когда интерфейс получает новый IP адрес.

Поддерживаются два метода обновления DNS записей. Первый из них, в соответствии с RFC 2136, посылает обновления непосредственно DNS-серверу. Во втором случае используется сторонний сервис, например DynDNS.com или любой другой подобный сайт. Этот метод использует HTTP запросы для передачи нового IP адреса. В ПО Факел можно настроить оба способа.

Оба способа настраиваются в одном разделе конфигурации service dns dynamic name <name>; способ обновления определяется параметром protocol — значение nsupdate соответствует обновлению по RFC 2136, любое другое значение — обновлению через сторонний HTTP-сервис.

Пример настройки

Пример настройки динамической смены DNS записи по протоколу RFC 2136.

Для настройки динамической смены DNS будут выполнены следующие настройки:

  • Зарегистрируйте DNS запись example.fakel.io на DNS сервере ns1.fakel.io.

  • Используйте файл ключей аутентификации по адресу /config/auth/my.key.

  • Установите TTL равным 300 секундам.

  • Обновление будет выполняться при изменении адреса на интерфейсе eth0.7.

Шаг

Команда

Описание

1

set service dns dynamic name Fakel-DNS protocol nsupdate

Создаёт конфигурацию Fakel-DNS для обновления DNS по протоколу RFC 2136

2

set service dns dynamic name Fakel-DNS address interface eth0.7

Обновление будет выполняться при изменении адреса на интерфейсе eth0.7

3

set service dns dynamic name Fakel-DNS host-name example.fakel.io

Задаёт обновляемую DNS-запись example.fakel.io

4

set service dns dynamic name Fakel-DNS server ns1.fakel.io

Задаёт DNS-сервер ns1.fakel.io, на который отправляются обновления

5

set service dns dynamic name Fakel-DNS zone fakel.io

Задаёт обновляемую DNS-зону fakel.io

6

set service dns dynamic name Fakel-DNS key /config/auth/my.key

Указывает файл ключа TSIG /config/auth/my.key

7

set service dns dynamic name Fakel-DNS ttl 300

Устанавливает TTL записи равным 300 секундам

В результате будет получена следующая конфигурация:

fakel@fakel# show service dns dynamic
 name Fakel-DNS {
     address {
         interface eth0.7
     }
     host-name example.fakel.io
     key /config/auth/my.key
     protocol nsupdate
     server ns1.fakel.io
     ttl 300
     zone fakel.io
 }

Примечание

Можно также поддерживать в актуальном состоянии различные зоны DNS. Для этого достаточно создать новый узел конфигурации: set service dns dynamic name <other-name>.

Список команд

Режим «Конфигурирование»


service dns dynamic name <name>

Описание:
Создаёт конфигурацию динамического обновления DNS с именем <name>.

Синтаксис:

  • set service dns dynamic name <name>

  • delete service dns dynamic name <name>

  • show service dns dynamic name

Аргументы:

  • <name> — имя конфигурации динамического обновления DNS.

Режим: «Конфигурирование».


service dns dynamic name <name> protocol <protocol>

Описание:
Определяет протокол <protocol>, используемый для обновления DNS-записи для конфигурации <name>.
Значение nsupdate соответствует обновлению по RFC 2136 непосредственно на DNS-сервере; в этом случае используются параметры key, server и zone, а параметры username/password не задаются. Любое другое значение соответствует одному из сторонних DDNS-сервисов (например, dyndns2); в этом случае, как правило, требуются username и password.

Синтаксис:

  • set service dns dynamic name <name> protocol <protocol>

  • delete service dns dynamic name <name> protocol <protocol>

  • show service dns dynamic name <name> protocol

Аргументы:

  • <name> — имя конфигурации динамического обновления DNS.

  • <protocol> — протокол обновления. Формат: строка.

Режим: «Конфигурирование».


service dns dynamic name <name> address interface <interface>

Описание:
Указывает интерфейс <interface>, при изменении IP-адреса на котором должна обновляться DNS-запись конфигурации <name>.

Вместо интерфейса адрес можно определять с помощью HTTP(S)-запроса (параметр address web, см. ниже). Одновременно можно задать только один из этих способов.

Синтаксис:

  • set service dns dynamic name <name> address interface <interface>

  • delete service dns dynamic name <name> address interface <interface>

  • show service dns dynamic name <name> address interface

Аргументы:

  • <name> — имя конфигурации динамического обновления DNS.

  • <interface> — имя интерфейса.

Режим: «Конфигурирование».


service dns dynamic name <name> host-name <hostname>

Описание:
Задаёт DNS-имя <hostname>, которое должно обновляться при изменении IP-адреса для конфигурации <name>. Параметр можно указать несколько раз.

Синтаксис:

  • set service dns dynamic name <name> host-name <hostname>

  • delete service dns dynamic name <name> host-name <hostname>

  • show service dns dynamic name <name> host-name

Аргументы:

  • <name> — имя конфигурации динамического обновления DNS.

  • <hostname> — обновляемое DNS-имя. Можно задать несколько значений.

Режим: «Конфигурирование».


service dns dynamic name <name> server <server>

Описание:
Задаёт адрес или имя сервера <server>, на который отправляются обновления DNS-записи для конфигурации <name>.

Синтаксис:

  • set service dns dynamic name <name> server <server>

  • delete service dns dynamic name <name> server <server>

  • show service dns dynamic name <name> server

Аргументы:

  • <name> — имя конфигурации динамического обновления DNS.

  • <server> — IPv4- или IPv6-адрес либо полное доменное имя сервера.

Режим: «Конфигурирование».


service dns dynamic name <name> zone <zone>

Описание:
Задаёт обновляемую DNS-зону <zone> для конфигурации <name>.

Синтаксис:

  • set service dns dynamic name <name> zone <zone>

  • delete service dns dynamic name <name> zone <zone>

  • show service dns dynamic name <name> zone

Аргументы:

  • <name> — имя конфигурации динамического обновления DNS.

  • <zone> — имя DNS-зоны.

Режим: «Конфигурирование».


service dns dynamic name <name> key <keyfile>

Описание:
Определяет файл <keyfile>, содержащий секретный ключ TSIG, совместно используемый с удалённым DNS-сервером, для конфигурации <name>. Требуется при значении параметра protocol равном nsupdate.

Синтаксис:

  • set service dns dynamic name <name> key <keyfile>

  • delete service dns dynamic name <name> key <keyfile>

  • show service dns dynamic name <name> key

Аргументы:

  • <name> — имя конфигурации динамического обновления DNS.

  • <keyfile> — файл в каталоге /config/auth.

Режим: «Конфигурирование».


service dns dynamic name <name> ttl <ttl>

Описание:
Задаёт значение TTL <ttl> для обновляемой записи ресурса конфигурации <name>.

Синтаксис:

  • set service dns dynamic name <name> ttl <ttl>

  • delete service dns dynamic name <name> ttl <ttl>

  • show service dns dynamic name <name> ttl

Аргументы:

  • <name> — имя конфигурации динамического обновления DNS.

  • <ttl> — время жизни записи в секундах. Формат: целое число. Диапазон значений: от 0 до 2147483647.

Режим: «Конфигурирование».


service dns dynamic name <name> username <username>

Описание:
Задаёт имя пользователя <username>, используемое при аутентификации запроса на обновление DNS-записи для конфигурации <name>.

Синтаксис:

  • set service dns dynamic name <name> username <username>

  • delete service dns dynamic name <name> username <username>

  • show service dns dynamic name <name> username

Аргументы:

  • <name> — имя конфигурации динамического обновления DNS.

  • <username> — имя пользователя.

Режим: «Конфигурирование».


service dns dynamic name <name> password <password>

Описание:
Задаёт пароль <password>, используемый при аутентификации запроса на обновление DNS-записи для конфигурации <name>.

Синтаксис:

  • set service dns dynamic name <name> password <password>

  • delete service dns dynamic name <name> password <password>

  • show service dns dynamic name <name> password

Аргументы:

  • <name> — имя конфигурации динамического обновления DNS.

  • <password> — пароль.

Режим: «Конфигурирование».


service dns dynamic name <name> address web url <url>

Описание:
Задаёт значение параметра <url> для определения внешнего IP-адреса конфигурации <name>. Система загрузит <url> и попытается извлечь IP-адрес из ответа.

По умолчанию система определяет внешний IP-адрес по интерфейсу (параметр address interface). Если устройство находится за NAT и на интерфейсе виден только внутренний адрес, вместо интерфейса можно указать HTTP(S)-ресурс, из ответа которого будет извлечён внешний адрес.

Синтаксис:

  • set service dns dynamic name <name> address web url <url>

  • delete service dns dynamic name <name> address web url <url>

  • show service dns dynamic name <name> address web url

Аргументы:

  • <name> — имя конфигурации динамического обновления DNS.

  • <url> — адрес HTTP(S)-ресурса.

Режим: «Конфигурирование».


service dns dynamic name <name> address web skip <pattern>

Описание:
Задаёт значение параметра <pattern> для конфигурации <name>. Система будет пропускать все данные, расположенные до строки, заданной в поле <pattern>, при извлечении IP-адреса из ответа.

Синтаксис:

  • set service dns dynamic name <name> address web skip <pattern>

  • delete service dns dynamic name <name> address web skip <pattern>

  • show service dns dynamic name <name> address web skip

Аргументы:

  • <name> — имя конфигурации динамического обновления DNS.

  • <pattern> — пропускаемая строка.

Режим: «Конфигурирование».


Режим «Администрирование»


dns dynamic status

Описание:
Отображает состояние записей динамического DNS из кэша: имя узла, IPv4- и IPv6-адреса, статус обновления каждого адреса и время последнего обновления. Если динамический DNS не настроен, выводит сообщение об этом.

Синтаксис:

  • show dns dynamic status

Режим: «Администрирование».

Уровень привилегий: «Администратор».


log dns dynamic

Описание:
Отображает записи журнала динамического DNS с момента загрузки системы.

Синтаксис:

  • show log dns dynamic

Режим: «Администрирование».

Уровень привилегий: «Администратор».


monitor log dns dynamic

Описание:
Следит за появлением новых записей в журнале динамического DNS.

Синтаксис:

  • monitor log dns dynamic

Режим: «Администрирование».

Уровень привилегий: «Администратор».


restart dns dynamic

Описание:
Перезапускает динамический DNS. Если динамический DNS не настроен, выводит сообщение об этом и ничего не перезапускает.

Синтаксис:

  • restart dns dynamic

Режим: «Администрирование».

Уровень привилегий: «Администратор».


clear dns dynamic cache

Описание:
Очищает кэш динамического DNS. Динамический DNS не перезапускается.

Синтаксис:

  • clear dns dynamic cache

Режим: «Администрирование».

Уровень привилегий: «Администратор».


reset dns dynamic

Описание:
Сбрасывает состояние динамического DNS: очищает кэш и перезапускает динамический DNS, после чего записи обновляются заново. Если динамический DNS не настроен, выводит сообщение об этом.

Синтаксис:

  • reset dns dynamic

Режим: «Администрирование».

Уровень привилегий: «Администратор».