HSRP - host standby router protocol, используется в решениях
отказоустойчивости.
Два рутера могут "делить" один IP-адрес между собой. Решение работает
только в режиме active/standby при пропадании active рутера адрес
забирает себе standby рутер.
Сообщения между рутерами посылаются на мультикаст адрес используется
протокол UDP порт 1985.
Замечание: происходит переключение быстро, поскольку рутеры разделяют
также и МАС адрес, который выбирается из диапазона:
где последние * отображают номер группы в шестнадцатеричном виде.
Существует две версии HSRP (1 и 2).
Основные отличия:
- Версия 1 использует для работы мультикаст 224.0.0.2, что конфликтует
с CGMP. Версия 2 использует мультикаст 224.0.0.102
- Версия 2 позволяет использовать большее количество групп (до 4096),
тогда как версия 1 только до 255
1. Минимальная настройка.
Команды вводятся в режиме конфигурации интерфейса
// Основной адрес интерфейса
RouterA(config-if)# ip address 10.0.0.254 255.255.255.0
// Версия HSRP
Router(config-if)# standby version 2
// Группа в пределах которой работает HSRP и "разделяемый" адрес
Router(config-if)# standby 400 ip 10.0.0.1
2. Дополнительная настройка
Команды вводятся в режиме конфигурации интерфейса
2.1. Выбор основного рутера. Добавляется приоритет. Основным будет
рутер с большим приоритетом. Может быть от 1 до 255.
По умолчанию равен 100.
Неясно как выбирается active/standby при настройках по умолчанию.
Router(config-if)# standby 400 priority 120
2.2. Обращать внимание на приоритет. Без этой команды приоритет просто
не учитывается.
Задержка указывает сколько подождать перед "отдачей" активной роли.
Router(config-if)# standby 400 preempt [delay]
2.3. Мониторинг дополнительного интерфейса. Если он падает то
приоритет рутера уменьшается на указанную величину, 50 в данном
случае.
Если величина уменьшения приоритета не указана значением по умолчанию
принимается 10.
Может указываться несколько раз для мониторинга нескольких
интерфейсов.
Router(config-if)# standby 400 track Serial0 50
2.4. Аутентификация. Строка должна быть одинаковой на всех рутерах в
одной группе.
Если используется старые модели маршрутизаторов, которые не
поддерживают более одного МАС на интерфейсе можно использовать
команду:
Router(config-if)# standby use-bia [interface]
Которая заставляет использовать аппаратный адрес вместо выбираемого
дополнительно виртуального. Запомнить просто: bia - burned-in address
4. Команды диагностики
Пример вывода команды диагностики.
Router#show standby
Ethernet0 - Group 1
Local state is Active, priority 70 (confgd 120), may preempt
Hellotime 3 sec, holdtime 10 sec
Next hello sent in 2.544
Virtual IP address is 10.0.0.5 configured
Active router is local
Standby router is unknown
Virtual mac address is 0000.0c07.ac01
2 state changes, last state change 00:00:48
IP redundancy name is "hsrp-Et0-1" (default)
Priority tracking 2 interfaces, 1 up:
Interface Decrement State
Serial0 10 Down (line protocol down)
Serial1 10 Up
Зачем нужен еще один протокол? В отличии от HSRP который работает
в режиме Active/Standby GLBP работает в режиме Active/Active.
Это означает, что дополнительно к функциям резервирования реализуемым
HSRP добавилась возвожность реализовать Load Sharing.
Краткий принцип работы: выбирается главный рутер (AVG), все остальные
играют пассивную (AVF) роль. Управляющий рутер назначает каждому
пассивному дополнительный виртуальный МАС адрес.
Каждый из рутеров имеет на интерфейса одинаковый виртуальный IP.
AVG отвечает на ARP запросы спрашивающие МАС виртуального IP посылая в
ответ один из виртуальных МАС адресов пассивных рутеров (AVF).
Соответственно можно ожидать, что распределение трафика по разным
рутерам будет примерно одинаковым.
Максимальное количество рутеров в одной GLBP группе равно четырем.
Количество GLBP групп на одном интерфейсе не должно превышать 1024.
Соответственно от 0 до 1023.
AVG - Active Virtual Gateway - главный рутер, основная задача
присвоение участвующим рутерам различных виртуальных МАС адресов и
ответ на ARP запросы касающиеся виртуального IP.
Дополнительно выбирается Standby Virtual Gateway который перебирает на
себя функции AVG в случае отказа последнего.
AVF - Active Virtual Forwarder - занимается непосредственно пересылкой
клиентского трафика.
2. Минимальная настройка
Команды вводятся в режиме конфигурации интерфейса
// Основной адрес интерфейса
RouterA(config-if)# ip address 10.0.0.254 255.255.255.0
// Группа в пределах которой работает GLBP и "разделяемый" адрес.
RouterA(config-if)# glbp 20 ip 10.0.0.1
Также есть возможность использовать несколько адресов в пределах
конкретной группы. Для этого необходимо использовать ключевое слово
secondary после ip адреса.
3. Дополнительные команды
// Приоритет при выборе AVG. Значение по умолчанию - 100.
RouterА(config-if)# glbp 20 priority 254
// Обращать внимание на приоритет при перераспределении ролей AVG/AVF.
Действует аналогично HSRP
RouterA(config-if)# glbp 20 preempt
// Алгоритм отвечающий за порядок ответа на ARP запросы. Может быть:
none - в этом случае балансировка не выполняется. AVG всегда отвечает
на ARP запросы только своим МАС. Т.е. работаем как обычный HSRP.
round-robin - Крутить по кругу. По истечению тайм-аута хранения МАС
адреса у клиента он может получить новый МАС в ответ от AVG. Значение
по умолчанию.
host-dependent - По истечению тайм-аута хранения МАС адреса у клиента
он гарантированно получит тот же МАС от AVF в ответ на новый запрос.
Конечно, до тех пор пока состояние группы неизменно.
Используется в том случае если на рутерах входящих в GLBP группу
осуществляется трансляция адресов (NAT), это гарантирует что текущие
сессии не потеряются.
weighted - Разделять полосу основываясь на весах весах каждого рутера.
Для использования весов необходимо задать их в конфигурации для
каждого рутера участвующего в группе с помощью команды:
RouterA(config-if)# glbp 10 weighting 70
Работает по простому принципу. Если на другом рутере в той же группе
задать вес 140, то распределение будет один к двум. Необходимо
учитывать, что это не распределение трафика, а распределение хостов.
// Пример
RouterA(config-if)# glbp 20 load-balancing round-robin
// Команда аналогичная HSRP, в ситауции когда рутер с большим
// приоритетом для данной группы появляется в сети. Отдавать ли ему роль
// AVG или нет. И если отдавать, то сколько подождать.
Router(config-if)# glbp 20 forwarder preempt delay minimum 30
// tracking. Первым делом нужно создать объект трекинга. Сделать это
// можно используя следующую команду:
Router(config)# track 100 interface Serial 2/0 line-protocol
// Применяем трекинг к glbp. Т.е. в glbp группе 20 отслеживать объект
// 100 и в случае падения уменьшать приоритет на 20.
Router(config-if)# glbp 20 weighting track 100 decrement 200
При этом что интересно, если один товарищ устал и оставшимся
приходится работать за себя и за того парня, AVG ответственнен за
пересылку трафика ранее ходившего через упавший AVF. Т.е. отвечает на
ARP запросы по его адресам тоже. Тут мне видится такая штука: видимо
при использовании в GLBP группе более чем двух активных AVF полезно
изначально (с помощью весов) занизить трафик идущий через AVG,
поскольку в случае поломки ему и так приходится работать за двоих.
4. Команды диагностики
Легче всего проверить как это выглядит со стороны клиента. Например в
данном случае используется алгорит балансировки round-robin. Вывод
команды sh arp с двух клиентов.
// Главное поле: Hardware Addr.
Client#sh arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 10.10.10.1 6 0007.b400.1401 ARPA FastEthernet0/0
client1#sh arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 10.10.10.1 4 0007.b400.1402 ARPA FastEthernet0/0
// Еще одна полезная команда
RouterA# sh glbp br
Interface Grp Fwd Pri State Address Active router Standby route
Fa0/0 20 - 254 Active 10.10.10.1 local 10.10.10.4
Fa0/0 20 1 7 Active 0007.b400.1401 local -
Fa0/0 20 2 7 Active 0007.b400.1402 local -
775 Прочтений • [HSRP и GLBP для повышения отказоустойчивости Cisco. (cisco cluster hsrp glbp balance)] [08.05.2012] [Комментариев: 0]