HSRP
HSRP (Hot Standby Router Protocol, Hot Standby Redundancy Protocol) — протокол маршрутизации семейства FHRP (англ. First-hop redundancy protocols), разработанный компанией Cisco и стандартизованный в RFC 2281.
HSRP | |
---|---|
Уровень (по модели OSI) | Сетевой |
Семейство | TCP/IP |
Создан в | 1997 |
Порт/ID | 1985/UDP |
Назначение протокола | Резервирование шлюза в ethernet-сетях |
Спецификация | RFC 2281 |
Основные реализации (серверы) | Cisco, Juniper routers |
Расширяемость | Protocol version number |
Основные расширения | HSRP Version 2, MD5 authentication |
Разработчик | Cisco Systems |
Описание
HSRP был разработан компанией Cisco Systems. В марте 1998 года стандартизован в документе RFC 2281, написанном представителями Cisco Systems и Juniper Networks. В дальнейшем на основе HSRP был создан протокол VRRP (англ. Virtual Router Redundancy Protocol), не являющийся проприетарным, но имеющий патентные ограничения из-за того, что основан на HSRP. Полностью свободной от патентных споров альтернативой протоколу HSRP является протокол CARP, разработанный в 2003 году командой разработчиков операционной системы OpenBSD.
Протокол HSRP предназначен для того, чтобы добиться практически 100% доступности и отказоустойчивости первого хопа от отправителя («маршрут по умолчанию», default gateway, также иногда называемый «шлюз последней надежды»). Это достигается путём использования у двух или более маршрутизаторов или маршрутизирующих коммутаторов третьего уровня одного IP-адреса и MAC-адреса так называемого виртуального маршрутизатора. Такая группа называется HSRP-группой.
В терминологии HSRP-протокола существуют несколько основных понятий (терминов):
- Активный маршрутизатор (Active Router) — маршрутизатор или маршрутизирующий коммутатор третьего уровня, выполняющий роль виртуального маршрутизатора и обеспечивающий пересылку пакетов из одной подсети в другую;
- Резервный маршрутизатор (Standby Router) — маршрутизатор или маршрутизирующий коммутатор третьего уровня, выполняющий роль резервного виртуального маршрутизатора, ожидающего отказа активного маршрутизатора в рамках одной HSRP группы;
- Группа резервирования (Standby Group) — группа маршрутизаторов или маршрутизирующих коммутаторов третьего уровня, которые являются членами одной HSRP-группы и обеспечивают работу и отказоустойчивость виртуального маршрутизатора;
- Таймер приветствия (Hello Time) — промежуток времени, в течение которого маршрутизаторы или маршрутизирующие коммутаторы третьего уровня, находящиеся в рамках одной HSRP группы, ожидают пакеты приветствия (Hello Packet) от активного маршрутизатора;
- Таймер удержания (Hold Time) — промежуток времени, по истечении которого резервный маршрутизатор посылает пакет, в котором содержится информация об отказе активного маршрутизатора, тем самым осуществляет приоритетное прерывание в группе и берет на себя роль активного маршрутизатора.
Описание протокола, формат пакета и возможных состояний
HSRP протокол реализован поверх стека протоколов TCP/IP, для доставки служебной информации используется протокол UDP. Маршрутизаторы или маршрутизирующие коммутаторы, на которых сконфигурирован и функционирует протокол HSRP, в рамках обмена служебной информацией используют так называемые пакеты приветствия (hello packets). В свою очередь, данные пакеты отправляются на IP-адрес групповой рассылки (multicast) 224.0.0.2 (HSRP Version 1) или на 224.0.0.102 (HSRP Version 2) по протоколу UDP на порт 1985.
- Структура пакета
0 | 7 | 15 | 23 | |
Version | Type | Virtual Rtr ID | Priority | Count IP Addrs |
Auth Type | Advet Int | Checksum | ||
IP Address (1) | ||||
… | ||||
IP Address (n) | ||||
Authentication Data (1) | ||||
Authentication Data (2) |
Принцип действия
Из группы маршрутизаторов HSRP выбирает один активный и один standby маршрутизаторы. Остальные маршрутизаторы выступают как просто члены группы. Активный маршрутизатор отвечает за пересылку пакетов. Standby-маршрутизатор займет место Активного маршрутизатора в случае отказа последнего. Маршрутизатор с наибольшим приоритетом, из оставшихся членов группы, в этом случае, будет выбран в качестве Standby.
Выборы проводятся на основании приоритета маршрутизатора, который может изменяться в пределах от 1 до 255. Приоритет может быть назначен вручную, что позволяет влиять на процесс выбора. Если системный администратор не определил приоритет, используется значение по умолчанию, равное 100. Если ни одному из маршрутизаторов в группе не был назначен приоритет, то приоритеты всех маршрутизаторов совпадут и активным в этом случае станет маршрутизатор с наибольшим IP-адресом интерфейса на котором настроен HSRP. В процессе работы Активный и Standby маршрутизаторы обмениваются hello-сообщениями.
По умолчанию, активный маршрутизатор, каждые 3 секунды, рассылает hello-сообщение, которое сообщает «Ребята, всё ок! Я еще в строю!». Если в течение 10 секунд (три длительности hello-) нет ни одного hello-сообщения от активного маршрутизатора, резервный считает, что активный маршрутизатор «упал» и берет на себя роль активного маршрутизатора.
При подключении нового маршрутизатора к уже существующей группе он не будет выбран в качестве Active, даже при наличии большего приоритета, если не настроена опция preempt. Для повышения безопасности можно использовать процесс аутентификации при обмене сообщениями между маршрутизаторами.
Кроме того, есть возможность отслеживать состояние интерфейсов маршрутизатора, не принимающих участия в группе HSRP (uplink к другим сетям). И в зависимости от их работоспособности менять приоритет маршрутизатора в группе. Приоритет меняется ступенчато. По умолчанию при "падении" одного из интерфейсов он уменьшается на 10. Однако для того чтобы маршрутизатор,приоритет которого в результате этих изменений стал больше, взял на себя роль Active, должна быть настроена опция preempt.
См. также
Ссылки
- Hot Standby Router Protocol Features and Functionality : Document ID 9234 : [англ.] : [арх. 17 июня 2019]. — Cisco, 2006. — 25 May.
- Hot Standby Router Protocol (HSRP) : Frequently Asked Questions : Document ID 9281 : [англ.]. — Cisco, 2014. — 19 September.