Настройка RHI#
RHI (Route Health Injection) позволяет динамически управлять маршрутами, анонсируемыми протоколами динамической маршрутизации, например BGP и OSPF, на основе данных о состоянии апстримов в балансировщике нагрузки. RHI позволяет автоматически отзывать префиксы при недоступности апстримов, минимизируя возможные циклы объявлений и отзывов. Апстрим считается недоступным, если все его бэкенды не прошли проверки работоспособности (health probes).
Для работы RHI необходимо:
Настроить BGP или OSPF в зависимости от свойств сети (через командную строку, примеры см. ниже).
Задать проверки работоспособности для балансировщика нагрузки (в консоли Angie ADC, пример см. ниже).
Задать конфигурацию RHI (в консоли Angie ADC, инструкцию см. ниже).
Настройка BGP#
Настройка BGP проводится через командную строку. Angie ADC должен увидеть свои объявления: Соседний маршрутизатор должен увидеть объявления от Angie ADC: В случае если объявления не видны, можно попробовать сбросить сессию 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-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
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
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 также проводится через командную строку. Если серверы в бэкенде доступны: Если серверы в бэкенде недоступны: Отзыв маршрута в OSPF происходит следующим образом: после удаления префикса
OSPF изменяет значение возраста LSA в поле При восстановлении работоспособности апстримов префикс-листы не меняются автоматически. Чтобы вручную вернуть префикс-лист к изначальному виду, выполните команды: Примечание Если вы хотите, чтобы префиксы автоматически анонсировались после восстановления апстримов, установите флажок
Пример#
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
Отзыв префиксов#
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 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.
Чтобы настроить конфигурацию, выполните следующие действия:
Откройте консоль Angie ADC.
В правом верхнем углу выберите
Настройки
→Конфигурация RHI
.Откроется окно настройки конфигурации RHI.
Задайте префиксы. Для этого нажмите
Добавить
и укажите следующие параметры:VIP-адрес (CIDR)
— виртуальный IP-адрес для апстрима. Указывается в форматеX.X.X.X/mask
.Примечание
Значение должно быть уникальным в рамках одного префикс-листа.
Приоритет
— номер последовательности, определяющий порядок обработки правил. Маршрут с меньшим приоритетом обрабатывается первым.Примечание
Значение должно быть уникальным в рамках одного префикс-листа.
Имя префикс-листа
— имя префикс-листа для маршрутизации.Имя апстрима
— апстрим, для которого настраивается отзыв префикса.
Важно
На данный момент реализована возможность добавлять только один префикс-лист для апстрима. Мы работаем над расширением функциональности и выпустим обновление в следующем релизе.
Установите флажок
Объявлять префиксы при восстановлении апстримов
, если хотите, чтобы Angie ADC автоматически анонсировал префиксы в маршрутизируемую сеть при восстановлении работоспособности апстримов. По умолчанию флажок снят.Нажмите
Сохранить
.Настройки RHI будут сохранены и сразу применены.
Удаление префиксов#
Вы можете удалить неиспользуемые префиксы из конфигурации RHI, нажав на значок удаления напротив этих префиксов.
Примечание
При удалении префиксов через консоль Angie ADC они удаляются из базы данных и перестают влиять на объявление и отзыв маршрутов, но сохраняются в списках, отображаемых через командную строку.
Чтобы полностью удалить префикс-лист, необходимо выполнить следующие команды:
conf t
no ip prefix-list <имя префикс-листа>
Это поведение будет скорректировано в следующих релизах.