VRRP

Материал из Xgu.ru

Перейти к: навигация, поиск
stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.


VRRP (Virtual Router Redundancy Protocol) — сетевой протокол, предназначенный для увеличения доступности маршрутизаторов выполняющих роль шлюза по умолчанию. Это достигается путём объединения группы маршрутизаторов в один виртуальный маршрутизатор и назначения им общего IP-адреса, который и будет использоваться как шлюз по умолчанию для компьютеров в сети.

Содержание

[править] Терминология протокола

  • VRRP-маршрутизатор (VRRP Router) — маршрутизатор, на котором работает протокол VRRP. Он может участвовать в одном или более виртуальных маршрутизаторах.
  • Виртуальный маршрутизатор (Virtual Router, VR) — абстрактный объект, которым управляет VRRP. Выполняет роль маршрутизатора по умолчанию для компьютеров в сети. Фактически, виртуальный маршрутизатор — это группа интерфейсов маршрутизаторов, которые находятся в одной сети и разделяют Virtual Router Identifier (VRID) и виртуальный IP-адрес.
  • Владелец IP-адреса (IP Address Owner) — VRRP-маршрутизатор, который использует IP-адрес, назначенный виртуальному маршрутизатору, как реальный IP-адрес, присвоенный интерфейсу.
  • VRRP-объявление (ADVERTISEMENT) — сообщения, которые отправляет Master-маршрутизатор.
  • Виртуальный IP-адрес (Virtual IP address) — это IP-адрес, присвоенный интерфейсу одного из маршрутизаторов, которые составляют Virtual Router. Используется также название — основной IP-адрес (Primary IP Address). В VRRP-объявлениях в качестве адреса отправителя всегда используется виртуальный IP-адрес.
  • Virtual Router Master или VRRP Master router — VRRP-маршрутизатор, который отвечает за отправку пакетов, отправленных на IP-адрес, который ассоциирован с виртуальным маршрутизатором, и за ответы на ARP-запросы, отправленные на этот адрес. Если владелец IP-адреса доступен, то он всегда становится Master.
  • Virtual Router Backup или VRRP Backup router — это группа маршрутизаторов, которые находятся в режиме ожидания и готовы взять на себя роль VRRP Master router, как только текущий VRRP Master router станет недоступным.
  • Виртуальный MAC-адрес (Virtual MAC) — 0000:5E00:01xx, где xx — номер группы VRRP.

[править] Описание протокола

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

Для группы маршрутизаторов настраивается их принадлежность виртуальному маршрутизатору. Фактически, виртуальный маршрутизатор — это группа интерфейсов маршрутизаторов, которые находятся в одной сети и разделяют Virtual Router Identifier (VRID) и виртуальный IP-адрес.

VRRP-маршрутизатор может находиться в нескольких виртуальных маршрутизаторах, каждый с уникальной комбинацией VRID/IP-адрес. Соответствия между VRID и IP-адресом должны быть одинаковыми на всех маршрутизаторах в одной сети.

В любой момент времени только один из физических маршрутизаторов выполняет маршрутизацию трафика, то есть, становится VRRP Master router, остальные маршрутизаторы в группе становятся VRRP Backup router. Если текущий VRRP Master router становится недоступным, то его роль берет на себя один из VRRP Backup маршрутизаторов — тот, у которого наивысший приоритет. Задание приоритета позволяет определить более приоритетные пути административно.

Backup-маршрутизатор не будет пытаться перехватить на себя роль Master-маршрутизатора, если только у него не более высокий приоритет, чем у текущего Master-маршрутизатора. VRRP позволяет административно запретить перехват роли Master-маршрутизатора. Единственное исключение из этого правила — VRRP-маршрутизатор всегда будет становиться Master, если он владелец IP-адреса, который присвоен виртуальному маршрутизатору.

В каждом виртуальном маршрутизаторе только Master отправляет периодические VRRP-объявления на зарезервированный групповой адрес 224.0.0.18. На канальном уровне в качестве MAC-адреса отправителя VRRP-объявлений используется виртуальный MAC-адрес.

[править] Примеры использования

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

Первый пример приведён для понимания принципов работы протокола. Как правило, такая схема не используется в реальных сетях.

Два маршрутизатора, R1 и R2, находятся в одном широковещательном сегменте, и на интерфейсах, которые смотрят в локальную сеть, назначены IP-адреса, соответственно 10.0.1.1 и 10.0.1.2. Компьютеры в сети используют в качестве шлюза по умолчанию R1 (обозначен DG на рисунке).

