MRPP (Mult-layer Ring Rrotection Protocol), протокол канального уровня применяемый для защиты от петель в кольцевой топологии Ethernet. Он позволяет предотвратить возникновение широковещательного шторма в кольце, при этом восстановить связность при разрыве одного из линков в кольце.
Протокол MRPP по функциональному назначению похож на STP, но предназначен для использования только в топологии кольца и имеет низкое время сходимости, в некоторых условиях не превышающее 50-100мс.
Control VLAN
Control VLAN - это виртуальная VLAN, которая используется только я идентификации пакетов MRPP, передаваемых в сети. Номер VLAN MRPP может пересекаться с номером VLAN, уже используемой в сети, но во избежании путаницы рекомендуется использовать для MRPP уникальную VLAN.
MRPP Ring
Под MRPP ring понимается используемая в Ethernet сети кольцевая топология. MRPP ring может находиться в двух состояниях: Health state - замкнутое состояние, все соединения кольца активны; Break state - разомкнутое состояние, одно или несколько соединений кольца нарушены.
Node type
Каждый коммутатор выполняет одну из двух ролей в MRPP ring: Primary node и Transfer node. Primary node - основной узел, который выполняет рассылку MRPP сообщений и принимает решение о разрыве или соединении линка кольца. Transfer node - каждый узел, не являющийся Primary node. Роль узла определяется конфигурацией пользователя. Как показано на рисунке 64.1, коммутатор Switch A является Primary node, а все остальные - Transfer node.
Primary и Secondary порты
Каждый коммутатор в кольце имеет 2 подключенных к сети порта Primary (первичный) и Secondary (вторичный). Роли портов определяются конфигурацией пользователя.
Первичный порт коммутатора Primary Node используется для отправки пакета проверки работоспособности кольца (Hello), вторичный порт используется для приема этого пакета. Когда кольцо находится в замкнутом состоянии, вторичный порт на Primary Node блокирует весь остальной трафик, кроме пакетов Hello. Когда кольцо находится в разомкнутом состоянии, вторичный порт Primary Node пересылает пакеты данных.
Таймер
MRPP предусматривает 2 таймера: Hello-Timer - определяет интервал отправки Hello пакетов; Fail-Timer - определяет время разблокировки Secondary порта при неполучении Hello пакета, равен трем интервалам Hello.
Hello packet - рассылается первичным портом (Primary port) и используется для обнаружения кольца. Если вторичный порт Primary Node может принимать Hello-пакеты, кольцо считается замкнутым;
LINK-DOWN event packet - после того, как Transfer node обнаружил событие Down на порту, он посылает этот пакет на Primary Node для информирования о разрыве кольца;
LINK-DOWN-FLUSH-FDB packet - рассылается Primary Node для обновления таблицы MAC-адресов после того, как Primary Node обнаружил разрыв кольца или принял LINK-DOWN event packet и разблокировал Secondary порт;
LINK-UP-FLUSH-FDB packet - рассылается Primary Node для обновления таблицы MAC-адресов после того, как Primary Node обнаружил замыкание кольца и заблокировал Secondary порт.
Обнаружение разрыва линка:
Когда Transfer Node обнаруживает состояние DOWN на кольцевом порту, он отправляет LINK-DOWN пакет на Primary Node. Получив LINK-DOWN пакет Primary Node немедленно освобождает Secondary порт из состояния Block, а также отправляет LINK-DOWN-FLUSH-FDB пакет для информирования транзитных узлов о необходимости обновить таблицу MAC.
Опрос кольца:
Primary Node отправляет через первичный порт Hello пакет в соответствии с настроенным интервалом. Если кольцо замкнуто, Secondary порт на Primary Node получает Hello-пакеты, и Primary Node блокирует трафик на это порту. Если кольцо разомкнуто, Secondary порт на Primary Node не может принимать Hello-пакеты и он выходит из состояния Block.
Восстановление кольца:
После того, как Primary Node обнаружил разрыв кольца, если Secondary порт получает Hello пакет, это будет означать, что кольцо восстановлено. Поэтому Primary Node блокирует свой Secondary порт и отправляет своим соседям LINK-DOWN-FLUSH-FDB.
Если порт на транзитном узле в MRPP кольце перешел в состояние UP, Primary Node не сразу найти замкнутое состояние кольца и создать широковещательный шторм. Чтобы избежать такого нежелательного поведения, транзитный узел блокирует изменивший свое состояние порт до получения LINK-DOWN-FLUSH-FDB, пропуская только трафик MRPP VLAN.
Команда | Описание |
---|---|
mrpp enable no mrpp enable ! В режиме глобальной конфигурации | Выключить MRPP на коммутаторе, команда no отменяет это действие. |
2. Настроить MRPP кольцо:
Команда | Описание |
---|---|
mrpp ring <ring-id> no mrpp ring <ring-id> ! В режиме глобальной конфигурации | Создать кольцо MRPP <ring-id> и войти в режим его конфигурирования. Команда no удаляет кольцо MRPP. |
control-vlan <vid> no control-vlan ! В режиме конфигурации кольца MRPP | Задать VLAN для управления MRPP, команда no удаляет эту VLAN. |
node-mode {master | transit} ! В режиме конфигурации кольца MRPP | Задать тип узла MRPP |
hello-timer < timer> no hello-timer ! В режиме конфигурации кольца MRPP | Задать интервал отправки Hello пакетов. Команда no возвращает значение по-умолчанию - 1 секунда. |
fail-timer <timer> no fail-timer ! В режиме конфигурации кольца MRPP | Задать время, по истечении которого кольцо будет считаться разорванным. Команда no возвращает значение по-умолчанию - 3 секунды. |
enable no enable ! В режиме конфигурации кольца MRPP | Задействовать кольцо MRPP, команда no переводит кольцо в неактивный режим (по-умолчанию) |
mrpp ring <ring-id> primary-port no mrpp ring <ring-id> primary-port ! В режиме конфигурации интерфейса | Выбрать текущий порт в качестве Primary. Команда no отменяет выбор. |
mrpp ring <ring-id> secondary-port no mrpp ring <ring-id> secondary-port ! В режиме конфигурации интерфейса | Выбрать текущий порт в качестве Secondary. Команда no отменяет выбор. |
3. Настроить метод обнаружения падения порта:
Команда | Описание |
---|---|
port-scan-mode {interrupt | poll} ! В режиме глобальной конфигурации | Задать метод обнаружения падения порта: interrupt - по событию, poll - по опросу. |
mrpp poll-time <20-2000> ! В режиме глобальной конфигурации | Настроить интервал опроса состояния порта MRPP (в миллисекундах) |
4. Настроить режим совместимости:
Команда | Описание |
---|---|
mrpp errp compatible no mrpp errp compatible ! В режиме глобальной конфигурации | Включить режим совместимости с ERPP, команда no отключает режим совместимости. |
mrpp eaps compatible no mrpp eaps compatible ! В режиме глобальной конфигурации | Включить режим совместимости с EARS, команда no отключает режим совместимости. |
errp domain <domain-id> no errp domain <domain-id> ! В режиме глобальной конфигурации | Создать домен ERPP, команда no удаляет этот домен |
5. Просмотр информации о конфигурации и отладка:
Команда | Описание |
---|---|
debug mrpp no debug mrpp ! В привилегированном режиме | Включить вывод отладки MRPP, команда no выключает вывод отладки. |
show mrpp {<ring-id>} ! В привилегированном режиме | Вывести информацию о конфигурации кольца MRPP |
show mrpp statistics {<ring-id>} ! В привилегированном режиме | Вывести статистику о переданных и принятых пакетах MRPP |
clear mrpp statistics {<ring-id>} ! В привилегированном режиме | Очистить статистику о переданных и принятых пакетах MRPP |
Рисунок 64.1 - Конфигурация MRPP
Представленная выше топология позволяет использовать MRPP в качестве протокола защиты от петли. Коммутатор Switch A является основным узлом MRPP-кольца 4000, порт Eth 1/0/1 – Primary порт, E1/0/2 – Secondary. Остальные узлы являются транзитными (Transfer) узлами MRPP-кольца 4000 с настроенными основным и дополнительным портами.
Конфигурация коммутатора Switch A:
Switch(Config)#mrpp enable Switch(Config)#mrpp ring 4000 Switch(mrpp-ring-4000)#control-vlan 4000 Switch(mrpp-ring-4000)#fail-timer 18 Switch(mrpp-ring-4000)#hello-timer 5 Switch(mrpp-ring-4000)#node-mode master Switch(mrpp-ring-4000)#enable Switch(mrpp-ring-4000)#exit Switch(Config)#interface ethernet 1/0/1 Switch(config-If-Ethernet1/0/1)#mrpp ring 4000 primary-port Switch(config-If-Ethernet1/0/1)#interface ethernet 1/0/2 Switch(config-If-Ethernet1/0/2)#mrpp ring 4000 secondary-port |
Конфигурация коммутаторов Switch B, C и D:
Switch(Config)#mrpp enable Switch(Config)#mrpp ring 4000 Switch(mrpp-ring-4000)#control-vlan 4000 Switch(mrpp-ring-4000)#enable Switch(mrpp-ring-4000)#exit Switch(Config)#interface ethernet 1/0/1 Switch(config-If-Ethernet1/0/1)#mrpp ring 4000 primary-port Switch(config-If-Ethernet1/0/1)#interface ethernet 1/0/2 Switch(config-If-Ethernet1/0/2)#mrpp ring 4000 secondary-port |
Нормальная работа MRPP-протокола зависит от корректной конфигурации коммутаторов внутри MRPP-кольца, однако есть вероятность возникновения широковещательного шторма и петель: