Режим распределения нагрузки (Active-Active)#

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

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

Введение#

Реализация полноценной схемы распределения нагрузки (Active-Active) не предусмотрена протоколом VRRP, но это ограничение можно обойти. Для этого рассмотрим два сценария подключения Angie ADC:

  • между клиентами и системами балансировки установлен хотя бы один маршрутизатор;

  • между клиентами и системами балансировки нет маршрутизатора.

Подключение Angie ADC с маршрутизатором#

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

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


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

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


Настройка режима Active-Active

Чтобы перейти от режима работы Active-Standby к режиму Active-Active, необходимо на том же интерфейсе систем балансировки настроить вторую VRRP группу таким образом, чтобы мастером в ней являлась другая система Angie ADC (достигается за счет опции priority). Для второй группы должен быть настроен виртуальный IP-адрес, отличающийся от адреса первой группы.

На схеме ниже вторая группа имеет виртуальный IP-адрес 192.168.0.11:

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


На стороне маршрутизатора External router должно быть прописано два статических маршрута до префикса 2.2.2.2/32:

  • один с next-hop 192.168.0.10;

  • второй – 192.168.0.11.

Маршрутизатор External router должен выполнять ECMP-балансировку трафика (часть сессий отправляется в сторону ADC #1, а оставшиеся – в сторону ADC #2).

Ниже приведен пример настройки маршрутизатора Cisco:

External(config)#ip route 2.2.2.2 255.255.255.255 192.168.0.10
External(config)#ip route 2.2.2.2 255.255.255.255 192.168.0.11
External(config)#exi
External#sho ip ro 2.2.2.2
Routing entry for 2.2.2.2/32
Known via "static", distance 1, metric 0
Routing Descriptor Blocks:
192.168.0.11
Route metric is 0, traffic share count is 1
* 192.168.0.10
Route metric is 0, traffic share count is 1
External#

У VRRP-группы есть виртуальный MAC-адрес (00:00:5e:00:01:n, где n – номер группы VRRP, номер виртуального маршрутизатора, в шестнадцатеричном виде). По MAC-адресу коммутатор определяет, для какой из систем балансировок предназначен трафик. Первая группа будет иметь виртуальный MAC-адрес 00:00:5e:00:01:01, вторая – 00:00:5e:00:01:02.

Убедиться в этом можно, просмотрев ARP-таблицу на маршрутизаторе External router:

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

ARP-таблица маршрутизатора External router не меняется при отказе одной из систем балансировки нагрузки Angie ADC. Изменения будут на стороне коммутатора. Ниже приводится часть таблицы коммутации, когда обе системы балансировки «живы» и выполняют свои функции:

switch#sho mac address-table dynamic vlan 51
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
----------------------------
51  0000.5e00.0101 DYNAMIC Gi0/7
51  0000.5e00.0102 DYNAMIC Gi0/8

Система балансировки ADC #1 подключена к интерфейсу Gi0/7 коммутатора, а система балансировки ADC #2 – к интерфейсу Gi0/8.

При отказе одной из систем балансировки оставшаяся будет иметь обе VRRP-группы в статусе Master. С точки зрения коммутатора это будет выглядеть так, словно оба виртуальных MAC-адреса доступны через один интерфейс.

switch#sho mac address-table dynamic vlan 51
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
----------------------------
51 0000.5e00.0101 DYNAMIC Gi0/7
51 0000.5e00.0102 DYNAMIC Gi0/7

Подключение Angie ADC без маршрутизатора#

Пример схемы сети представлен на рисунке ниже.

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


В данном случае клиенты должны находиться в той же подсети, что и внешние интерфейсы систем балансировки Angie ADC (192.168.0.0/24).

Если клиенты Client #1 и Client #2 не имеют выхода в интернет, то тогда на них будет достаточно настроить один из адресов 192.168.0.10 и 192.168.0.11 в качестве шлюза по умолчанию. То есть половина клиентов будет использовать адрес 192.168.0.10 в качестве шлюза по умолчанию, а вторая половина – 192.168.0.11.

Если для выхода в интернет используется какое-то отдельное устройство, то на клиентах придется прописать статический маршрут до префикса 2.2.2.2/32. На половине клиентов в качестве адреса следующего перехода (next-hop) необходимо настроить виртуальный адрес первой группы – 192.168.0.10, а на оставшихся клиентах – адрес второй группы, 192.168.0.11.

На схеме ниже желтой и красной стрелками указаны направления на шлюзы по умолчанию.

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


Использовать ECMP-подход здесь нецелесообразно, так как некоторые клиентские операционные системы могут не поддерживать такую балансировку.

Настройка VRRP#

Настройка VRRP на системах балансировки не зависит от того, какая схема подключения используется, с маршрутизатором или без.

Для настройки VRRP необходимо:

  • на каждой системе балансировки создать две группы;

  • для каждой из групп указать виртуальный IP-адрес и приоритет.

Все остальные настройки опциональны.

Примечание

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

Пример настройки VRRP для ADC #1:

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

Настройка VRRP для ADC #2 симметричная:

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

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

Убедимся, что в стабильном и полностью рабочем состоянии ADC #1 является мастером для первой группы VRRP, а для второй группы мастером является система ADC #2.

Вывод с системы балансировки ADC #1:

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

Вывод с системы балансировки ADC #2:

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

При отказе, например, системы балансировки ADC #2, вывод информации о группах VRRP с системы балансировки ADC #1 будет выглядеть так:

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

Заключение#

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

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