Дубровицкий, Вадим Феликсович
- 1 year ago
- 0
- 0
HSRP ( Hot Standby Router Protocol, Hot Standby Redundancy Protocol ) — протокол маршрутизации семейства ( англ. ), разработанный компанией Cisco и стандартизованный в .
HSRP был разработан компанией Cisco Systems . В марте 1998 года стандартизован в документе , написанном представителями Cisco Systems и Juniper Networks . В дальнейшем на основе HSRP был создан протокол VRRP ( англ. Virtual Router Redundancy Protocol ), не являющийся проприетарным, но имеющий патентные ограничения из-за того, что основан на HSRP. Полностью свободной от патентных споров альтернативой протоколу HSRP является протокол CARP , разработанный в 2003 году командой разработчиков операционной системы OpenBSD .
Протокол HSRP предназначен для того, чтобы добиться практически 100% доступности и отказоустойчивости первого хопа от отправителя («маршрут по умолчанию», default gateway , также иногда называемый «шлюз последней надежды»). Это достигается путём использования у двух или более маршрутизаторов или маршрутизирующих коммутаторов третьего уровня одного IP-адреса и MAC-адреса так называемого виртуального маршрутизатора. Такая группа называется HSRP-группой.
В терминологии HSRP-протокола существуют несколько основных понятий (терминов):
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.