Должен быть определён виртуальный маршрутизатор, который поставит в соответствие уникальному идентификатору (VRID) IP-адрес, для которого один из маршрутизаторов является владельцем. R1 владелец IP-адреса 10.0.1.1, а R2 владелец IP-адреса 10.0.1.2. Для примера определён виртуальный маршрутизатор, для которого VRID = 1, а IP-адрес 10.0.1.1. После включения VRRP на маршрутизаторе R1 для VRID = 1, он берет на себя роль Master. Для него приоритет устанавливается равным 255, так как он является владельцем IP-адреса виртуального маршрутизатора. После включения VRRP на маршрутизаторе R2 для VRID = 1, он становится Backup-маршрутизатором. Для него приоритет устанавливается равным 100, так как он не является владельцем IP-адреса виртуального маршрутизатора.

При таких настройках, если маршрутизатор R1 доступен, все компьютеры передают трафик через R1 (обозначено стрелками на рисунке). Если R1 по каким-либо причинам выходит из строя, то VRRP переводит R2 в роль Master. После этого R2 отвечает за передачу трафика, который отправлен на IP-адрес виртуального маршрутизатора.

В первом примере IP-адрес не резервируется и используется только R2, как IP-адрес интерфейса. Следующий пример показывает как выполнить резервирование и IP-адреса R2.

Пример 2. Два маршрутизатора VRRP используют два виртуальных маршрутизатора. Оба маршрутизатора передают трафик

Второй пример показывает схему, которая использовалась и в первом примере, но теперь маршрутизаторы используют два виртуальных маршрутизатора и оба маршрутизатора передают трафик. Такая схема более предпочтительна для использования в реальных сетях, чем предыдущая.

Половина компьютеров использует в качестве шлюза по умолчанию R1, вторая половина — R2. Настройки виртуального маршрутизатора с VRID = 1 остаются точно такими же как в первом примере. Добавляется второй виртуальный маршрутизатор с VRID = 2 и IP-адресом 10.0.1.2. Для этого виртуального маршрутизатора R2 будет выполнять роль Master, а R1 — Backup.

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

Хотя в обоих примерах использовались только два маршрутизатора, маршрутизаторов может быть и больше. Тогда будет один Master и несколько Backup и, при выходе из строя Master-маршрутизатора, приоритет, присвоенный Backup-маршрутизаторам, будет определять, кто из них будет новым Master (если приоритет больше, то маршрутизатор становится Master). Если у маршрутизаторов одинаковые значения приоритетов, то сравниваются их IP-адреса — тот у кого больше IP-адрес, будет Master.

Note-icon.gif

Как правило, IP-адреса компьютерам назначаются с помощью протокола DHCP. Во втором примере DHCP-сервер должен выдавать половине компьютеров в подсети IP-адрес маршрутизатора по умолчанию 10.0.1.1, а другой половине компьютеров — 10.0.1.2. Это можно реализовать с помощью опции 82 DHCP. Идея заключается в том, чтобы выдавать компьютерам, которые подключены к разным коммутаторам, разные значения IP-адреса шлюза по умолчанию.

[править] Формат пакета VRRP

VRRP-пакеты передаются для того, чтобы передать всем VRRP-маршрутизаторам информацию о состоянии и приоритете Master-маршрутизатора, который ассоциирован с VRID.

