Попробуем присмотреться к поведению протокола на практике. Это не руководство по
настройке, а скорее дополнение, читать которое есть смысл, понимаю основные теоретические
особенности HSRP. Все
примеры, приведенные тут, проверялись на такой конфигурации:
Cisco IOS Software, 3600 Software (C3660-JK9S2-M), Version 12.4(15)T14, RELEASE SOFTWARE (fc2)
Cisco IOS Software, 3600 Software (C3660-JK9S2-M), Version 12.4(15)T14, RELEASE SOFTWARE (fc2)
Итак, базовая настройка
interface FastEthernet0/0
ip address 10.1.100.5 255.255.0.0duplex autospeed autostandby ip 10.1.100.10end
Несколько
наблюдений:
Если не
указать номер группы, то будет использоваться номер 0. Таким образом:
standby ip 10.1.100.10
равносильно
standby 0 ip 10.1.100.10
Также, если
не указан приоритет, то активным роутером будет выбран тот, у которого выше IP-адрес.
Далее, если
параметры не будут совпадать, то каждый из роутеров будет считать себя активным
и периодически отправлять на консоль сообщения
*Mar 1 00:53:22.999: %IP-4-DUPADDR: Duplicate address 10.1.100.10 on FastEthernet0/0, sourced by 0000.0c07.ac00
Если же в
группе адреса совпадать не будут, то роутеры таки договорятся, кто из них
активный, а кто запасной, но на консоли появится сообщение
*Mar 1 00:56:21.811: %HSRP-4-DIFFVIP1: FastEthernet0/0 Grp 0 active routers virtual IP address 10.1.100.10 is different to the locally configured address 10.1.100.11
Далее,
по-умолчанию используется версия протокола 1, ее можно поменять на 2, версии
несовместимы, маршрутизаторы не договорятся. Из различий, например, то, что
пакеты шлются на разные multicast адреса (версия 1 - 224.0.0.2 , версия 2 - 224.0.0.102).
Более подробно тут
Если изменять таймеры (напомню, первое число это секунды hello-таймера, вторая – hold-таймера)
Если изменять таймеры (напомню, первое число это секунды hello-таймера, вторая – hold-таймера)
standby 0 timers 2 7
То на всех маршрутизаторах будет использоваться именно те значения, которые
выставлены на активном
R2(config-if)#standby 0 timers 2 7R2(config-if)#do show standFastEthernet0/0 - Group 0State is Standby7 state changes, last state change 00:07:48Virtual IP address is 10.1.100.10Active virtual MAC address is 0000.0c07.ac00Local virtual MAC address is 0000.0c07.ac00 (v1 default)Hello time 10 sec (cfgd 2 sec), hold time 35 sec (cfgd 7 sec)Next hello sent in 1.264 secsAuthentication MD5, key-string "america"Preemption disabledActive router is 10.1.100.4, priority 100 (expires in 27.092 sec)Standby router is localPriority 100 (default 100)Group name is "hsrp-Fa0/0-0" (default)
R2(config-if)#
так что как-то они там между собой договариваются, и несовпадения таймеров
бояться не стоит. Правда тут непонятно, ибо по-умолчанию используется протокол
версии 1, а согласование таймеров завялено в версии 2. По умолчанию, кстати,
используются значения таймеров 3 и 10.
Также можно
заставить маршрутизатор использовать вместо стандартных MAC-адресов для HSRP вшитые
адреса интерфейсов
standby use-bia
При этом показывать будет вот так:
R1(config-if)#do show standFastEthernet0/0 - Group 0State is Active5 state changes, last state change 00:30:11Virtual IP address is 10.1.100.10Active virtual MAC address is cc00.1730.0000
Local virtual MAC address is cc00.1730.0000 (bia)
или можно задать альтернативный MAC-адрес самостоятельно
standby mac-address 0015.5dce.4с07
и если это существующий в сети MAC-адрес, то можно не только получить
нестабильно работающую сеть, но и организовать атаку man-in-the-middle. Когда пакеты,
адресованные серверу, приходят сначала к нам на маршрутизатор (потому что у нас MAC-адрес совпадающий и, допустим, мы быстрее отвечаем на ARP-запросы), а потом мы уже отправляем их на сервер. Ну и мы,
соответственно, можем анализировать проходящий траффик.
При этом
если попытаться задать вручную МАК-адрес из
другой HSRP-группы,
то получим ошибку. Попытаемся задать группе 0 адрес группы 10
R1(config-if)#stand mac-address 0000.0c07.ac0a
% Invalid MAC address.R1(config-if)#
Чтобы роутер
при возвращении в активное состояние ждал определенное время можно
воспользоваться командой
standby delay minimum 10 reload 60
Указано обычно ждать 10 секунд, после перезагрузки – 60. Это необходимо,
например, чтобы успела заполниться таблица маршрутизации до того, как роутер
станет активным.
Как уже
говорилось, для обмена информацией в HSRP используется адрес 224.0.0.2, порт 1985. Поэтому, если на
интерфейсе настроен ACL,
то договориться роутеры не смогут.
Команда
standby preempt
позволяет динамически забирать роль активного маршрутизатора на себя. Без этой
команды, если повысить приоритет роутеру, то он не станет активным. При этом
эта команда должна быть использована на роутере, который пытается стать
активным.
Еще интересно, что если пустить traceroute, то там мы увидим именно реальный IP-адрес интерфейса, а не виртуальный.
Вот пока все мои наблюдения при детальном знакомстве с HSRP.
Еще интересно, что если пустить traceroute, то там мы увидим именно реальный IP-адрес интерфейса, а не виртуальный.
Вот пока все мои наблюдения при детальном знакомстве с HSRP.
как снять с учета битый автомобиль
ReplyDelete