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

Описание#

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

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

Настройка#

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

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

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

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

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

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

  • Register DNS record example.fakel.io on DNS server ns1.fakel.io

  • Use auth key file at /config/auth/my.key

  • Set TTL to 300 seconds

admin@fakel# show service dns dynamic
 interface eth0.7 {
     rfc2136 Fakel-DNS {
         key /config/auth/my.key
         record example.fakel.io
         server ns1.fakel.io
         ttl 300
         zone fakel.io
     }
 }

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

#
# ddclient configuration for interface "eth0.7":
#
use=if, if=eth0.7

# RFC2136 dynamic DNS configuration for example.fakel.io.ns1.fakel.io
server=ns1.fakel.io
protocol=nsupdate
password=/config/auth/my.key
ttl=300
zone=fakel.io
example.fakel.io

Примечание

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

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

Основные настройки#

set service dns dynamic interface <interface> rfc2136 <service-name>#

Создает новую конфигурацию обновления DNS для RFC 2136, которая будет обновлять IP-адрес, назначенный <interface> на сервисе, настроенном в разделе <service-name>.

set service dns dynamic interface <interface> rfc2136 <service-name> key <keyfile>#

Определяет файл <keyfile>, содержащий секретный ключ RNDC, совместно используемый с удаленным DNS сервером. Это опция является обязательной.

set service dns dynamic interface <interface> rfc2136 <service-name> server <server>#

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

set service dns dynamic interface <interface> rfc2136 <service-name> zone <zone>#

Задает обновляемую DNS <zone>. Это опция является обязательной.

set service dns dynamic interface <interface> rfc2136 <service-name> record <record>#

Задает DNS запись <record>, которая должна обновляться. Этот параметр может быть задан несколько раз. Это опция является обязательной.

set service dns dynamic interface <interface> rfc2136 <service-name> ttl <ttl>#

Задает значение TTL <ttl> для записи ресурса. Значение по умолчанию равно 600 секундам.

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

set service dns dynamic interface <interface> service <service> host-name <hostname>#

Определяет динамическое имя хоста <hostname>, идентифицированным по определенному сервису <service>, при изменении IP адреса на интерфейсе <interface>.

set service dns dynamic interface <interface> service <service> login <username>#

Задает имя пользователя``<username>``, используемое при аутентификации запроса на обновление для службы определенной в поле <service>.

set service dns dynamic interface <interface> service <service> password <password>#

Задает пароль <password>, используемый при аутентификации запроса на обновление для службы определенной в поле <service>.

set service dns dynamic interface <interface> service <service> protocol <protocol>#

Определяет протокол <protocol>, используемый при аутентификации запроса на обновление для службы определенной в поле <service>.

set service dns dynamic interface <interface> service <service> server <server>#

Определяет сервер <server>, используемый при аутентификации запроса на обновление для службы определенной в поле <service>.

set service dns dynamic interface <interface> service <service> zone <zone>#

Задает зону DNS <zone> для обновления. Это параметр доступен только для CloudFlare.

Настройка для работы с NAT#

По умолчанию ddclient обновляет динамическую dns-запись, используя IP-адрес, непосредственно подключенный к интерфейсу. Если ваше устройство находится за NAT, то запись будет обновлена и будет указывать на ваш внутренний IP адрес.

Чтобы ddclient определял внешние IP адреса необходимо выполнить следующие настройки:

set service dns dynamic interface <interface> use-web url <url>#

Задает значение параметра <url> для определения вашего IP адреса. ddclient загрузит <url> и попытается извлечь ваш IP адрес из ответа.

set service dns dynamic interface <interface> use-web skip <pattern>#

Задает значение параметра <pattern>. Клиент ddclient будет пропускать все адреса, расположенные до строки, заданной в поле <pattern>.