VRRP-пакеты инкапсулируются в IP-пакеты и отправляются на адрес групповой рассылки, который зарезервирован для VRRP.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Version| Type  | Virtual Rtr ID|   Priority    | Count IP Addrs|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Auth Type   |   Adver Int   |          Checksum             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         IP Address (1)                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                            .                                  |
   |                            .                                  |
   |                            .                                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         IP Address (n)                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Authentication Data (1)                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Authentication Data (2)                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Поля пакета:

  • Version — версия протокола. Текущая версия — 2.
  • Type — тип VRRP-пакета:
    • Пакеты с неизвестным типом пакета должны отбрасываться,
    • Единственный тип пакета, который определён в текущей версии протокола: 1 — ADVERTISEMENT,
  • Virtual Rtr ID (VRID) — идентифицирует виртуальный маршрутизатор, о статусе которого передается информация:
    • Диапазон значений от 1 до 255,
  • Priority — указывает приоритет VRRP-маршрутизатора, который отправляет пакет. Чем выше значение поля, тем более высокий приоритет:
    • Приоритет маршрутизатора, который является владельцем IP-адреса (или адресов) должен быть равен 255,
    • У остальных маршрутизаторов значение приоритета должно быть в диапазоне от 1 до 254. По умолчанию используется приоритет 100,
    • Значение приоритета, равное 0, имеет специальное назначение — указывает, что текущий Master перестал участвовать в работе VRRP. Это используется для того, чтобы быстрее перевести Backup-маршрутизаторы в роль Master, не дожидаясь окончания таймера,
  • Count IP Addrs — количество IP-адресов, которые содержатся в данном VRRP-объявлении
  • Authentication Type — используемый тип аутентификации:
    • Должен быть уникальным для виртуального маршрутизатора,
    • Пакет, тип аутентификации которого не совпадает с локально настроенным типом аутентификации, или у которого указан неизвестный тип аутентификации, должен быть отброшен,
    • Определены такие типы аутентификации:
      • 0 - No Authentication — аутентификация не используется. В поле Authentication Data передаются 0,
      • 1 - Reserved — зарезервированное значение, которое используется для совместимости с RFC 2338,
      • 2 - Reserved — зарезервированное значение, которое используется для совместимости с RFC 2338,
  • Advertisement Interval (Adver Int) — интервал (в секундах) между отправкой VRRP-объявлений. По умолчанию равен 1 секунде;
  • Checksum — контрольная сумма VRRP-пакета;
  • IP Address(es) — один или более IP-адресов, которые ассоциированы с виртуальным маршрутизатором;
  • Authentication Data — поле используется для совместимости с RFC 2338. Должно быть установлено равным 0 и игнорироваться при получении.

[править] Поля IP-пакета

Так как VRRP-пакеты инкапсулируются в IP-пакеты, ниже описаны значения некоторых полей IP-пакета:

  • IP-адрес отправителя — основной IP-адрес интерфейса, с которого отправляется пакет;
  • IP-адрес получателя — групповой адрес 224.0.0.18. Так как это адрес из диапазона link local scope, то маршрутизаторы не передают пакет с таким адресом получателя, независимо от значения TTL;
  • TTL — устанавливается равным 255. VRRP-маршрутизатор, получивший пакет с другим значением поля TTL, должен отбросить пакет;
  • Протокол — протоколу VRRP присвоен номер 112.

[править] Параметры виртуального маршрутизатора

Параметры виртуального маршрутизатора:

  • Идентификатор виртуального маршрутизатора (VRID) — настраиваемое значение в диапазоне от 1 до 255. Нет значения по умолчанию
  • Приоритет — значение приоритета, которое будет использоваться этим VRRP-маршрутизатором в выборах Master для этого виртуального маршрутизатора:
    • Значение 255 зарезервировано для маршрутизатора, который является владельцем IP-адреса, ассоциированного с виртуальным маршрутизатором
    • Значение 0 зарезервировано для Master-маршрутизатора, to indicate it is releasing responsibility for the virtual router
    • Диапазон значений 1-254 доступен для Backup-маршрутизаторов. По умолчанию используется приоритет 100
  • IP-адрес — один или более IP-адресов, присвоенные виртуальному маршрутизатору. Нет значения по умолчанию
  • Advertisement_Interval — временной интервал между отправкой объявлений. По умолчанию 1 секунда
  • Skew Time — время (в секундах), которое используется для отклонения Master Down Interval.
    Высчитывается по формуле: ( (256 - Priority) / 256 )
  • Master Down Interval — временной интервал, после которого Backup Router станет Master Router.
    Высчитывается по формуле: (3 * Advertisement Interval) + Skew time
  • Режим preempt — контролирует то, будет ли Backup-маршрутизатор с более высоким приоритетом пытаться перехватить на себя роль Master у текущего Master-маршрутизатора с более низким приоритетом.
    • Исключение из этого правила — VRRP-маршрутизатор всегда будет становиться Master, если он владелец IP-адреса, который присвоен виртуальному маршрутизатору, независимо от этого флага.
    • Возможные значения режима preempt:
      • True (значение по умолчанию) — разрешить перехватывать роль Master
      • False — запретить перехватывать роль Master
  • Тип аутентификации
  • Данные аутентификации

[править] Таймеры VRRP

  • Adver Timer — таймер, который срабатывает для инициации отправки VRRP-объявлений на основании Advertisement Interval
  • Master Down Timer — таймер, который срабатывает когда VRRP-объявление не приходило в течение Master Down Interval

