CLI

Обзор

GSLB-сервис действует как авторитетный DNS-сервер, распределяя DNS-ответы на основе состояния и политик Target-групп. Он принимает DNS-запросы и динамически отвечает IP-адресами из соответствующей группы.

Каждый сервис может определять несколько DNS Access points, доменных имён, ресурсных записей (включая MX, TXT и GSLB) и политик поведения, таких как TTL и маскирование префиксов IP-адресов клиентов.

Настройка

gslb service NAME

Создать GSLB-сервис.

В этом режиме конфигурации доступны следующие команды:

access-point type udp ip A.B.C.D [port]

Добавить Access point к GSLB-сервису. По умолчанию порт — 53. Access point определяет IP-адрес и порт, на которых GSLB-сервис принимает входящие DNS-запросы. Для одного GSLB-сервиса можно настроить несколько Access points для обеспечения отказоустойчивости, multi-site развёртываний или anycast-распределения.

origin-domain-name NAME

Задать базовое доменное имя для относительных записей. По умолчанию источник — корень доменного дерева (.).

ttl (0-2147483647)

Задать значение TTL по умолчанию для ресурсных записей. Определяет, как долго запись может храниться в кэше после получения. По умолчанию — 0 (без кэширования).

prefix-length-ipv4 (0-32)

Задать количество старших битов из IPv4-адреса клиента, используемых для хеширования в алгоритмах wsh и maglev-ip. По умолчанию — 32 бита (весь адрес).

prefix-length-ipv6 (0-128)

Задать количество старших битов из IPv6-адреса клиента, используемых для хеширования в алгоритмах wsh и maglev-ip. По умолчанию — 128 бит (весь адрес).

Добавление ресурсных записей

rr NAME type <mx|txt|gslb> ...

Создать ресурсную запись с доменным именем NAME и указанным типом (MX, TXT или GSLB). Доменное имя может быть абсолютным (заканчивается точкой) или относительным.

MX-запись

rr NAME type mx [ttl (0-2147483647)] data (0-65535) EXCHANGE

Создать ресурсную запись типа MX со следующими ключами:

  • ttl — переопределяет глобальный TTL для ресурсных записей.

  • data — приоритет (предпочтение) почтового сервера.

  • EXCHANGE — доменное имя почтового сервера (относительное или абсолютное).

TXT-запись

rr NAME type txt [ttl (0-2147483647)] id (0-65535) data STRINGS

Создать ресурсную запись типа TXT со следующими ключами:

  • ttl — переопределяет глобальный TTL для ресурсных записей.

  • id — идентификатор ресурсной записи.

  • data STRINGS — последовательность строк. Строки разделяются пробелами и/или табуляцией. Если строка содержит пробелы или табуляцию, она должна быть заключена в двойные кавычки. Если внутри строки в кавычках встречается двойная кавычка, перед ней должен стоять обратный слэш, который сам не включается в итоговую строку. Например, следующая запись определяет три строки: string_one "string two" "string \"three\""

GSLB-запись

rr NAME type gslb <ipv4>

Создать ресурсную запись типа GSLB.

После создания ресурсной записи типа GSLB вы переходите в режим конфигурации этой записи. В этом режиме доступны следующие команды:

primary-target-group NAME

Задать основную Target-группу.

standby-target-group NAME

Задать резервную Target-группу.

final-target-group NAME [ttl (0-2147483647)]

Задать финальную Target-группу. Параметр ttl определяет TTL для ресурсных записей с IP-адресами из финальной группы.

priority <primary|equal>

Задать относительный приоритет основной и резервной групп. По умолчанию — primary.

Логика выбора активной группы

При получении DNS-запроса на IP-адрес, привязанный к доменному имени (запрос A-записи), GSLB-сервис возвращает IP-адрес одного из серверов активной группы, используя настроенный для этой группы алгоритм балансировки нагрузки.

Логика выбора активной группы:

  1. Если обе группы — основная и резервная — доступны:

    1. Если приоритет установлен в primary, активной является основная группа.

    2. Если приоритет установлен в equal, активной является группа, которая стала доступной первой.

  2. Если доступна только одна из групп — основная или резервная — то она становится активной.

  3. Если обе группы — основная и резервная — недоступны, а финальная группа доступна, то активной становится финальная группа.

  4. Если все три группы недоступны, GSLB-сервис возвращает пустой ответ.

  5. Если какая-либо группа не указана, она считается недоступной.

Пример

gslb service gs1
  access-point type udp ip 192.168.1.1
  origin-domain-name company.com
  ttl 300

  rr mail type mx data 10 mailserver
  rr mail type txt id 0 data "favorite drink=orange juice"

  rr mailserver type gslb ipv4
    primary-target-group mailgroup
  exit

  rr www type gslb ipv4
    primary-target-group webgroup1
    standby-target-group webgroup2
  exit
exit