img

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

21 ноября
20:00
Бесплатный вебинар
Введение в Docker
Ведущий — Филипп Игнатенко.
Руководитель центра разработки
Записаться
img
img

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

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

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

Балансировка 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

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

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

  1. Роутер R3 (State is Listen) умрет, то тогда его клиентов возьмет любой из группы, либо R2, либо R4.
  2. Роутер R2 (State is Active) умрет, то тогда роль AVG займет роутер R4 (State is Standby), а также возьмет его клиентов (или распределит между R3/R4). R3 станет запасным AVG.
  3. Роутер 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.

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
DevOps
Скидка 25%
DevOps-инженер с нуля
Научитесь использовать инструменты и методы DevOps для автоматизации тестирования, сборки и развертывания кода, управления инфраструктурой и ускорения процесса доставки продуктов в продакшн. Станьте желанным специалистом в IT-индустрии и претендуйте на работу с высокой заработной платой.
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
В начале 2000-х, когда идея мессенджеров только формировалась, расширяемый протокол обмена сообщениями и информацией о присутств
img
Задержка в сети, или сетевая задержка, - это временная задержка при передаче запросов или данных от источника к адресату в сетев
img
Система доменных имен (DNS – Domain Name System) обеспечивает сетевую коммуникацию. DNS может показаться какой-то невидимой сило
img
Wi-Fi это технология, которая использует радиоволны для отправки и получения сигналов от находящихся поблизости устройств, чтобы
img
BGP (Border Gateway Protocol) - это протокол граничного шлюза, предназначенный для обмена информацией о маршрутизации и доступно
img
Когда читаете данную статью, браузер подключается к провайдеру (или ISP) а пакеты, отправленные с компьютера, находят путь до се
21 ноября
20:00
Бесплатный вебинар
Введение в Docker