CLI

Обзор

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

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

Настройка

gslb service NAME

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

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

[no] access-point type <udp> ip A.B.C.D [port (0-65535)] [vrf VRF]

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

origin-domain-name NAME

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

[no] ttl [(0-2147483647)]

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

[no] ttl-gslb [(0-2147483647)]

Задать значение TTL по умолчанию для ресурсных записей типа GSLB. По умолчанию — 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 вы переходите в режим конфигурации этой записи. В этом режиме доступны следующие команды:

[no] ttl [(0-2147483647)]

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

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-адрес одного из серверов активной группы, используя настроенный для этой группы алгоритм балансировки нагрузки. Если у группы выключена балансировка (алгоритм none), GSLB-сервис возвращает IP-адреса всех серверов группы, упорядоченных по убыванию весов.

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

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

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

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

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

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

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

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

Пример

gslb target-group-ipv4 webgroup1
  threshold relative 75
  health-monitor webmonitor
  port 443
  worker ip 5.5.5.6 weight 100
  worker ip 5.5.5.7 weight 50
exit
!
gslb target-group-ipv4 webgroup2
  threshold relative 75
  health-monitor webmonitor
  port 443
  worker ip 5.5.5.8 weight 100
  worker ip 5.5.5.9 weight 50
exit
!
gslb target-group-ipv4 mailgroup
  algorithm wrr
  health-monitor mailmonitor
  port 25
  worker ip 5.5.5.10
  worker ip 5.5.5.11
exit
!
gslb service gs1
  access-point type udp ip 5.5.5.5
  origin-domain-name company.ru
  ttl 300
  ttl-gslb 60
  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