Настройка RHI#

RHI (Route Health Injection) позволяет динамически управлять маршрутами, анонсируемыми протоколами динамической маршрутизации, например BGP и OSPF, на основе данных о состоянии апстримов в балансировщике нагрузки. RHI позволяет автоматически отзывать префиксы при недоступности апстримов, минимизируя возможные циклы объявлений и отзывов. Апстрим считается недоступным, если все его бэкенды не прошли проверки работоспособности (health probes).

Для работы RHI необходимо:

  1. Настроить BGP или OSPF в зависимости от свойств сети (через командную строку, примеры см. ниже).

  2. Задать проверки работоспособности для балансировщика нагрузки (в консоли Angie ADC, пример см. ниже).

  3. Задать конфигурацию RHI (в консоли Angie ADC, инструкцию см. ниже).

Настройка BGP#

Настройка BGP проводится через командную строку.

Пример#

hostname angie-va
no ipv6 forwarding
ip prefix-list myapp1_pair seq 5 permit 2.2.2.2/32
interface lo
 ip address 2.2.2.2/32
exit
router bgp 1
 no bgp ebgp-requires-policy
 neighbor 10.0.0.1 remote-as 2
 address-family ipv4 unicast
  redistribute connected route-map myapp1_pair
 exit-address-family
exit
route-map myapp1_pair permit 10
 match ip address prefix-list myapp1_pair
exit

Проверка#

Angie ADC должен увидеть свои объявления:

angie-va# sh ip bgp
BGP table version is 14, local router ID is 2.2.2.2, vrf id 0
Default local pref 100, local AS 1
Status codes:  s suppressed, d damped, h history, u unsorted, * valid, > best, = multipath,
               i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes:  i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

    Network          Next Hop            Metric LocPrf Weight Path
*>  2.2.2.2/32       0.0.0.0                  0         32768 ?

Displayed 1 routes and 1 total paths

Соседний маршрутизатор должен увидеть объявления от Angie ADC:

abstract-router# sh ip bgp
BGP table version is 14, local router ID is 10.0.0.1, vrf id 0
Default local pref 100, local AS 2
Status codes:  s suppressed, d damped, h history, u unsorted, * valid, > best, = multipath,
               i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes:  i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

    Network          Next Hop            Metric LocPrf Weight Path
*>  2.2.2.2/32       10.21.20.6               0             0 1 ?

Displayed 1 routes and 1 total paths

В случае если объявления не видны, можно попробовать сбросить сессию BGP на обоих маршрутизаторах:

clear ip bgp * soft

Отзыв префиксов#

Отзыв префиксов реализован через автоматическое изменение префикс-листов.

Например:

ip prefix-list myapp1_pair seq 5 deny 2.2.2.2/32

Объявление префиксов после восстановления работы апстрима#

При восстановлении работоспособности апстримов префикс-листы не меняются автоматически.

Чтобы вручную вернуть префикс-лист к изначальному виду, выполните команды:

conf t
 ip prefix-list myapp1_pair seq 5 permit 2.2.2.2/32

Примечание

Если вы хотите, чтобы префиксы автоматически анонсировались после восстановления апстримов, установите флажок Объявлять префиксы при восстановлении апстримов в настройках конфигурации RHI.

Настройка OSPF#

Настройка OSPF также проводится через командную строку.

Пример#

hostname angie-va
no ipv6 forwarding
ip prefix-list myapp1_pair seq 5 permit 2.2.2.2/32
interface ens33
 ip address 192.168.0.20/24
 ip ospf 1 area 0
exit
interface lo
 ip address 2.2.2.2/32
exit
router ospf 1
 ospf router-id 192.168.0.20
 redistribute connected route-map myapp1_pair
exit
route-map myapp1_pair permit 10
match ip address prefix-list myapp1_pair
exit

Проверка#

Если серверы в бэкенде доступны:

angie-va#sho ip ospf 1 database external self-originate
OSPF Instance: 1
       OSPF Router with ID (2.2.2.2)
                AS External Link States
  LS age: 28
  Options: 0x2  : *|-|-|-|-|-|E|-
  LS Flags: 0xb
  LS Type: AS-external-LSA
  Link State ID: 2.2.2.2 (External Network Number)
  Advertising Router: 192.168.0.20
  LS Seq Number: 80000001
  Checksum: 0x139b
  Length: 36
  Network Mask: /32
        Metric Type: 2 (Larger than any link state path)
        TOS: 0
        Metric: 20
        Forward Address: 0.0.0.0
        External Route Tag: 0

