Документация: ПО Факел — разрабатываемая версия
Динамический 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 |
Создаёт конфигурацию |
2 |
set service dns dynamic name |
Обновление будет выполняться при изменении адреса на интерфейсе |
3 |
set service dns dynamic name |
Задаёт обновляемую DNS-запись |
4 |
set service dns dynamic name |
Задаёт DNS-сервер |
5 |
set service dns dynamic name |
Задаёт обновляемую DNS-зону |
6 |
set service dns dynamic name |
Указывает файл ключа TSIG |
7 |
set service dns dynamic name |
Устанавливает TTL записи равным |
В результате будет получена следующая конфигурация:
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>¶
<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>¶
<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>¶
<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> для обновляемой записи ресурса конфигурации <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¶
Синтаксис:
show dns dynamic status
Режим: «Администрирование».
Уровень привилегий: «Администратор».
log dns dynamic¶
Синтаксис:
show log dns dynamic
Режим: «Администрирование».
Уровень привилегий: «Администратор».
monitor log dns dynamic¶
Синтаксис:
monitor log dns dynamic
Режим: «Администрирование».
Уровень привилегий: «Администратор».
restart dns dynamic¶
Синтаксис:
restart dns dynamic
Режим: «Администрирование».
Уровень привилегий: «Администратор».
clear dns dynamic cache¶
Синтаксис:
clear dns dynamic cache
Режим: «Администрирование».
Уровень привилегий: «Администратор».
reset dns dynamic¶
Синтаксис:
reset dns dynamic
Режим: «Администрирование».
Уровень привилегий: «Администратор».