Работа протокола GLBP (Gateway Load Balancing Protocol) аналогична работе других протоколов отказоустойчивого шлюза, но не идентична. Это проприетарный протокол Cisco, он не только повышает доступность шлюза, но и распределяет нагрузку между маршрутизаторами на которых он поднят. В протоколах HSRP и VRRP основную работу выполняет основной, активный маршрутизатор. Остальные маршрутизаторы в группе ждут падения активного и только после этого вступают в активную работу. GLBP обеспечивает распределение нагрузки на несколько маршрутизаторов (шлюзов) используя один виртуальный IP-адрес и несколько виртуальных MAC-адресов. Каждый маршрутизатор сконфигурирован с одинаковым виртуальным IP-адресом и все маршрутизаторы в виртуальной группе участвуют в передаче пакетов. Члены GLBP группы выбирают один шлюз который будет активным виртуальным шлюзом active virtual gateway (AVG) для этой группы. Другие члены группы обеспечивают резервирование для AVG в случае если AVG станет недоступным. AVG назначает виртуальный MAC адрес для каждого члена GLBP группы. Каждый член группы участвует в передаче пакетов, используя виртуальный MAC адрес, выданный AVG. Этих членов группы называют active virtual forwarders (AVFs). AVG ответственен за выдачу ответов по протоколу Address Resolution Protocol (ARP) на запросы к виртуальному IP-адресу. Распределение нагрузки достигается тем что AVG отвечает на ARP запросы используя разные виртуальные MAC-адреса. Маршрутизаторы отправляют друг другу сообщения hello каждые 3 секунды. Сообщения отправляются на адрес 224.0.0.102, UDP порт 3222 (отправителя и получателя).
GLBP Gateway Priority
- определяет роль, которую каждый маршрутизатор
AVF играет в группе. Т.е. с помощью этого свойства можно определить последовательность выбора нового AVG, если старый AVG станет недоступным. Приоритет можно определить на каждом маршрутизаторе значением от 1 до 255 командой: glbp priority. Маршрутизатор с большим приоритетом становится AVG.По умолчанию схема выбора AVG только на основе приоритета выключена. Запасной AVF станет AVG только если текущий AVG станет недоступным. Что бы разрешить выборы AVG на основе приоритета нужно ввести команду: glbp preemptGLBP поддерживает следующие режимы балансировки нагрузки:None — режим, при котором коммутатор не обеспечивает балансировку нагрузки. На все запросы клиентов он отвечает своим МАК адресом. Второй коммутатор начинает работу только после того как основной коммутатор (AVG) выйдет из строя или станет недоступным.</li>Weighted load-balancing — балансировка нагрузки производится в соответствии с весом каждого коммутатора. Вес коммутатора назначается инженером на каждом коммутаторе отдельно. Например если в GLBP группе два коммутатора, у AVG вес 70 а у AVF 140, то нагрузка будет распределяться 1:2. Другими словами из трех полученных запросов на MAC-адрес AVG один раз ответит своим MAC-адресом и дважды MAC-адресом AVF коммутатора.</li>Host-dependent load-balancing — этот режим используется в случае если есть необходимость в реализации трансляции адресов Network Address Translation (NAT), так как этот режим гарантирует возвращение клиенту того же MAC-адреса AVF коммутатора который он использовал ранее и следовательно NAT сессия у клиента не прерывается. Клиенты будут получать те же MAC-адреса AVF до тех пор, пока количество коммутаторов в GLBP группе не изменится.</li>Round-robin load-balancing — режим используется по умолчанию. В этом режиме AVG выдает MAC-адреса AVF попеременно.</li></ul>
Режим preempt
Этот режим позволяет маршрутизатору с более высоким приоритетом перехватить роль activ. В GLBP есть два режима preempt: для AVG — по умолчанию отключен, для AVF — по умолчанию включен, с задержкой 30 секунд. По умолчанию режим preempt для AVG отключен. То есть, backup virtual gateway может стать AVG только если текущий AVG выйдет из строя.
Object Tracking
Удобная возможность повлиять на выбор AVF.
SWG1(config)# track 1 interface FastEthernet0/1 line-protocol
Указание объекта, который будет влиять на вес GLBP, если интерфейс выключается, то вес уменьшается на 11 (по умолчанию на 10):
SWG1(config-if)# glbp 1 weighting track 1 decrement 11
Настройка пороговых значений веса, которые регулируют будет ли маршрутизатор выполнять роль GLBP gateway. Для данного примера, начальное значение 200. Если интерфейс fa0/1 выключается, то значение становится 189. Так как оно меньше, чем значение lower, то маршрутизатор не может выполнять роль active forwarder. Когда интерфейс включится, то значение станет снова 200. Так как это больше чем значение upper, то маршрутизатор снова становится active forwarder:1
SWG1(config-if)# glbp 1 weighting 200 lower 192 upper 195
С помощью этих пороговых значений можно привязывать определенные значения весам таким образом, чтобы, например, если два интерфейса не доступны (с альтернативными путями к сети), то тогда маршрутизатор не будет выполнять роль active forwarder.
GLBP Client Cache
По умолчанию функция GLBP Client Cache отключена. После включения функции AVG начинает сохранять у себя информацию о том какие хосты используют какой gateway. Включение GLBP Client Cache:
SWG1 (config-if)# glbp 0 client-cache
Просмотр информации о GLBPClient Cache (хранится только на AVG):
SWG1# show glbp detail
http://xgu.ru/wiki/GLBPFHRP (First Hop Redundancy Protocol) — семейство протоколов, предназначенных для создания избыточности шлюза по умолчанию. Общей идеей для данных протоколов является объединение нескольких маршрутизаторов в один виртуальный маршрутизатор с общим IP адресом. Этот IP адрес будет назначаться на хостах как адрес шлюза по умолчанию. Свободной реализацией данной идеи является протокол VRRP (Virtual Router Redundancy Protocol). В этой статье рассмотрим основы протокола VRRP. VRRP-маршрутизаторы объединяются в один виртуальный маршрутизатор. Все маршрутизаторы в группе имеют общий виртуальный IP (VIP) адрес и общий номер группы или VRID (Virtual Router Identifier). Один маршрутизатор может состоять в нескольких группах, каждая из которых должна иметь свою уникальную пару VIP/VRID. В случае с Cisco виртуальный маршрутизатор задается на интересующем нас интерфейсе командой:
R1(config-if)# vrrp ip <ip>
Все маршрутизаторы делятся на два типа: VRRP Master и VRRP Backup. VRRP Master — это маршрутизатор, который занимается пересылкой пакетов для данного виртуальной группы. VRRP Backup — это маршрутизатор, который ожидает пакет от Master. Если пакеты от Master перестают приходить, Backup пытается перейти в состояние Master. Маршрутизатор становится Master, если имеет наивысший приоритет. Master постоянно рассылает сообщения на широковещательный адрес 224.0.0.18, чтобы сообщить Backup маршрутизаторам, что он работает. Master отправляет сообщения согласно таймеру Adver Timer, равный по умолчанию 1 секунде. При этом в качестве MAC адреса отправителя используется адрес группы 00:00:5E:00:01:xx, где xx — VRID в шестнадцатеричном формате. В данном примере используется первая группа. Если Backup маршрутизаторы не получают сообщения в течении трех Adver Timer (Master Down Timer), то новым Master становится маршрутизатор с наибольшим приоритетом, либо маршрутизатор с наибольшим IP. При этом Backup маршрутизатор с более высоким приоритетом перехватит роль Master с более низким приоритетом. Однако, когда у Backup отключен режим preempt, Backup не станет перехватывать роль у Master.
R1(config-if)# no vrrp preempt
Если VRRP-маршрутизатор является владельцем VIP адреса, то он всегда перехватывает роль Master. VRRP приоритет задается в значениях от 1 до 254. Значение 0 зарезервировано для случаев, когда Master необходимо снять с себя ответственность за маршрутизацию. Значение 255 устанавливается маршрутизатору владельцу VIP. Приоритет по умолчанию равен 100, но может задаваться административно:
R1(config-if)#vrrp priority <priority>
мы можем увидеть приоритет маршрутизатора, когда он задан административно: А тут представлен случай, когда маршрутизатор является владельцем VIP: VRRP маршрутизатор может иметь три состояния: Initialize, Backup, Master. Эти состояния маршрутизатор последовательное меняет. В состоянии Initialize маршрутизатор ожидает начала работы. Если этот маршрутизатор является владельцем VIP адреса (приоритет равен 255), то маршрутизатор отправляет сообщения о том что становится Master. Он также отправляет gratuitous ARP-запрос, в котором MAC-адрес источника равен адресу виртуального маршрутизатора. Затем он переходит в состояние Master. Если маршрутизатор не является владельцем VIP, то он переходит в состояние Backup. В состоянии Backup маршрутизатор ожидает пакеты от Master. Маршрутизатор в этом состоянии не отвечает на ARP-запросы от VIP-адреса. Также он не принимает пакеты, у которых в качестве адреса назначения стоит MAC-адрес виртуального маршрутизатора. Если Backup не получает сообщения от Master в течение Master Down Timer, то он отправляет VRRP сообщение о том, что собирается стать Master. Затем отправляет широковещательное VRRP сообщение, в котором MAC-адрес источника равен адресу этого виртуального маршрутизатора. В данном сообщении маршрутизатор указывает свой приоритет. В состоянии Master маршрутизатор обрабатывает пакеты, адресованные виртуальному маршрутизатору. Он так же отвечает на ARP-запросы к VIP. Master рассылает VRRP сообщения каждые Adver Timer, чтобы подтвердить что он работает.
*May 13 19:52:18.531: %VRRP-6-STATECHANGE: Et1/0 Grp 1 state Init -> Backup *May 13 19:52:21.751: %VRRP-6-STATECHANGE: Et1/0 Grp 1 state Backup -> Master
VRRP также позволяет балансировать нагрузку между несколькими маршрутизаторами. Для этого на одном интерфейсе создается две VRRP группы. Одной группе назначается больший приоритет, чем другой. При этом на втором маршрутизаторе приоритет задается противоположным образом. Т.е. если на одном маршрутизаторе приоритет первой группы равно 100, а второй группы — 200, то на другом маршрутизаторе приоритет первой группы будет 200, а второй 100. Как сказано ранее, в каждой группе должен быть свой уникальный VIP. В итоге, мы получаем два ip адреса, обслуживаемые двумя маршрутизаторами, каждый из которых может служить шлюзом по умолчанию. Половине компьютеров назначается один адрес шлюза по умолчанию, половине другой. Таким образом половина трафика будет идти через один маршрутизатор, а половина через другой. При выходе из строя одного из маршрутизаторов, второй перехватывает на себя работу обеих VIP. Таким образом VRRP позволяет организовать отказоустойчивость шлюза по умолчанию, повысив надежность сети. А в случае использования нескольких виртуальных маршрутизаторов можно и балансировать нагрузку между реальными маршрутизаторами. Скорость реакции на отказ может быть сокращена за счет уменьшения таймеров.Как видно из предыдущих статей о протоколах резервирования маршрутизатора по умолчанию, при использовании протоколов HSRP и VRRP в каждый момент времени трафик от хостов во внешнии сети проходит через один активный (active или master) маршрутизатор, в то время, как остальные члены группы лишь контролируют состояние активного маршрутизатора в ожидании его выхода из строя. Балансировка в таких случаях может быть выполнена лишь вручную, путем создания нескольких групп с разными вируальными IP адресами. При использовании такой схемы настройка маршрутизатора по умолчанию у хостов сети будет различаться. Чтобы обойти данное неудобство компания Cisco разработала и внедрила на своих топовых коммутаторах протокол GLBP — Gateway Load Balancing Protocol — протокол балансировки нагрузки между маршрутизаторами. Как и в ранее рассмотренных протоколах, в GLBP маршрутизаторы объединяются в группы и нагрузка распределяется между четырьмя маршрутизаторами в данной группе. Это достигается путем использования виртуальных MAC адресов, который хост в сети получает в ARP ответе. На ARP запросы хостов с адресом маршрутизатора по умолчанию отвечает активный виртуальный шлюз (active virtual gateway — AVG), который, подобно активному маршрутизатору в протоколах HSRP и VRRP, выбирается по наибольшему приоритету или наибольшему IP адресу. Но в ответе может содержаться не только его виртуальный MAC адрес, но и виртуальный MAC адрес любого маршрутизатора-члена группы. Адрес какого именно маршрутизатора будет содержаться в ARP-ответе зависит от алгоритма балансировки. Остальные маршрутизаторы группы называются AVF — active virtual forwarder и занимаются маршрутизацией трафика в другие сети. Для каждого AVF AVG назначает виртуальный MAC адрес. В группе максимальное число виртуальных MAC адресов составляет 4, при этом остальные маршрутизаторы являются запасными (backup) на случай, если какой либо из AVF выйдет из строя. Номера групп в GLBP могут принимать значения от 0 до 1023, приоритет от 1 до 255, по умолчанию — 100. По умолчанию опция preempt отключена и ее необходимо прописывать в конфигурации. По умолчанию интервалы передачи hello пакетов составляет 3 секунды (диапазон от 1 до 60 секунд или от 50 до 60000 мс), holdtime — 10 секунд (должен быть больше hellotime и может достигать 180 секунд). Стоит отметить, что настроить интервалы достаточно на AVG, который распространит новый значения по сети. Виртуальный MAC адрес имеет вид 0007.b4xx.xxyy, где xxxx — 10 битный номер GLBP группы, дополненный нулями до 16 бит, а yy — 8 бит номера маршрутизатора. Для наблюдения за интерфейсами и сменой ролей маршрутизаторов в соответствии с измерением состояния интерфейсов в GLBP используются веса. По умолчанию вес каждого маршрутизатора максимален и составляет 100 (может быть изменен на число из диапазона 1-254). Когда контролируемый интерфейс отключается, вес уменьшается. Устанавливаются пороговые значения веса (минимальное (по умолчанию 1) и максимальное (по умолчанию 100)), при котором маршрутизатор перестает быть AVF или становится им. В протоколе GLBP предусмотрено несколько алгоритмов балансировки нагрузки. Первый -round-robin — при котором в каждом новом ARP-ответе передается значение виртуального MAC адреса следующего AVF группы. Данный алгоритм используется по умолчанию. Следующий, weighted, определяет следующий AVF по его весу. Чем выше вес AVF, тем в большем количестве ARP ответов будет указан его виртуальный MAC. Алгоритм host dependent позволяет обеспечить неизменность MAC адреса маршрутизатора по умолчанию для хостов. Указание, какой алгоритм использовать, выполняет командаglbp group-number load-balancing [round-robin | weighted | host-dependent] Настройка GLBP для схем, рассмотренных в предыдущих статьях о протоколах резервирования маршрутизаторов по умолчанию выглядит следующим образом:interface fa0/0.100encapsulation dot1q 200 Для маршрутизатора R2 конфигурация выглядит следующим образом:interface fa0/0.100encapsulation dot1q 100encapsulation dot1q 200Таким образом выглядит настройка протокола GLBP.Вторая схема, рассматриваемая в предыдущих статьях, не имеет смысла, так как при использовании GLBP балансировка осуществляется по умолчанию.Для контроля за его работой существуют следующие команды: Заключение Протокол GLBP является наиболее богатым по функционалу протоколом резервирования маршрутизатора по умолчанию. Однако его применение ограничивается его проприетарным происхождением и реализованностью лишь в ограниченном количестве топовых устройств. В статье был рассмотрен последний протокол резервирования маршрутизатора по умолчанию, рассматриваемый в курсе CCNP. Спасибо за внимание!Используемые источники:
- http://steinkafer.blogspot.com/2016/06/glbp.html
- https://habr.com/post/452490/
- http://gh05ter.blogspot.com/2012/04/gateway-load-balancing-protocol.html