Рассмотрев настройку резервирования маршрутизаторов Cisco по протоколу HSRP и VRRP, закончим данную тему протоколом GLBP (Gateway Load Balancing Protocol). Отличительной особенностью данного протокола от HSRP и VRRP является то, что он позволяет балансировать нагрузку между роутерами, участвующими в резервировании. Балансировка достигается путём использования одного виртуального IP адреса и нескольких виртуальных MAC адресов, позволяя тем самым участвовать в процессе передачи пакетов всем маршрутизаторам в группе. Каждому роутеру присваивается свой виртуальный MAC адрес и общий виртуальный IP адрес.
Ограничения протокола GLBP
— Так же как HSRP и VRRP, протокол GLBP используется в Ethernet сетях (IEEE 802.3)
— Маршрутизатор должен поддерживать множественные MAC адреса на одном физическом интерфейсе
— Enhanced Object Tracking (EOT) не может быть использован совместно с протоколом GLBP, если активирован режим SSO (Stateful switchover)
— GLBP поддерживает до 1024 виртуальных роутеров (GLBP групп) на каждом физическом интерфейсе. И до 4-х виртуальных форвардеров в одной группе (то есть, если я правильно понимаю, балансировку нагрузки одновременно могут выполнять максимум 4 маршрутизатора)
— Если GLBP используется на VLAN интерфейсе, то номер GLBP группы должен быть отличен от номера VLAN
Основные понятия протокола GLBP
Active Virtual Gateway (AVG) — активный виртуальный шлюз. Члены GLBP группы выбирают один маршрутизатор, который будет выполняет роль AVG, остальные будут работать в режиме резерва, что бы в случае выхода из строя AVG, заменить его. AVG назначает виртуальные MAC адреса для каждого члена GLBP группы. Каждый маршрутизатор с виртуальным MAC адресом имеет возможность отвечать на пакеты, пришедшие на этот MAC. Active Virtual Gateway отвечает на ARP запросы, приходящие на виртуальный IP адрес, и в ARP ответах отдает разные виртуальные MAC адреса для одного виртуального IP.
Active Virtual Forwarders (AVF) — активные виртуальные форвардеры. Это маршрутизаторы в GLPB группе, которым AVG назначил виртуальный MAC адрес и которые участвуют в передаче пакетов.
GLBP gateway priority — приоритет, который определяет, какой из резервных маршрутизаторов станет выполнять роль AVG, если текущий AVG станет не доступен. Значение приоритета может быть от 1 до 255. Если включен «glbp preempt», то маршрутизатор с наивысшим приоритетом станет выполнять роль AVG, даже если текущий AVG в нормальном состоянии.
GLBP Gateway Weighting — вес маршрутизатора, определяет пропорциональность нагрузки на маршрутизатор. Вес может автоматически изменяться, в зависимости от состояния каналов, используя механизм Object Tracking.
GLBP Client Cache — кэш, который содержит данные о хостах из сети, отправляющих пакеты на виртуальный роутер (GLPB группу). Запись в кэше создается, когда AVG получает от хоста из сети ARP запрос для виртуального IP адреса. Запись хранит информацию о том, какой хост из сети отправил ARP запрос и какой виртуальный форвардер (виртуальный MAC адрес) ассоциирован с этим хостом (то есть задает через какой маршрутизатор в группе данный хост будет осуществлять передачу пакетов). GLBP client cache может хранить информации о 2000 хостах для одной группы. Если кэш начинает использовать много оперативной памяти, то максимальное число хостов в кэше можно уменьшить командой «glbp client-cache maximum«. Если будет достигнут лимит кэша, то каждый новый клиент будет добавляться, а предыдущий удаляться из кэша.
GLBP Authentication — протокол GLPB поддерживает аутентификацию (MD5, plain text). Пакеты GLBP будут отбрасываться, если схема аутентификации GLPB группы отличается от схемы аутентификации в пришедшем пакете, либо если парольные фразы для «plain text» и MD5 хэши для MD5 аутентификации отличаются.
Участники GLBP взаимодействуют между собой с помощью «hello» пакетов, которые отправляются каждые 3 секунды на мультикаст адрес 224.0.0.102 и UDP порт 3222
Настройка протокола GLBP
Настройка протокола GLBP производится в режиме конфигурирования интерфейса и похожа на настройку протоколов HSRP и VRRP.
Для активирования GLPB, необходимо поместить интерфейс маршрутизатора в нужную GLPB группы и задать на нем виртуальный IP адрес, это проделать необходимо на всех маршрутизаторах, участвующих в резервировании/балансировке. Так же, нужно помнить, что на физическом интерфейсе должен быть прописан IP адрес.
Команда активирующая GLPB (в режиме конфигурации интерфейса):
«glbp group_num ip ip_addr [secondary]» — помещает интерфейс в GLBP группу с номером group_num и задает IP адрес ip_addr для виртуального шлюза (нужно помнить, что если это VLAN интерфейс, то номер GLPB группы должен быть отличен от номера VLAN). Можно повторно ввести данную команду с опцией secondary и задать дополнительный (вторичный) IP адрес для виртуального роутера.
Данной команды уже достаточно для работы GLBP. Дополнительную настройку протокола можно выполнить следующими командами:
Настройка временных интервалов GLBP:
«glbp group_num timers [msec] hellotime [msec] holdtime» — задает интервал времени hellotime между последовательностью hello пакетов отправляемых AVG в GLBP группу. holdtime — задает время в секундах, если не указана опция msec, после истечения которого информация в hello пакете будет считаться недействительной.
«glbp group_num timers redirect redirect_time timeout» — задает интервал времени redirect_time в течении которого AVG ждёт возвращения виртуального форвардера (в случае его отказа). Виртуальный MAC адрес сбойного роутера по прежнему выдается в ARP запросах в течении redirect_time времени, но функцию маршрутизации возьмет на себя другой (живой) роутер в GLBP группе group_num. По истечении времени заданного в переменной timeout с момента падения маршрутизатора, виртуальный MAC адрес сбойного роутера перестанет существовать на всех роутерах в GLPB группе, и пакеты отправленные на этот MAC адрес будут потеряны.
Настройка типа балансировки GLBP:
«glbp group_num load-balancing [host-dependent | round-robin | weighted]» — указывает какой метод балансировки использовать для GLPB группы group_num.
host-dependent — определенный хост в сети всегда будет работать с одним и тем же маршрутизатором. Полезно при использовании сетевой трансляции адресов (NAT)
round-robin — поочередная обработка. То есть виртуальные MAC адреса для виртуального IP адреса будут выдаваться в ответах на ARP запросы поочередно.
weighted — балансировка будет происходить в соответствии с заданным весом на маршрутизаторах.
Настройка приоритета GLBP
«glbp group_num priority level» — задает приоритет маршрутизатора. По умолчанию значение 100.
«glbp group_num preempt [delay minimum seconds]» — задает возможность маршрутизатору забрать роль AVG, если его приоритет выше, чем приоритет текущего маршрутизатора с ролью AVG. Опция «delay minimum» позволяет задать задержку в секундах, перед тем как роль AVG заберется.
Настройка кэша клиентской информации:
«glbp group_num client-cache maximum number [timeout minutes]» — Активирует использование client-cache для GLBP группы group_num (по умолчанию не используется). number — максимальное количество клиентов, информация о которых хранится в кэше (значение может быть от 8 до 2000). minutes — время в минутах, в течении которого информация хранится в кэше о конкретном клиенте, с момента последнего обновления (задается в интервале от 1 до 1440 ). Рекомендуется время minutes использовать немного большим, чем ожидаемое значение времени timeout ARP cache у клиента.
Настройка аутентификации GLBP:
«glbp group_num authentication md5 key-string [ 0 | 7] key» — включает в группе аутентификацию MD5 с использованием кодовой строки key. 0 — парольная строка key вводится не в зашифрованном виде, 7 — в зашифрованном
«glbp group_num authentication md5 key-chain keychain» — включает MD5 аутентификацию с использованием ключевой цепочки keychain
«glbp group_num authentication text string» — включает Plain text аутентификацию с использованием строки string
Настройка веса маршрутизатора для GLBP:
«glbp group_num weighting maximum [lower lower] [upper upper]» — задает вес маршрутизатора maximum и устанавливает нижнюю lower и верхнюю upper границы веса.
«glbp group_num weighting track object-number [decrement value]» — задает динамическое изменение веса в зависимости от состояния канала или интерфейса, за которым включено наблюдение object-number. Слежение (наблюдение) за интерфейсом задается в режиме глобального конфигурирования командой: «track object-number interface type number {line-protocol | ip routing}»
«glbp group_num forwarder preempt [delay minimum seconds]» — задает возможность маршрутизатору забирать роль активного виртуального форвардера (AVF), если у текущего AVF падает вес к нижнему порогу.
Пример настройки GLBP на Cisco
Для примера возьмём ту же схему, что была в примере по настройке протокола HSRP и VRRP.
Сеть NET1 (192.168.0.0/24), сеть NET2 (10.0.2.0/24). Нужно создать балансировку роутеров R1 и R2 по протоколу GLBP с виртуальным IP 192.168.0.254 для сети NET1 и 10.0.2.254 для сети NET2.
Фрагмент конфигурации R1:
interface FastEthernet0/0
ip address 192.168.0.35 255.255.255.0
duplex auto
speed auto
glbp 192 ip 192.168.0.254
glbp 192 priority 200
glbp 192 authentication text SecKey1
!
interface FastEthernet0/1
ip address 10.0.2.35 255.255.255.0
duplex auto
speed auto
glbp 10 ip 10.0.2.254
glbp 10 priority 200
glbp 10 authentication text SecKey2
!
Фрагмент конфигурации R2:
interface FastEthernet0/0
ip address 192.168.0.36 255.255.255.0
duplex auto
speed auto
glbp 192 ip 192.168.0.254
glbp 192 authentication text SecKey1
!
interface FastEthernet0/1
ip address 10.0.2.36 255.255.255.0
duplex auto
speed auto
glbp 10 ip 10.0.2.254
glbp 10 authentication text SecKey2
!
Посмотреть состояние протокола GLBP можно командой «show glbp«:
R1#show glbp
FastEthernet0/0 - Group 192
State is Active
2 state changes, last state change 00:12:55
Virtual IP address is 192.168.0.254
Hello time 3 sec, hold time 10 sec
Next hello sent in 1.404 secs
Redirect time 600 sec, forwarder time-out 14400 sec
Preemption disabled
Active is local
Standby is 192.168.0.36, priority 100 (expires in 8.776 sec)
Priority 200 (configured)
Weighting 100 (default 100), thresholds: lower 1, upper 100
Load balancing: round-robin
There are 2 forwarders (1 active)
Forwarder 1
State is Active
1 state change, last state change 00:12:45
MAC address is 0007.b400.c001 (default)
Owner ID is c200.12f8.0000
Redirection enabled
Preemption enabled, min delay 30 sec
Active is local, weighting 100
Arp replies sent: 3
Forwarder 2
State is Listen
MAC address is 0007.b400.c002 (learnt)
Owner ID is c201.12f8.0000
Redirection enabled, 597.080 sec remaining (maximum 600 sec)
Time to live: 14397.080 sec (maximum 14400 sec)
Preemption enabled, min delay 30 sec
Active is 192.168.0.36 (primary), weighting 100 (expires in 7.072 sec)
FastEthernet0/1 - Group 10
State is Active
2 state changes, last state change 00:09:11
Virtual IP address is 10.0.2.254
Hello time 3 sec, hold time 10 sec
Next hello sent in 0.344 secs
Redirect time 600 sec, forwarder time-out 14400 sec
Preemption disabled
Active is local
Standby is 10.0.2.36, priority 100 (expires in 7.060 sec)
Priority 200 (configured)
Weighting 100 (default 100), thresholds: lower 1, upper 100
Load balancing: round-robin
There are 2 forwarders (1 active)
Forwarder 1
State is Active
1 state change, last state change 00:09:17
MAC address is 0007.b400.0a01 (default)
Owner ID is c200.12f8.0001
Redirection enabled
Preemption enabled, min delay 30 sec
Active is local, weighting 100
Arp replies sent: 3
Forwarder 2
State is Listen
MAC address is 0007.b400.0a02 (learnt)
Owner ID is c201.12f8.0001
Redirection enabled, 598.756 sec remaining (maximum 600 sec)
Time to live: 14398.752 sec (maximum 14400 sec)
Preemption enabled, min delay 30 sec
Active is 10.0.2.36 (primary), weighting 100 (expires in 8.748 sec)
R1#
Добавить комментарий