Меню

Настройка load balancing cisco



Урок 42. Настройка протоколов VRRP, HSRP и GLBP для резервирования маршрутизаторов Cisco

Представим себе обычную клиентскую сеть:

Данная сеть не лишена недостатков. При выходе из строя маршрутизатора доступа в интернет лишаются все пользователи данной сети.

Однако не стоит отчаиваться, так как у нас есть решение. Можно подключить второй роутер параллельно первому. Причем он будет имеет идентичную конфигурацию с первоначальным шлюзом (за исключением IP адресов своих интерфейсов):

Теперь при отказе основного роутера все функции на себя возьмет резервный и обрыв связи никто не заметит.

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

Они об этом не узнают. Им достаточно знать IP адрес виртуального шлюза по умолчанию, который существует в виде группы основного и резервного маршрутизаторов.

В этой группе всегда активным является только один маршрутизатор. Когда хосты пользователей просятся в интернет активный роутер отправляет свой МАС адрес в ARP запросе от пользователей.

Когда активный шлюз теряет связь с провайдером или выходит из строя, то об этом узнает резервный роутер и отправляет хостам пользователей свой МАС адрес.

Как видно принцип резервирования достаточно прост.

Но кто управляет всем этим процессом?

Для управления резервированием было разработано целое семейство протоколов First Hop Redundancy Protocol, FHRP . В него вошли протоколы HSRP, VRRP, GLBP. Опишем каждый из них в отдельности.

HSRP, описание и настройка

Hot Standby Router Protocol — разработка Cisco. Все потенциальные шлюзы по умолчанию объединяются в группу. Таких групп может быть несколько. В группе активным является всегда только один маршрутизатор/коммутатор. В группе также имеется резервный роутер, который постоянно следит за активным маршрутизатором. И если тот выйдет из строя, то резервный шлюз сразу его заменит.

Как определяются активный и резервный маршрутизаторы?

Все маршрутизаторы группы между собой общаются по адресу 224.0.0.2 (UDP порт 1985). После подачи питания они начинают выборы на право быть активным и резервным маршрутизаторами. Побеждает тот, у которого больше приоритет (0 — 255). По умолчанию он равен 100. Если приоритеты у всех равны, то сравниваются IP адреса. Побеждает маршрутизатор с большим адресом. Он и становится активным и переводится в состояние Active. Следующий за ним маршрутизатор становится резервным и переводится в состоянии Standby. Все остальные маршрутизаторы переводятся в состояние Listen. Они ждут следующих выборов в случае отказа активного маршрутизатора.

Все маршрутизаторы последовательно проходят следующие состояния:

Disabled → Init → Listen → Speak → Standby → Active

Как резервный маршрутизатор узнает, что активный роутер уже не в “строю”?

Активный маршрутизатор каждые 3 с (Hello интервал) рассылает пакеты Hello, которые прослушивает резервный маршрутизатор. Если после 3 с не поступит пакет Hello, то запустится Dead таймер, который равен 10с. По истечении этого таймера резервный маршрутизатор переводится в состояние Active и выбирается новый резервный маршрутизатор.

А что происходит, когда “оживает” бывший активный маршрутизатор?

Возможны 2 варианта:

1-й вариант. Ничего не происходит пока не “умрет” действующий активный маршрутизатор.

2-й вариант. “Оживший” роутер может снова переключится в состояние Active. Но для этого необходимо настроить функцию Preemtion на всех устройствах группы (об этом немного позже).

А если вдруг uplink одного из маршрутизаторов отключится. Что произойдет в данном случае?

Если это произойдет на активном шлюзе, то все хосты останутся без интернета. Но и здесь есть решение. В HSRP предусмотрена возможность для отслеживания uplink интерфейса. Как только роутер обнаруживает, что его WAN/uplink интерфейс не работает, то сразу же понизит приоритет HSRP в своей группе. Резервное устройство сразу же это узнает и примет управление на себя, став активным шлюзом. Но для этого необходимо активировать функцию Preemtion.

Настройка протокола очень проста, достаточно выполнить следующую команду:

Router(config-if)# standby номер_группы ip виртуальный_IP_адрес

Данную команду необходимо выполнить на всех роутерах группы.

Для того, чтобы повлиять на результаты выборов активного шлюза можно настроить приоритет:

Router(config-if)# standby номер_группы priority приоритет

Для возврата “ожившего” маршрутизатора в активное состояние необходимо на нем выполнить команду:

Router(config-if)# standby номер_группы preemt

Для отслеживания WAN/Uplink интерфейса на случай его отказа необходимо выполнить команду на всех роутерах:

Router(config-if)# standby номер_группы track название_и_номер_интерфейса

Функция Preemtion должна быть включена на всех маршрутизаторах.

Теперь посмотрим на состояние активного и резервного шлюзов с помощью следующих команд:

Router# show standby

Основной шлюз

Резервный шлюз

Router# show standby brief

Основной шлюз

Резервный шлюз

Протокол также поддерживает аутентификацию простым текстом:

Router(config-if)# standby номер_группы authentication пароль

Router(config-if)# standby номер_группы authentication md5 key-string пароль

VRRP, описание и настройка

Virtual Router Redundancy Protocol — альтернативный открытый HSRP протокол. Работает точно так же, как и HSRP. Протокол использует адрес 224.0.0.18 и отправляет пакеты Hello c интервалом в 1 с. Активный маршрутизатор называется master, все остальные — backup. Кроме того, все backup слушают master. Preemtion уже включена по умолчанию.

Настройка идентична HSRP с небольшим отличием:

Router(config-if)# vrrp номер_группы виртуальный_IP_адрес_и_маска

Для просмотра информации о работе и настройках:

