7,1K подписчиков

Балансировка GLBP (Gateway load Balancing Protocol)

GLBP (Gateway load Balancing Protocol) - это протокол, разработанный компанией Cisco, который обеспечивает распределение нагрузки на несколько роутеров, используя всего 1 виртуальный адрес.

Этот протокол входит в группу FHRP, а теперь давайте напомню какие протоколы в неё входят.

GLBP обеспечивает балансировку трафика одновременно на несколько роутеров, когда HSRP и VRRP работал только один из 2х роутеров.

Балансировка GLBP (Gateway load Balancing Protocol)
Балансировка GLBP (Gateway load Balancing Protocol)

ТЕРМИНОЛОГИЯ ПРОТОКОЛА

AVG (Active Virtual Gateway) - активный роутер, который занимается раздачей MAC адресов устройствам. Некий начальник над роутерами в сети GLBP .

Это роль диспетчера, который указывает устройствам, как распределять трафик по средству раздачи им MAC адресов, когда приходит ARP запрос. То есть IP адрес у всех будет единый, а вот MAC адреса будут разные.

AVF (Active Virtual Forwarder) - активный роутер, который пропускает через себя трафик.

Роутер с ролью AVG только один может быть, а вот с ролью AVF любой, при этом AVG может быть и AVF одновременно.

Настройка этого протокола такая же, как и любого протокола группы FHRP на интерфейсе (в данном случает interface e0/0)

ТЕПЕРЬ ПРОЙДЕМСЯ ПО КОМАНДАМ

Router(config-if)# glbp 1 ip 192.168.0.254 //включение GLBP
Router(config-if)# glbp 1 priority 110 //установка приоритета 110 (если приоритет будет выше остальных ,то он станет AVG по умолчанию 100)
Router(config-if)# glbp 1 preempt //установит режим приемптинга для AVG ( работает также как и в HSRP, VRRP)
Router(config-if)# glbp 1 weighting 115 //установить вес для AVF в 115 Router(config-if)# glbp 1 load-balancing host-depended | round-robin | weighted

ДЛЯ ЧЕГО ТРЕБУЕТСЯ ВЕС?

Для того, чтобы выбрать кто будет AVF. Чтобы при падении линка до провайдера мы могли передать эту роль кому-нибудь ещё. Далее рассмотрим механизм передачи:

Router(config-if)# glbp 1 weighting 130 lower 20 upper 129

Команда установит вес для Forwarder в 130, а нижняя граница будет 20, верхняя 129. Если вес упадет до 19, то он перестанет быть AVF, а если вес возрастет выше 129 после падения, то он снова превратиться в AVF. По умолчанию lower равен 1, upper равен 100.

Данная команда используется совместно с Track:

Router(config)# track 1 interface e0/1 line-protocol
Router(config)# int e0/0
Router(config-if)# glbp 1 weighting track 1 decrement 111

КАК ПРОВЕРИТЬ СТАЛ ЛИ РОУТЕР AVG?

R2(config) do show glbp
Ethernet0/0 - Group 1
State is Active
...

Смотрим, состояние Active, а это значит он и стал AVG. Взглянем на второй:

R3(config-if) do sh glbp
Ethernet0/0 - Group 1
State is Standby
...

Говорит о том, что он не стал AVG.

При просмотре команды нужно обращать внимание на State is Active / Listen / Standby. Где AVG это Active, запасной Standby, а тот, кто в выборах не участвует Listen. То есть если роутер State is Active накроется, то его место займет маршрутизатор с состоянием State is Standby. При этом каждый роутер является AVF.

3 РЕЖИМА AVG

  • Round Robin (по кругу) - это значит, что балансирует равномерно, раздавая каждому устройству новый MAC по списку, а как заканчивается список, начинает заново. Когда в сети просыпается устройство или ARP table устаревает, то у него нет mac шлюза по умолчанию. Он формирует ARP запрос, где запрашивает эти данные. Отвечает ему только AVG, который выдает виртуальные mac адреса за роутеры в группе glbp. Одному ПК он выдаст свой ,потому что он еще и AVF , следующему ПК - R3 mac-address выдаст ,следующему устройству R4 mac-address .
  • Weighted (утяжеленный) - когда AVF имеет больший вес, то принимает большую нагрузку, чем остальные роутеры.
  • Host dependent (Зависимое устройство) - присваивает постоянный MAC определенным устройствам. Допустим к нему обратился VPC10 за MAC адресом и AVG выдает его, а также запоминает, что ему выдает только этот адрес.