Если серверы в бэкенде недоступны:

angie-va#sho ip ospf 1 database external self-originate
OSPF Instance: 1
       OSPF Router with ID (192.168.0.20)
                AS External Link States
  LS age: 3600
  Options: 0x2  : *|-|-|-|-|-|E|-
  LS Flags: 0x8b
  LS Type: AS-external-LSA
  Link State ID: 2.2.2.2 (External Network Number)
  Advertising Router: 2.2.2.2
  LS Seq Number: 80000001
  Checksum: 0x139b
  Length: 36
  Network Mask: /32
        Metric Type: 2 (Larger than any link state path)
        TOS: 0
        Metric: 20
        Forward Address: 0.0.0.0
        External Route Tag: 0

Отзыв префиксов#

Отзыв маршрута в OSPF происходит следующим образом: после удаления префикса OSPF изменяет значение возраста LSA в поле LS age на 3600, информируя соседей, что LSA устарела и нужно перестать ее использовать. Через некоторое время эта LSA будет полностью удалена из LSDB.

Объявление префиксов после восстановления работы апстрима#

При восстановлении работоспособности апстримов префикс-листы не меняются автоматически.

Чтобы вручную вернуть префикс-лист к изначальному виду, выполните команды:

conf t
 ip prefix-list myapp1_pair seq 5 permit 2.2.2.2/32

Примечание

Если вы хотите, чтобы префиксы автоматически анонсировались после восстановления апстримов, установите флажок Объявлять префиксы при восстановлении апстримов в настройках конфигурации RHI.

Настройка балансировщика нагрузки#

Конфигурация балансировщика нагрузки настраивается в консоли Angie ADC (см. инструкцию).

Для работы RHI необходимо настроить следующие параметры:

  • upstream_probe;

  • параметры для получения информации о состоянии балансировщика нагрузки.

Пример#

Приведены только строки, добавленные в дефолтную конфигурацию.

### Часть конфигурации опущена для краткости
}
### Бэкенды
upstream myapp1 {
    zone myapp1 1m;
    server server1;
    server server2;
}
### Переменная для health probe
map $upstream_status $good {
    200     "1";
}
server {
### Часть конфигурации опущена для краткости
    location / {
        proxy_pass http://myapp1;
        # Апстрим-пробы
        upstream_probe myapp1_probe
            interval=1s
            test=$good
            essential
            mode=always;
    }
### Часть конфигурации опущена для краткости
}
}

Настройка конфигурации RHI#

Конфигурация RHI настраивается в консоли Angie ADC.

Чтобы настроить конфигурацию, выполните следующие действия:

  1. Откройте консоль Angie ADC.

  2. В правом верхнем углу выберите НастройкиКонфигурация RHI.

    Откроется окно настройки конфигурации RHI.

  3. Задайте префиксы. Для этого нажмите Добавить и укажите следующие параметры:

    • VIP-адрес (CIDR) — виртуальный IP-адрес для апстрима. Указывается в формате X.X.X.X/mask.

      Примечание

      Значение должно быть уникальным в рамках одного префикс-листа.

    • Приоритет — номер последовательности, определяющий порядок обработки правил. Маршрут с меньшим приоритетом обрабатывается первым.

      Примечание

      Значение должно быть уникальным в рамках одного префикс-листа.

    • Имя префикс-листа — имя префикс-листа для маршрутизации.

    • Имя апстрима — апстрим, для которого настраивается отзыв префикса.

    Важно

    На данный момент реализована возможность добавлять только один префикс-лист для апстрима. Мы работаем над расширением функциональности и выпустим обновление в следующем релизе.

  4. Установите флажок Объявлять префиксы при восстановлении апстримов, если хотите, чтобы Angie ADC автоматически анонсировал префиксы в маршрутизируемую сеть при восстановлении работоспособности апстримов. По умолчанию флажок снят.

  5. Нажмите Сохранить.

    Настройки RHI будут сохранены и сразу применены.

Удаление префиксов#

Вы можете удалить неиспользуемые префиксы из конфигурации RHI, нажав на значок удаления напротив этих префиксов.

Примечание

При удалении префиксов через консоль Angie ADC они удаляются из базы данных и перестают влиять на объявление и отзыв маршрутов, но сохраняются в списках, отображаемых через командную строку.

Чтобы полностью удалить префикс-лист, необходимо выполнить следующие команды:

conf t
no ip prefix-list <имя префикс-листа>

Это поведение будет скорректировано в следующих релизах.