Протокол VRRP — отказоустойчивая маршрутизация в вашей сети

Cовременный этап развития информационных технологий характеризуется быстрым ростом размеров ЛВС. В этой связи естественно возрастают требования к их надежности и отказоустойчивости.

Одним из наиболее эффективных способов повышения надежности сети является создание структур с дублированием. На практике используется несколько разновидностей схем дублирования: организация параллельных соединений, установка двух или более центральных коммутаторов, построение распределенной магистрали. В данной статье речь пойдет о программном средстве реализации резервных связей — протоколе VRRP (Virtual Router Redundancy Protocol), обеспечивающем отказоустойчивость на уровне маршрутизаторов.

Принцип работы VRRP

В настоящее время большинство крупных ЛВС строятся по схеме с маршрутизирующими коммутаторами (маршрутизаторами) в центре. В таких ЛВС обычно организуются виртуальные сети с маршрутизацией, предусмотрены избыточные связи между устройствами, установлен резервный центральный коммутатор. При кажущейся абсолютной надежности подобной структуры ее слабым звеном является именно маршрутизирующий коммутатор. В случае выхода его из строя возможно несколько вариантов развития событий, требующих вмешательства системного администратора: настройка рабочих станций на работу с другим маршрутизатором в качестве шлюза, изменение конфигурации дублирующего сетевого устройства, установка дополнительного маршрутизатора или что-нибудь еще.

Не рассматривая преимуществ и недостатков этих вариантов, с уверенностью можно констатировать, что отдельные рабочие станции на время перестройки не будут иметь доступ к ресурсам, логически расположенным за маршрутизатором. (И хотя многие ОС, в том числе и Windows 98, можно настроить для работы с более чем одним шлюзом, полноценного восстановления работоспособности сети добиться не удастся.) Протокол VRRP разработан специально для ускорения процедуры восстановления работоспособности сети именно в описываемом случае. Фактически он определяет процесс перехода “обязанностей” маршрутизации от одного устройства к другому при отказе первого. При использовании этого протокола резервный маршрутизатор включается в работу автоматически, и все заботы администратора сводятся лишь к ремонту вышедшего из строя устройства.

Рассмотрим процедуру функционирования протокола VRRP на примере фрагмента сети, изображенного на рис. 1. Две IP-подсети соединены с помощью двух маршрутизаторов, на которых задействован протокол VRRP. Логика работы VRRP заключается в следующем:

  1. создаются виртуальные маршрутизаторы, каждый из которых имеет уникальный идентификатор VRID и IP-адрес;
  2. из VRRP-маршрутизаторов выбирается главный виртуальный маршрутизатор, все остальные становятся подчиненными виртуальными маршрутизаторами;
  3. главный виртуальный маршрутизатор передает информацию из одной сети в другую, подчиненные маршрутизаторы следят за состоянием главного;
  4. при выходе из строя главного виртуального маршрутизатора один из подчиненных становится главным и начинает обрабатывать пакеты, адресованные виртуальному маршрутизатору.

Выбор главного виртуального маршрутизатора производится автоматически: им становится маршрутизатор с наибольшим IP-адресом. На процесс выбора можно повлиять двумя способами. Во-первых, если в качестве адреса виртуального маршрутизатора указать адрес интерфейса маршрутизатора, то это устройство будет главным по умолчанию. Во-вторых, при настройке VRRP для каждого маршрутизатора обязательно указывается приоритет, и устройство с наивысшим приоритетом становится главным.

Допустим, виртуальный маршрутизатор имеет адрес 192.168.30.253 — он же является шлюзом для рабочих станций А и В, — тогда главным виртуальным маршрутизатором станет устройство А. Оно будет обрабатывать информацию, предназначенную виртуальному маршрутизатору, и посылать специальные сообщения. Маршрутизатор В становится подчиненным виртуальным маршрутизатором и не участвует в процессе передачи информации до тех пор, пока регулярно получает сообщения от маршрутизатора А. В случае выхода последнего из строя передача специальных пакетов прекращается. Это обнаруживает маршрутизатор В, который немедленно начинает обрабатывать пакеты, адресованные виртуальному маршрутизатору. При этом никаких дополнительных настроек на рабочих станциях делать не надо.

Следует заметить, что VRRP и виртуальный маршрутизатор — это понятия, относящиеся к интерфейсам, а не к устройствам. Поэтому для обеспечения отказоустойчивости всегда необходимо настраивать несколько виртуальных маршрутизаторов, относящихся к разным подсетям. В указанном выше примере такими подсетями являются сети 192.168.30.0 и 192.168.40.0. Причем главным виртуальным маршрутизатором для второй сети может быть коммутатор В. На рис. 1 приведена соответствующая конфигурация виртуальных маршрутизаторов.