Как это работает? Представим, что в нашей топологии:

  • Роутер R3 (State is Listen) умрет, то тогда его клиентов возьмет любой из группы, либо R2, либо R4.
  • Роутер R2 (State is Active) умрет, то тогда роль AVG займет роутер R4 (State is Standby), а также возьмет его клиентов (или распределит между R3/R4). R3 станет запасным AVG.
  • Роутер R4 (State is Standby) умрет, то его клиентов возьмет один из R2/R3 и R3 (State is Listen) станет State is Standby.

SHOW GLBP НА РАЗНЫХ РОУТЕРАХ

R2(config-if) do sh glbp
Ethernet0/0 - Group 1
State is Active
1 state change, last state change 00:06:48
Virtual IP address is 192.168.0.254
Hello time 3 sec, hold time 10 sec
Next hello sent in 2.176 secs
Redirect time 600 sec, forwarder timeout 14400 sec
Preemption disabled
Active is local
Standby is 192.168.0.3, priority 100 (expires in 8.576 sec)
Priority 100 (default)
Weighting 100 (default 100), thresholds: lower 1, upper 100
Load balancing: round-robin
Group members:
aabb.cc00.2000 (192.168.0.1) local
aabb.cc00.3000 (192.168.0.2)
aabb.cc00.4000 (192.168.0.3)
There are 3 forwarders (1 active)
Forwarder 1
State is Active
1 state change, last state change 00:06:37
MAC address is 0007.b400.0101 (default)
Owner ID is aabb.cc00.2000
Redirection enabled
Preemption enabled, min delay 30 sec
Active is local, weighting 100
Forwarder 2
State is Listen
MAC address is 0007.b400.0102 (learnt)
Owner ID is aabb.cc00.3000
Redirection enabled, 599.104 sec remaining (maximum 600 sec)
Time to live: 14399.104 sec (maximum 14400 sec)
Preemption enabled, min delay 30 sec
Active is 192.168.0.2 (primary), weighting 100 (expires in 9.216 sec)
Forwarder 3
State is Listen
MAC address is 0007.b400.0103 (learnt)
Owner ID is aabb.cc00.4000
Redirection enabled, 598.592 sec remaining (maximum 600 sec)
Time to live: 14398.592 sec (maximum 14400 sec)
Preemption enabled, min delay 30 sec
Active is 192.168.0.3 (primary), weighting 100 (expires in 10.016 sec)

В данный момент я подключил 3 роутера в группу glbp 1 и если посмотреть на вывод, то он показывает отношение 1 роутера к другому. То есть R2 по отношению к R3 и R4 является active, а остальные listen . Если глянуть на R3 и R4 ,то картина будет с точностью наоборот. Это сделано для того, чтобы наблюдать, какой роутер взял на себя роль AVF в случае падения, тогда при падении один из Forwarder будет в состоянии Active.

РЕЖИМ PREEMPT

Этот режим, как и в других протоколах типа FHRP помогает роутеру настроить нужную роль. В GLBP это будет касаться AVG и AVF. Для AVG по умолчанию он отключен, а для AVF по умолчанию включен, с задержкой 30 секунд.

preempt для AVG:

R2(config)# int e0/0
R2(config-if)# glbp 1 preempt

preempt для AVF:

R2(config)# int e0/0
R2(config-if)# glbp 1 forwarder preempt delay minimum 60

НАСТРОЙКА ТАЙМЕРОВ

Настройка интервалов в группе GLBP:

R2(config-if)# glbp 1 timers 3 10

НАСТРОЙКА ПАРОЛЯ

//Аутентификация через md5 по хешу
R2(config-if) glbp 1 authentication md5 key-string CISCO

//Аутентификация в открытом виде
R2(config-if) glbp 1 authentication text CISCO

ДИАГНОСТИКА

R2# show glbp //показать общую информацию по протоколу группы FHRP

R2# show glbp brief //показывает краткую таблицу по всем роутерам группы GLBP
----------------------------------------------------------------------------------------------------------------------------
R2 show glbp brief
Interface Grp Fwd Pri State Address Active router Standby router
Et0/0 1 - 110 Standby 192.168.0.254 192.168.0.4 local
Et0/0 1 1 - Active 0007.b400.0101 local -
Et0/0 1 2 - Listen 0007.b400.0102 192.168.0.2 -
Et0/0 1 3 - Listen 0007.b400.0103 192.168.0.3 -
Et0/0 1 4 - Listen 0007.b400.0104 192.168.0.4 -

ВАЖНОЕ

В топологии GLBP может пропускать максимум 4 роутера, если подключить 5, то он попадет в таблицу GLBP, но пропускать через себя трафик не станет. А будет просто ждать, пока умрет какой-либо AVF.