Router# show vrrp

GLBP, описание и настройка

Gateway Load Balancing Protocol — проприетарный протокол Cisco. В отличие от предыдущих протоколов позволяет еще и балансировать нагрузкой. Для этого создается группа из 4 активных маршрутизаторов, через которые и осуществляется балансировка.

Читайте также:  Настройка шаблона shaper express

Кто управляет процессом балансировки?

В начале происходят выборы, по итогам которых выбирается главный шлюз. Данное устройство называется Active Virtual Gateway, AVG. Затем выбираются еще 3 ведомых устройства, которые называются Active Virtual Forwarder, AVF.

Все роутеры группы, помимо общего виртуального IP адреса (VIP), имеют и индивидуальный виртуальный МАС адрес. Когда хост посылает ARP запрос с целью узнать МАС адрес шлюза, то AVG выдает один из виртуальных МАС адресов группы. Таким образом и осуществляется балансировка нагрузки.

На основе чего происходят выборы?

На основе приоритета (по умолчанию 100) или IP адреса, если приоритеты равны.

Виртуальный МАС адрес тоже надо вручную настраивать?

Нет, он настраивается автоматически и принимает значения 0007.b400.01xx, где хх означает номер AVG/AVF.

Что произойдет, если из строя выйдет AVG или AVF?

Его место займет резервный маршрутизатор. Все активные устройства обмениваются каждые 3 с Hello пакетами. Резервные роутеры тоже принимают пакеты и ждут своего часа. Если через 3 с пакет Hello не будет получен, то запустится Dead таймер, который равен 10 с. В качестве резервного (Standby) маршрутизатора выбирается один из AVF. Когда Standby шлюз становится Active, то снова выбирается Standby.

Какой IP адрес используется для обмена Hello пакетами?

224.0.0.102, UDP порт 3222.

По какому принципу AVG балансирует нагрузкой?

GLBP поддерживает 3 режима балансировки:

Round Robin (включен по умолчанию) — балансировка осуществляется равномерно между всеми устройствами.

Weighted — балансировка осуществляется по весу AVF. У кого больше вес тот и принимает большую нагрузку.

Host dependent — используется, когда определенным хостам требуется постоянный МАС шлюза.

Настройка схожа с настройкой протоколов HSRP/VRRP:

Router(config-if)# glbp номер_групы ip виртуальный_IP_адрес

Уже после данной команды начнут работать балансировка нагрузки и резервирование. Следует помнить, что preemtion в AVG по умолчанию выключена, а на AVF — включена.

Для проверки работы и распределения ролей используй команды:

Router# show glbp brief

Router# show glbp

Как работает отслеживание WAN/Uplink интерфейса?

Отслеживание работает немного по-другому в отличие от HSRP/VRRP. Каждому интерфейсу AVF присваивается определенный вес (по умолчанию 100, максимум -254). Кроме того, устанавливаются нижний (lower) и верхний (upper) пороги весов. Когда GLBP обнаружит, что интерфейс WAN/Uplink недоступен, то уменьшит вес GLBP интерфейса на определенное значение (по умолчанию 10). То есть, если было 100, то после отказа линии станет 90. Если уменьшенное значение веса окажется ниже порога lower, то маршрутизатор теряет статус AVF и не участвует в балансировке нагрузки, а также не принимает участие в выборах. Если после того, как WAN/Uplink интерфейс восстановится, то восстановится и первоначальный вес GLBP интерфейса. Если этот вес окажется больше порога upper, то сможет снова стать AVF и принимать участие в выборах.

По умолчанию lower = 1, upper =100.

Для отслеживания состояния интерфейса используется специальный track объект. Данному объекту указывается номер и тип интерфейса, а также механизм запуска. После этого данный track объект привязывается к определенной GLBP группе. Поддерживаются 2 механизма запуска: состояние интерфейса на канальном уровне (line-protocol) и способность интерфейса передавать данные (ip routing).

То есть, если указать 1-й способ, то операционная система будет отслеживать состояние интерфейса на канальном и следовательно на физическом уровнях. Как только произойдет отказ интерфейса либо обрыв линии, то активируется механизм запуска и вес GLBP интерфейса уменьшится.

2-й способ отвечает за следующие состояния:

  • Наличие IP адреса на интерфейсе. Это особенно актуально, если настроен DHCP клиент.
  • Состояние интерфейса на канальном уровне
  • Маршрутизация на интерфейсе. К примеру, у нас могут быть настроены виртуальные интерфейсы (Dialer, Tunnel). Сам канальный протокол может быть в состоянии UP, но маршрутизация не будет работать. В этом случае нам и сгодится данная опция отслеживания.

Попробуем настроить сначала 1-й способ.

Создаем трэкинг объект:

R outer(config)# track 1 interface serial 0/0 line-protocol

Затем определим вес самого AVF и его нижний и верхний пороги весов:

Router(config)# interface fastethernet 0/0

Router(config-if)# glbp 1 weighting 150 lower 130 upper 140

И привязываем трэкинг объект к GLBP группе c шагом уменьшения веса:

Router(config-if)# glbp 1 weighting track 1 decrement 30

Теперь, выключив интерфейс на основном маршрутизаторе, через 30 секунд резервный шлюз изменит свой статус GLBP.

Для настройки 2-го способа достаточно в трэкинг объекте выбрать ip routing:

Router(config)# track 1 interface serial 0/0 ip routing

Вот и все. Кстати, трэкинг объекты можно использовать и в HSRP/VRRP

Источник

Cisco GLBP — Настройка

Рассмотрев настройку резервирования маршрутизаторов 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)

Читайте также:  Пионер deh 8500bt настройка

— 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#

Источник

Adblock
detector