Ethernet Ring Protection Switching
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 1 vlan 5-4094
instance 2 vlan 1-4
exit
!
Хоть для обозначения protected vlan и используется spanning-tree mst instance, сам spanning-tree включать не нужно.
Создаем 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 2
control-vlan 2
exit
!
Переводим порты в режим Trunk и назначаем ERPS роли:
- Серии S2xx-S4xxx, S7xxx
- Серия S5xxx
!
Interface Ethernet1/0/25
switchport mode trunk
erps-ring test_ring1 port0
!
Interface Ethernet1/0/26
switchport mode trunk
erps-ring test_ring1 port1
!
!
Interface ge25
switchport mode trunk
erps-ring test_ring1 port0
!
Interface ge26
switchport mode trunk
erps-ring test_ring1 port1
!
Для ускорения сходимости кольца при разрыве/восстановлении линка можно изменить метод отслеживания состояния портов на ожидание соответствующих прерываний (по умолчанию порты периодически опрашиваются):
!
port-scan-mode interrupt
!
На серии 5xxx отсутствует возможность настройки CFM.
На этом настройка коммутатора Switch A закончена.
Настройка коммутатора Switch B производится аналогично Switch A, кроме роли порта port0. Поскольку с другой стороны линка будет RPL Owner, то port0 должен быть RPL Neighbour:
- Серии S2xx-S4xxx, S7xxx
- Серия S5xxx
!
port-scan-mode interrupt
!
vlan 1-4
!
spanning-tree mst configuration
instance 1 vlan 5-4094
instance 2 vlan 1-4
exit
!
erps-ring test_ring1
erps-instance 1
rpl port0 neighbour
protected-instance 2
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
!
!
vlan 1-4
!
spanning-tree mst configuration
instance 1 vlan 5-4094
instance 2 vlan 1-4
exit
!
erps-ring test_ring1
erps-instance 1
rpl port0 neighbour
protected-instance 2
control-vlan 2
exit
!
Interface ge25
switchport mode trunk
erps-ring test_ring1 port0
!
Interface ge26
switchport mode trunk
erps-ring test_ring1 port1
!
Настройка коммутатора Switch C осуществляется аналогично Switch A и Switch B, за исключением того, что на Switch C роли портов port0 и port1 не указываются, т.е. они по умолчанию будут RPL Common:
- Серии S2xx-S4xxx, S7xxx
- Серия S5xxx
!
port-scan-mode interrupt
!
vlan 1-4
!
spanning-tree mst configuration
instance 1 vlan 5-4094
instance 2 vlan 1-4
exit
!
erps-ring test_ring1
erps-instance 1
protected-instance 2
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
!
!
vlan 1-4
!
spanning-tree mst configuration
instance 1 vlan 5-4094
instance 2 vlan 1-4
exit
!
erps-ring test_ring1
erps-instance 1
protected-instance 2
control-vlan 2
exit
!
Interface ge25
switchport mode trunk
erps-ring test_ring1 port0
!
Interface ge26
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 2
control-vlan 2
exit
erps-ring test_ring2
open-ring
raps-virtual-channel with
erps-instance 1
rpl port0 owner
protected-instance 2
control-vlan 4
exit
!
Активируем возможность передавать сигнальные сообщения из одного процесса ERPS в другой:
!
ethernet tcn-propagation erps to erps
!
Настраиваем интерфейс 1/0/27, который будет принадлежать кольцу test_ring2, и при этом второго порта у этого кольца не будет. Интерфейсы 1/0/25-26 были наст роены ранее:
- Серии S2xx-S4xxx, S7xxx
- Серия S5xxx
!
Interface Ethernet1/0/27
switchport mode trunk
erps-ring test_ring2 port0 port1-none
!
!
Interface ge27
switchport mode trunk
erps-ring test_ring2 port0 port1-none
!
Настройка коммутатора Switch B.
Настройка коммутатора Switch B осуществляется аналогично Switch A, за исключением того, что RPL port0 не указывается, т.е. port0 будет RPL Common, а port1 также не будет существовать:
- Серии S2xx-S4xxx, S7xxx
- Серия S5xxx
!
erps-ring test_ring1
erps-instance 1
protected-instance 2
control-vlan 2
exit
erps-ring test_ring2
open-ring
raps-virtual-channel with
erps-instance 1
protected-instance 2
control-vlan 4
exit
!
ethernet tcn-propagation erps to erps
!
Interface Ethernet1/0/27
switchport mode trunk
erps-ring test_ring2 port0 port1-none
!
!
erps-ring test_ring1
erps-instance 1
protected-instance 2
control-vlan 2
exit
erps-ring test_ring2
open-ring
raps-virtual-channel with
erps-instance 1
protected-instance 2
control-vlan 4
exit
!
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:
- Серии S2xx-S4xxx, S7xxx
- Серия S5xxx
!
port-scan-mode interrupt
!
vlan 1-4
!
spanning-tree mst configuration
instance 1 vlan 5-4094
instance 2 vlan 1-4
exit
!
erps-ring test_ring2
open-ring
erps-instance 1
rpl port0 neighbour
protected-instance 2
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
!
!
port-scan-mode interrupt
!
vlan 1-4
!
spanning-tree mst configuration
instance 1 vlan 5-4094
instance 2 vlan 1-4
exit
!
erps-ring test_ring2
open-ring
erps-instance 1
rpl port0 neighbour
protected-instance 2
control-vlan 4
exit
!
Interface ge25
switchport mode trunk
erps-ring test_ring2 port0
!
Interface ge26
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
!
На серии 5xxx отсутствует возможность настройки CFM.
Пример настройки ERPS с помощью SNMP
- Создать erps-ring с названием "test":
- snmpset -v2c -c private 172.31.254.95 1.3.6.1.4.1.40418.7.100.39.2.1.2.1 s "test"
- snmpset -v2c -c private 172.31.254.95 1.3.6.1.4.1.40418.7.100.39.2.1.11.1 i 1
- Установить порт Ethernet1/0/23 в качестве port0:
- snmpset -v2c -c private 172.31.254.95 1.3.6.1.4.1.40418.7.100.39.2.1.6.1 s "Ethernet1/0/23"
- snmpset -v2c -c private 172.31.254.95 1.3.6.1.4.1.40418.7.100.39.2.1.11.1 i 1
- Установить порт Ethernet1/0/24 в качестве port1:
- snmpset -v2c -c private 172.31.254.95 1.3.6.1.4.1.40418.7.100.39.2.1.9.1 s "Ethernet1/0/24"
- snmpset -v2c -c private 172.31.254.95 1.3.6.1.4.1.40418.7.100.39.2.1.11.1 i 1
- Создать ERPS Instance 1 в ERPS-Ring "test":
- snmpset -v2c -c private 172.31.254.95 .1.3.6.1.4.1.40418.7.100.39.3.1.17.1.1 i 1
- Установить роль owner для порта port0:
- snmpset -v2c -c private 172.31.254.95 .1.3.6.1.4.1.40418.7.100.39.3.1.4.1.1 i 1
- snmpset -v2c -c private 172.31.254.95 .1.3.6.1.4.1.40418.7.100.39.3.1.17.1.1 i 1
- Установить WTR-таймер 10 минут:
- snmpset -v2c -c private 172.31.254.95 .1.3.6.1.4.1.40418.7.100.39.3.1.9.1.1 i 10
- snmpset -v2c -c private 172.31.254.95 .1.3.6.1.4.1.40418.7.100.39.3.1.17.1.1 i 1
- Установить Instance 0 в качестве Protected-Instance:
- snmpset -v2c -c private 172.31.254.95 .1.3.6.1.4.1.40418.7.100.39.3.1.10.1.1 s 0
- snmpset -v2c -c private 172.31.254.95 .1.3.6.1.4.1.40418.7.100.39.3.1.17.1.1 i 1
- Установить VLAN 3999 в качестве Control-VLAN:
- snmpset -v2c -c private 172.31.254.95 .1.3.6.1.4.1.40418.7.100.39.3.1.12.1.1 i 3999
- snmpset -v2c -c private 172.31.254.95 .1.3.6.1.4.1.40418.7.100.39.3.1.17.1.1 i 1
Настройки других параметров ERPS вы можете найти в нашем приватном MIB в ветке erpsMgt (OID: .1.3.6.1.4.1.40418.7.100.39)