[править] Описание состояний маршрутизаторов

Возможные состояния:

  • Initialize (инициализации)
  • Backup (резервный)
  • Master (основной)


Диаграмма перехода между состояниями:

[править] Initialize

Цель состояния Initialize — ожидание начала работы (Startup event).

Если VRRP включен на маршрутизаторе, то:

  • Если приоритет равен 255 (маршрутизатор является владельцем IP-адреса присвоенного виртуальному маршрутизатору):
    • Послать VRRP-объявление
    • Отправить gratuitous ARP-запрос, содержащий MAC-адрес виртуального маршрутизатора, для каждого IP-адреса, ассоциированного с виртуальным маршрутизатором
    • Установить Adver Timer равным Advertisement Interval
    • Перейти в состояние Master
  • иначе:
    • Установить Master Down Timer равным Master Down Interval
    • Перейти в состояние Backup

[править] Backup

Цель состояния Backup — мониторинг доступности и состояния Master-маршрутизатора.

Когда VRRP-маршрутизатор находится в этом состоянии он должен делать следующее:

  • Не должен отвечать на ARP-запросы на IP-адрес, ассоциированный с виртуальным маршрутизатором
  • Должен отбрасывать пакеты с MAC-адресом получателя, равным MAC-адресу виртуального маршрутизатора
  • Не должен принимать пакеты, отправленные на IP-адрес, ассоциированный с виртуальным маршрутизатором
  • Если на маршрутизаторе отключается VRRP (Shutdown event), то:
    • Отменить Master Down Timer
    • Перейти в состояние Initialize
  • Если срабатывает таймер Master Down Timer, то:
    • Послать VRRP-объявление
    • Отправить gratuitous ARP-запрос, содержащий MAC-адрес виртуального маршрутизатора, для каждого IP-адреса, ассоциированного с виртуальным маршрутизатором
    • Установить Adver Timer равным Advertisement Interval
    • Перейти в состояние Master
  • Если получено VRRP-объявление, то:
    • Если приоритет в VRRP-объявлении установлен равным 0, то:
      • Установить Master Down Timer равным Skew Time
    • иначе:
      • Если значение Preempt режима False или, если приоритет в полученном VRRP-объявлении больше или равен локальному приоритету, то:
        • Сбросить Master Down Timer в значение равное Master Down Interval
      • иначе:
        • Отбросить VRRP-объявление

[править] Master

В состоянии Master маршрутизатор отвечает за отправку пакетов, отправленных на IP-адрес, ассоциированный с виртуальным маршрутизатором.

Когда VRRP-маршрутизатор находится в этом состоянии, он должен делать следующее:

  • Должен отвечать на ARP-запросы на IP-адрес, ассоциированный с виртуальным маршрутизатором
  • Должен обрабатывать пакеты с MAC-адресом получателя, равным MAC-адресу виртуального маршрутизатора
  • Не должен принимать пакеты, отправленные на IP-адрес, ассоциированный с виртуальным маршрутизатором, если он не является владельцем IP-адреса
  • Должен принимать пакеты, отправленные на IP-адрес, ассоциированный с виртуальным маршрутизатором, если он является владельцем IP-адреса
  • Если на маршрутизаторе отключается VRRP (Shutdown event), то:
    • Отменить Adver Timer
    • Отправить VRRP-объявление с приоритетом, равным 0
    • Перейти в состояние Initialize
  • Если срабатывает Adver Timer, то
    • Послать VRRP-объявление
    • Сбросить Adver Timer в значение равное Advertisement Interval
  • Если получено VRRP-объявление, то:
    • Если приоритет в VRRP-объявлении установлен равным 0, то:
      • Послать VRRP-объявление
      • Сбросить Adver Timer в значение равное Advertisement Interval
    • иначе:
      • Если приоритет в полученном VRRP-объявлении больше локального приоритета или если приоритет в полученном VRRP-объявлении равен локальному приоритету и основной IP-адрес отправителя больше локального основного IP-адреса, то:
        • Отменить Adver Timer
        • Установить Master Down Timer равным Master Down Interval
        • Перейти в состояние Backup
      • иначе:
        • Отбросить VRRP-объявление

[править] VRRP в ProCurve

Основная страница: VRRP в ProCurve

[править] VRRP в Cisco

Основная страница: VRRP в Cisco

[править] VRRP в Mikrotik

Источник — «http://xgu.ru/wiki/VRRP»
На других языках