В нашем примере в качестве IP-адресов для виртуальных маршрутизаторов назначены адреса интерфейсов коммутаторов, но это не является единственно возможным вариантом. Можно указать и любые свободные адреса из соответствующих подсетей, например, адрес 192.168.30.100 для виртуального маршрутизатора VRID 1. В этом случае изменится только процедура выбора главного виртуального маршрутизатора.

 

Формат пакета VRRP

Для взаимодействия между собой VRRP-маршрутизаторы используют специальные пакеты, по терминологии этого протокола именуемые объявлениями.

С целью уменьшения объема служебной информации, создающей дополнительную нагрузку на сеть, объявления передает только главный виртуальный маршрутизатор.

Основные поля объявления VRRP (рис. 2) имеют следующие значения:

Версия. Определяет версию протокола VRRP. В настоящее время описана только версия 2 (IETF RFC 2338).
Тип. Определяет тип VRRP-пакета. Версия 2 протокола VRRP поддерживает только тип пакета 1.
VRID. Идентификатор виртуального маршрутизатора. Это поле определяет, к какому виртуальному маршрутизатору относится данное объявление.
Приоритет. Указывает приоритет VRRP-маршрутизатора, пославшего данное объявление.Большая величина соответствует большему приоритету. Приоритет VRRP-маршрутизатора, являющегося собственником IP-адреса, равен 255. Резервные VRRP-маршрутизаторы используют приоритеты от 1 до 254 (по умолчанию принимается значение 100). Значение приоритета 0 используется для принудительного перевода подчиненного виртуального маршрутизатора в состояние главного.

Число IP-адресов. Определяет число IP-адресов, приписанных виртуальному маршрутизатору. Эти адреса содержатся в полях “IP-адрес(а)”.

Тип авторизации. Это поле может принимать следующие значения:

0 — нет авторизации,

1 — простой текстовый пароль,

2 — авторизация через заголовок IP.

В случае установления нулевого значения весь обмен служебной информацией происходит без авторизации. Значения полей “Данные авторизации” при передаче устанавливаются в ноль, и при приеме они игнорируются. Если тип авторизации равен “1”, то в полях “Данные авторизации” передается пароль. Принимающий VRRP-маршрутизатор сравнивает этот пароль с тем, что указан ему в процессе конфигурирования, и при несовпадении паролей игнорирует объявление. При последнем типе авторизации VRRP-маршрутизаторы используют механизмы авторизации через заголовок IP, в этом случае поле “Данные авторизации” не рассматривается.

Интервал объявлений. Определяет интервал между объявлениями в секундах (по умолчанию этот параметр равен 1 с).

Контрольная сумма. Используется для контроля целостности объявления.

При передаче объявления VRRP-маршрутизатор должен выполнить следующие действия:

· заполнить поля объявления величинами, соответствующими настройкам виртуального маршрутизатора;

· вычислить контрольную сумму и поместить ее в объявление;

· установить МАС-адрес виртуального маршрутизатора в поле МАС-адреса источника пакета;

· установить IP-адрес своего интерфейса в поле IP-адреса источника пакета;

· установить тип IP-пакета 112 (зарезервирован для протокола VRRP);

· передать VRRP-пакет по адресу 224.0.0.8 (адрес массовой рассылки, зарезервированный для VRRP-объявлений).

МАС-адрес виртуального маршрутизатора определяется автоматически при настройке VRRP и соответствует стандарту IEEE. Формат этого адреса следующий: первые три октета определяют производителя устройства, два последующих — имеют фиксированное значение 00-01, и последний октет содержит идентификатор VRID. Таким образом, в сети может быть до 256 виртуальных маршрутизаторов.

При получении VRRP-пакета маршрутизатор проверяет версию VRRP, контрольную сумму объявления и при необходимости производит авторизацию. Далее он сверяет VRID и IP-адрес виртуального маршрутизатора, указанные в объявлении, со своими настройками. При любом несоответствии параметров объявление будет игнорировано. В зависимости от реализации протокола VRRP на конкретном оборудовании сообщения об ошибках могут заноситься в журнал или передаваться станции управления.

Состояния VRRP-маршрутизаторов

Во время работы VRRP-маршрутизатор может находиться в трех состояниях: инициализация; главный виртуальный маршрутизатор; подчиненный виртуальный маршрутизатор. Рассмотрим все эти состояния последовательно.

Инициализация. Это первая стадия, которую проходит маршрутизатор после настройки протокола VRRP. Во время инициализации он сравнивает IP-адрес виртуального маршрутизатора с адресом своего интерфейса. Если они совпадают, маршрутизатор переходит в состояние “Главный виртуальный маршрутизатор”. Он выставляет свой приоритет равным 255 и посылает объявление, декларируя себя главным. Кроме того, он отправляет широковещательный ARP-пакет с МАС- и IP-адресами виртуального маршрутизатора и запускает таймер объявлений.

