Режим резервирования (Active-Standby)#

В этом разделе описана настройка высокой доступности с использованием протокола VRRP в режиме резервирования (Active-Standby). Для настройки используется командная строка Angie ADC CLI.

Также вы можете посмотреть следюущие статьи:

Введение#

Для обеспечения отказоустойчивости нужны две системы балансировки Angie ADC — основная и резервная. Резервная система Angie ADC будет принимать нагрузку при отказе основной. Автоматическое переключение между двумя системами балансировки Angie ADC можно реализовать с помощью протокола VRRP. Для настройки VRRP используется командная строка Angie ADC CLI. Пример настройки приведен ниже.

Примечание

Резервирование других сетевых компонентов (маршрутизаторы, коммутаторы, межсетевые экраны) выходит за рамки настоящей статьи.

Пример типового участка сети с системами балансировки Angie ADC (ADC #1 и ADC #2):

Участок сети с системами балансировки Angie ADC


Введем IP-адресацию:

  • В сегменте сети, куда подключаются External router, ADC #1 и ADC #2, будет использоваться подсеть 192.168.0.0/24.

  • В сегменте сети, куда подключаются Internal router, ADC #1 и ADC #2, будет использоваться подсеть 192.168.1.0/24.

  • Четвертый октет адреса для каждого устройства (в рамках соответствующей подсети) показан на схеме ниже.

IP-адресация


Адресация клиентов не приводится, так как в данном случае мы будем считать, что их адреса формально не определены, то есть, они могут подключаться из любой сети, включая сеть интернет. Для этого на ADC #1 и ADC #2 необходимо указать адрес правого интерфейса маршрутизатора External router (192.168.0.1) в качестве шлюза по умолчанию.

Виртуальный адрес, который соответствует сервису, может быть размещен на интерфейсе loopback каждой системы балансировки, либо это может быть виртуальный адрес, используемый протоколом VRRP. Первый способ будет более гибким.

При размещении адреса сервиса на loopback-интерфейсе (на схеме ниже это адрес 2.2.2.2) необходимо добавить статический маршрут на этот адрес на маршрутизаторе External router. Причем в качестве next-hop необходимо использовать виртуальный адрес VRRP, за счет чего достигается отказоустойчивость решения.

виртуальный адрес VRRP


При использовании виртуального адреса VRRP в качестве адреса сервиса (на схеме ниже это 192.168.0.10) настройка соответствующих статических маршрутов на маршрутизаторе External router не требуется. Виртуальный адрес VRRP находится в одной подсети с интерфейсами маршрутизатора с точки зрения маршрутизатора External router.

виртуальный адрес VRRP


Также допускается использование VRRP и при работе системы балансировки Angie ADC в «одноруком» режиме.

Обработка типовых сбоев#

Ниже описаны сценарии работы Angie ADC при сбоях.

Полный отказ ADC #1#

При полном отказе или отключении от сети ADC #1 происходят перевыборы VRRP-мастера. Переключение на резервную систему ADC #2 производится автоматически. Никакие дополнительные настройки не требуются.

Полный отказ ADC #1


Отказ внешнего интерфейса ADC #1#

Предлагаемая схема не имеет возможности отслеживания и реагирования на частичные отказы (пример ниже).

Отказ внешнего интерфейса


В случае частичного отказа, как на схеме выше, ADC #1 перестает рассылать сообщения VRRP. ADC #2 начинает считать себя мастером, что заставляет виртуальную машину отвечать на ARP-запросы об адресе 192.168.0.10, а также обрабатывать пользовательский трафик. Обратный трафик (от серверов в сторону клиентов) будет проходить через ADC #2, так как ADC #2 устанавливает сессии до серверов с адреса своего внутреннего интерфейса.

Примечание

IP transparency на данном этапе обеспечить невозможно. Для работы IP transparency требуется наличие маршрута по умолчанию на маршрутизаторе Internal router. Если прописать маршрут по умолчанию через ADC #1, то отказ внешнего интерфейса ADC #1 приведет к невозможности доставки трафика и его отбрасыванию (black hole). Решить эту проблему можно за счет использования протокола VRRP как на внешнем, так и на внутреннем интерфейсах. Причем состояние групп должно быть согласованным, то есть если для внешней сети мастером является система балансировки ADC #2, то и для внутренней сети ADC #2 также должна являться мастером. Добиться этого можно с помощью опции VRRP tracking, которая будет выпущена в ближайших релизах Angie ADC.

Отказ линка между ADC #1 и Internal router#

Отказ линка между ADC #1 и маршрутизатором Internal router более сложная ситуация: если ADC #1 сохраняет за собой роль мастера, то трафик от клиентов до серверов будет все еще передаваться через ADC #1, хотя реальные сервера для системы балансировки ADC #1 уже недостижимы. Таким образом, мы получаем классический пример black hole:

Отказ линка


Чтобы избежать этой проблемы, необходимо, чтобы ситуация отказа только одного из линков была невозможной, т.е. нужно обеспечить отказоустойчивое подключение к сети для хоста виртуализации, на котором работает ADC.

Рекомендованная схема подключения:

  • Объединить в одну LAG-группу все физические интерфейсы хоста виртуализации и использовать этот виртуальный LAG-интерфейс в качестве транка, то есть передавать по нему тегированными несколько виртуальных сетей (один VLAN для external сети, второй VLAN для internal сети).

  • Для резервирования коммутаторов можно использовать технологию vPC или стекирование, пример представлен на схеме ниже.

Из соображений простоты на схеме не отображено резервирование внешнего и внутреннего маршрутизаторов.

Стекирование


Примечание

В ближайших релизах Angie ADC появится опция VRRP tracking, которая позволит автоматически переводить систему балансировки ADC #2 в режим VRRP backup при возникновении обсуждаемого отказа.

Настройка VRRP#

Базовая настройка#

Для настройки VRRP необходимо указать виртуальный IP-адрес, все остальные настройки опциональны:

#! Задать виртуальный IP-адрес 192.168.0.10/24 для первой VRRP группы внешнего интерфейсе (ens33).
#! Задается для ADC #1 и для ADC #2.
# vrrp 1 int ens33 ip 192.168.0.10/24

Указанная выше настройка одинакова для ADC #1 и ADC #2.

Примечание

Полный список поддерживаемых команд VRRP можно посмотреть в справочнике по командам VRRP.

Изменение приоритета#

Если требуется, чтобы система балансировки ADC #1 выигрывала выборы и принимала на себя роль мастера, то ее приоритет необходимо сделать выше, чем приоритет у ADC #2. Значение приоритета по умолчанию – 100. Пример настройки ADC #1 представлен ниже:

#! Задается для ADC #1
#vrrp 1 int ens33 priority 110

Аналогичная настройка делается для ADC #2, но с меньшим значением приоритета:

#! Задается для ADC #2
#vrrp 1 int ens33 priority 90

Иcпользование preempt#

Опция VRRP preempt включена по умолчанию. Эта опция заставляет включившуюся систему балансировки инициировать перевыборы мастера, если ее собственный приоритет выше приоритета текущего мастера.

Включить preempt можно с помощью следующей команды:

vrrp 1 int ens33 preempt

Выключение preempt реализовано через no:

no vrrp 1 int ens33 preempt

Прописывание маршрута#

Для указания статического маршрута, например на внешнем маршрутизаторе c указанием виртуального адреса VRRP в качестве next-hop, используется стандартная команда:

External(config)#ip route 2.2.2.2 255.255.255 192.168.0.10

Проверка работы#

Убедимся, что ADC #1 является мастером:

# show vrrp int ens33 1 sum
Interface VRID Priority IPv4 IPv6 State (v4) State (v6)
----------------------------------------------------------------------
ens33 1 110 1 0 Master Backup

Убедимся, что ADC #2 не обладает ролью мастера:

# show vrrp int ens33 1 sum
Interface VRID Priority IPv4 IPv6 State (v4) State (v6)
----------------------------------------------------------------------
ens33 1 90 1 0 Backup Backup

Отключим теперь систему балансировки ADC #1 и убедимся, что ADC #2 приняла на себя роль мастера:

# show vrrp int ens33 1 sum
Interface VRID Priority IPv4 IPv6 State (v4) State (v6)
----------------------------------------------------------------------
ens33 1 90 1 0 Master Backup

Примечание

В момент переезда роли Master на вторую систему балансировки ADC возможны кратковременные перерывы обработки трафика, вызванные задержками обнаружения падения активной ноды. Характерное время переключения ~3 секунды. Ускорить процедуру переключения можно за счет редактирования параметра advertisement-interval (см. справочник по командам VRRP). В будущем планируется использование протокола BFD для ускорения процедуры обнаружения отказов.

Заново включим систему балансировки ADC #1. Поведение устройства зависит от состояния опции VRRP preempt. Если опция preempt активирована (значение по умолчанию), то ADC #1 инициирует перевыборы и заберет на себя роль мастера. Если опция preempt отключена, то ADC #1 не будет пытаться отобрать роль мастера у системы балансировки ADC #2.

Проверить текущее состояние опции preempt можно с помощью следующей команды:

# show vrrp int ens33 1
Virtual Router ID 1
Protocol Version 3
Autoconfigured No
Shutdown No
Interface ens33
VRRP interface (v4) vrrp4-ens33-1
VRRP interface (v6) None
Primary IP (v4) 192.168.0.3
Primary IP (v6) ::
Virtual MAC (v4) 00:00:5e:00:01:01
Virtual MAC (v6) 00:00:5e:00:02:01
Status (v4) Master
Status (v6) Initialize
Priority 110
Effective Priority (v4) 110
Effective Priority (v6) 110
Preempt Mode No
Accept Mode Yes
Checksum with IPv4 Pseudoheader Yes
Advertisement Interval 1000 ms
Master Advertisement Interval (v4) Rx 1000 ms (stale)
Master Advertisement Interval (v6) Rx 0 ms (stale)
Advertisements Tx (v4) 1163
Advertisements Tx (v6) 0
Advertisements Rx (v4) 0
Advertisements Rx (v6) 0
Gratuitous ARP Tx (v4) 1
Neigh. Adverts Tx (v6) 0
State transitions (v4) 2
State transitions (v6) 0
Skew Time (v4) 600 ms
Skew Time (v6) 0 ms
Master Down Interval (v4) 3600 ms
Master Down Interval (v6) 0 ms
IPv4 Addresses 1
.................................. 192.168.0.10
IPv6 Addresses 0

Вне зависимости от того, какая система балансировки активна в данный момент, на маршрутизаторах в ARP-записи об адресе 192.168.0.10 будет один и тот же MAC-адрес: 00-00-5e-00-01-01 (при использовании первой VRRP-группы).

External#sho ip arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 192.168.0.10 - 0000.5e00.0101 ARPA GigabitEthernet0/0

Это означает, что при отказе одной из систем балансировки и аварийном переключении на вторую, единственное изменение, которое должно произойти в сети – переобучение коммутаторов, то есть потребуется актуализировать таблицы коммутации для адреса 00-00-5e-00-01-01.

Заключение#

С помощью протокола VRRP можно построить отказоустойчивое решение по балансировке нагрузки на сервера там, где использование протоколов динамической маршрутизации невозможно по той или иной причине.

Ряд дополнительных опций, расширяющих возможности протокола VRRP, находятся в данный момент в стадии разработки и будут доступны в ближайших релизах Angie ADC.