ERPS - протокол, позволяющий осуществлять резервирование канала на втором уровне модели OSI, путем физического создания петель и их логической блокировки.
В каждом кольце выбирается R-APS VLAN, в котором будет ходить служебный трафик ERPS. Трафиковые VLAN, которые нужно защищать от петель и разрывов, объединяются в MST-инстансы и называются Protected VLAN. Также для каждого порта в кольце выбирается 1 из 3 возможных ролей: RPL Owner, RPL Neighbour или RPL Common. Должно быть по одному RPL Owner и Neighbour на кольцо и именно они при нормальных условиях должны выполнять блокировку петли и разблокировку канала в случае разрыва.
Более подробно о механизме работы ERPS вы можете прочитать в нашей статье, здесь же мы будем рассматривать настройку функционала на коммутаторах SNR.
Настройка ERPS
Настройка одного кольца
Выполним настройку ERPS для кольца из трех коммутаторов, соединенных в кольцо, как на схеме ниже. Будем считать, что сигнальный трафик кольца будет ходить в VLAN 2, а защищаемый трафик в VLAN 3. Также сразу создадим VLAN 4, который понадобится для последующего создания полукольца.
Настроим сначала Switch A.
Cоздаем необходимые VLAN:
! vlan 1-4 !
Создаем экземпляр MST, который мы будем защищать с помощью ERPS:
! spanning-tree mst configuration instance 0 vlan 5-4094 instance 1 vlan 1-4 exit !
Создаем ERPS-кольцо test_ring1 и ERPS-экземпляр 1, указываем Protected MST Instance, Control VLAN и роль портов (RPL port0 будет иметь роль Owner, port1 — по-умолчанию Common):
! erps-ring test_ring1 erps-instance 1 rpl port0 owner protected-instance 1 control-vlan 2 exit !
Переводим порты в режим Trunk и назначаем ERPS роли:
! Interface Ethernet1/0/25 switchport mode trunk erps-ring test_ring1 port0 ! Interface Ethernet1/0/26 switchport mode trunk erps-ring test_ring1 port1 !
Для ускорения сходимости кольца при разрыве/восстановлении линка можно изменить метод отслеживания состояния портов на ожидание соответствующих прерываний (по умолчанию порты периодически опрашиваются):
! port-scan-mode interrupt !
На этом настройка коммутатора Switch A закончена.
Настройка коммутатора Switch B производится аналогично Switch A, кроме роли порта port0. Поскольку с другой стороны линка будет RPL Owner, то port0 должен быть RPL Neighbour:
! port-scan-mode interrupt ! vlan 1-4 ! spanning-tree mst configuration instance 0 vlan 5-4094 instance 1 vlan 1-4 exit ! erps-ring test_ring1 erps-instance 1 rpl port0 neighbour protected-instance 1 control-vlan 2 exit ! Interface Ethernet1/0/25 switchport mode trunk erps-ring test_ring1 port0 ! Interface Ethernet1/0/26 switchport mode trunk erps-ring test_ring1 port1 !
Настройка коммутатора Switch C осуществляется аналогично Switch A и Switch B, за исключением того, что на Switch C роли портов port0 и port1 не указываются, т.е. они по умолчанию будут RPL Common:
! port-scan-mode interrupt ! vlan 1-4 ! spanning-tree mst configuration instance 0 vlan 5-4094 instance 1 vlan 1-4 exit ! erps-ring test_ring1 erps-instance 1 protected-instance 1 control-vlan 2 exit ! Interface Ethernet1/0/25 switchport mode trunk erps-ring test_ring1 port0 ! Interface Ethernet1/0/26 switchport mode trunk erps-ring test_ring1 port1 !
Настройка с полукольцом
Если мы захотим подключить еще один коммутатор Switch D к Switch A и Switch B, не включая его в существующее кольцо (major-ring), и при этом сформировать новое, то мы не сможем просто сконфигурировать аналогичное кольцо Switch A - Switch B - Switch D, так как канал Switch A - Switch B уже задействован в кольце Switch A - Switch B - Switch C и его привязка к другому вызовет некорректную работу ERPS.
Для таких случаев можно организовать полукольцо (sub-ring), которое будет опираться на основное кольцо (major-ring). Коммутаторы Switch A и Switch B будут промежуточными для полукольца, так как будут передавать сигнальные сообщения из него в основное и обратно. Как уже упоминалось ранее, сигнальный трафик полукольца будет ходить в VLAN 4.
Настройка коммутатора Switch A.
В дополнение к первому ERPS-кольцу создадим второе, указав, что оно будет полукольцом с помощью команды open-ring:
! erps-ring test_ring1 erps-instance 1 rpl port0 owner protected-instance 1 control-vlan 2 exit erps-ring test_ring2 open-ring raps-virtual-channel with erps-instance 1 rpl port0 owner protected-instance 1 control-vlan 4 exit !
Активируем возможность передавать сигнальные сообщения из одного процесса ERPS в другой:
! ethernet tcn-propagation erps to erps !
Настраиваем интерфейс 1/0/27, который будет принадлежать кольцу test_ring2, и при этом второго порта у этого кольца не будет. Интерфейсы 1/0/25-26 были настроены ранее:
! Interface Ethernet1/0/27 switchport mode trunk erps-ring test_ring2 port0 port1-none !
Настройка коммутатора Switch B.
Настройка коммутатора Switch B осуществляется аналогично Switch A, за исключением того, что RPL port0 не указывается, т.е. port0 будет RPL Common, а port1 также не будет существовать:
! erps-ring test_ring1 erps-instance 1 protected-instance 1 control-vlan 2 exit erps-ring test_ring2 open-ring raps-virtual-channel with erps-instance 1 protected-instance 1 control-vlan 4 exit ! ethernet tcn-propagation erps to erps ! Interface Ethernet1/0/27 switchport mode trunk erps-ring test_ring2 port0 port1-none !
Настройка коммутатора Switch D:
настройка коммутатора Switch D аналогична настройке коммутатора Switch C за исключением того, что будет создано кольцо test_ring2 с параметром open-ring, в котором будет Control VLAN 4:
! port-scan-mode interrupt ! vlan 1-4 ! spanning-tree mst configuration instance 0 vlan 5-4094 instance 1 vlan 1-4 exit ! erps-ring test_ring2 open-ring erps-instance 1 rpl port0 neighbour protected-instance 1 control-vlan 4 exit ! Interface Ethernet1/0/25 switchport mode trunk erps-ring test_ring2 port0 ! Interface Ethernet1/0/26 switchport mode trunk erps-ring test_ring2 port1 !
ERPS + CFM
Обнаружить падение линка можно в двух случаях. Первый и наиболее распространенный - это падение физического интерфейса. Для того, чтобы падение отрабатывалось штатно, нельзя ставить в кольце два идущих подряд коммутатора, на которых не настроен ERPS.
Второй, и наиболее эксклюзивный способ - это настройка механизма CFM (Connectivity Fault Management). Этот протокол позволяет настроить мониторинг от 'точки до точки' на уровне L2 с помощью CCM-пакетов, которые отправляются с заданной периодичностью. Таким образом, появляется таймер, в течение которого отсутствие прихода CCM-пакета позволяет сделать вывод о разрыве канала и включить режим защиты в протоколе ERPS
Рассмотрим его настройку.
К примеру, нам необходимо задействовать функционал CFM совместно с ERPS между Switch A и B (между портами 1/0/1). Тогда настройка будет выглядеть так:
Switch A:
! ethernet cfm global ethernet cfm domain test level 2 service test pvlan 77 direction down mep mepid 100;200 continuity-check enable continuity-check receive rmep 200 exit ! erps-ring test port1 failure-detect physical-link-or-cc domain test service test mep 100 rmep 200 erps-instance 1 protected-instance 1 control-vlan 77 exit ! Interface Ethernet1/0/1 ethernet cfm mep 100 domain test service test switchport mode trunk erps-ring test port1 !
Switch B:
! ethernet cfm global ethernet cfm domain test level 2 service test pvlan 77 direction down mep mepid 100;200 continuity-check enable continuity-check receive rmep 100 exit ! erps-ring test port0 failure-detect physical-link-or-cc domain test service test mep 200 rmep 100 erps-instance 1 protected-instance 1 control-vlan 77 exit ! Interface Ethernet1/0/1 ethernet cfm mep 200 domain test service test switchport mode trunk erps-ring test port0 !