Если адреса не совпадают, а приоритет находится в интервале между 0 и 255, то устройство переходит в состояние “Подчиненный виртуальный маршрутизатор” и запускает таймер контроля состояния главного виртуального маршрутизатора.

Главный виртуальный маршрутизатор. В этом состоянии VRRP-маршрутизатор отвечает на ARP-запросы, адресованные виртуальному маршрутизатору, и маршрутизирует пакеты, переданные на МАС-адрес виртуального маршрутизатора. Кроме того, он регулярно посылает объявления. Следует отметить, что главный виртуальный маршрутизатор будет обрабатывать пакеты, посланные на IP-адрес виртуального маршрутизатора, только если он является собственником этого адреса; не являясь таковым, он проигнорирует их.

Если главный виртуальный маршрутизатор получает объявление, в котором указан приоритет выше его собственного или, при равенстве приоритетов, IP-адрес отправителя больше его собственного, то он переходит в состояние “Подчиненный виртуальный маршрутизатор” и запускает таймер контроля состояния главного виртуального маршрутизатора. Все объявления с меньшим приоритетом или объявления, полученные от устройства с меньшим IP-адресом, главный виртуальный маршрутизатор игнорирует.

Подчиненный виртуальный маршрутизатор

В этом состоянии VRRP-маршрутизатор контролирует состояние главного маршрутизатора и, пока тот функционирует, не отвечает на ARP-запросы и игнорирует пакеты, адресованные виртуальному маршрутизатору. При получении объявления от главного виртуального маршрутизатора он каждый раз перезапускает свой таймер контроля состояния.

Подчиненный виртуальный маршрутизатор становится главным в двух случаях: если получает объявление от главного с приоритетом “0” или вообще перестает получать от него объявления.

С каждым полученным объявлением в таймер контроля состояния записывается стартовое значение, равное (в секундах): 3 интервала объявления + (256 – приоритет маршрутизатора)/256. Следовательно, если в нашем примере (см. рис. 1) при настройке VRRP все параметры оставить по умолчанию, то работоспособность виртуального маршрутизатора восстановится менее чем за четыре секунды.

Распределение нагрузки

Еще одним важным свойством протокола VRRP является поддержка функции распределения нагрузки. Предположим, что в сети, изображенной на рис. 1, протокол VRRP не настроен. Для распределения нагрузки между маршрутизаторами достаточно, например, для станции А указать шлюз 192.168.30.253, а для станции В — шлюз 192.168.30. 254. То же можно проделать и для серверов.

Согласно логике работы протокола VRRP, только главный виртуальный маршрутизатор отвечает за передачу информации из одной сети в другую, остальные лишь контролируют его состояние. Однако это не мешает организовать отказоустойчивую конфигурацию с распределением нагрузки. Для этого в сети 192.168.30.0 необходимо создать два виртуальных маршрутизатора VRID 1 и VRID 2, для которых главными будут маршрутизаторы А и В соответственно. Для рабочей станции А в качестве шлюза указывается адрес виртуального маршрутизатора VRID 1, а для рабочей станции В — адрес маршрутизатора VRID 2. Аналогичные настройки производятся для сети 192.168.40.0 (рис. 3).

Каждое устройство является главным для одного виртуального маршрутизатора и участвует в маршрутизации пакетов. Одновременно оно же является подчиненным для другого виртуального маршрутизатора. Таким образом обеспечивается распределение нагрузки между маршрутизаторами А и В, и при выходе любого из них из строя оставшийся обеспечит связь между сетями. При этом настройки рабочих станций и серверов остаются такими же, как до применения VRRP.

Подводя итоги, можно сказать, что использование протокола VRRP является эффективным способом повышения надежности ЛВС в случае применения дублирующих связей и установки дополнительных маршрутизаторов. Настройка протокола осуществляется на интуитивно понятном уровне и сводится к формированию виртуальных маршрутизаторов. При этом в аварийной ситуации переход на резервный тракт передачи производится автоматически всего за несколько секунд без изменения настроек.

(source)

Tags: 

Post new comment

Filtered HTML

  • Адреси сторінок і електронної пошти атоматично перетворюються у посилання.
  • Дозволені теги HTML: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Рядки та параграфи відокремлюються автоматично.

Plain text

  • HTML теґи не відображаються
  • Адреси сторінок і електронної пошти атоматично перетворюються у посилання.
  • Рядки та параграфи відокремлюються автоматично.
By submitting this form, you accept the Mollom privacy policy.
© rublin.org, 2009 - 2012 Буду вдячний за зворотнє посилання, при використанні матеріалів сайту. Powered by Rublin Team.