Протокол ERPS (Ethernet Ring Protection Switching) предназначен для повышения устойчивости и надежности сети передачи данных, имеющей кольцевую топологию, за счет снижения времени восстановления сети в случае аварии. Время восстановления не превышает 1 секунды, что существенно меньше времени перестройки сети при использовании протоколов семейства spanning tree.
Основные понятия и термины:
- RPL (Ring Protection Link) - резервный линк между коммутаторами, который будет заблокирован механизмом ERPS при нормальном режиме работы кольца (IDLE);
- RPL Owner - коммутатор, подключенный к RPL, который блокирует RPL Link при нормальном режиме работы кольца и разблокирует его при разрыве кольца;
- RPL Neighbor - коммутатор, напрямую связанный с RPL Owner через RPL Link. Также блокирует RPL Link при нормальном режиме работы кольца и разблокирует его при разрыве кольца;
- R-APS (Ring - Automatic Protection Switching) - протокол обмена сообщениями, определенный в Y.1731 и в G.8032. Используется для координации действий по защите кольца;
- RAPS VLAN (A-RPS Channel) - служебный VLAN, в котором передаются R-APS PDUs;
- Protected VLAN - VLANs для передачи DATA трафика. RPL Link блокирует передачу только в Protected VLAN.
Таймеры:
- Hold-Off Timer - используется при падении линка. На коммутаторах кольца, зафиксировавших аварию, запускается Hold-Off Timer, по истечении которого отправляется R-APS PDU Signal Fail. По дефолту таймер настроен на 0 сек;
- Guard Timer - Запускается на коммутаторах, фиксирующих изменение топологии (падение/поднятие линка). При этом отправляется R-APS PDU и запускается Guard Timer, до тех пор пока таймер не истек, все входящие R-APS pdu игнорируются. По дефолту таймер настроен на 500 мсек;
- WTR Timer - используется только RPL Owner для отложенной блокировки RPL порта. Таймер истечёт только в случае отсутствия изменений в топологии за время своего действия. По дефолту таймер настроен на 5 мин;
- Periodic Timer - интервал отправки R-APS PDUs.
Сообщения R-APS:
- Signal Fail (SF) - сигнализирует об обнаружении аварии;
- No Request (NR) - сигнализирует об устранении аварии или отсутствии сбоев в работе кольца;
- RPL Blocked (RB) - это сообщение отправляет RPL Owner и Neighbor, причем всегда совместно с No Request. Информирует о состоянии RPL линка.
Состояния кольца:
- IDLE - статус при нормальном режиме работы кольца, когда резервный линк между коммутаторами RPL Owner и RPL Neighbor заблокирован механизмом ERPS.
- PROTECTED - статус кольца в случае разрыва действущего линка/аварии, когда резервный линк между коммутаторами RPL Owner и RPL Neighbor разблокирован.
- PENDING - статус кольца, когда проблемный линк восстановлен, и запущен WTR таймер.
Важно!!! При настройке протокола ERPS в мультивендорной среде необходимо, чтобы все таймеры совпадали на всех участниках кольца.
Настроим ревертивное кольцо с подкольцом, использующим кольцо в качестве виртуального канала. Для прохождения служебного ERPS трафика в кольце используется VLAN 10 (R-APS VLAN), защищает VLAN 20, 30, 40, 200, 300, 400. Для прохождения служебного ERPS трафика в подкольце используется VLAN 100, защищает VLAN 200, 300, 400. Так как кольцо будет использоваться в качестве виртуального канала для подкольца, в настройках коммутаторов, которые не знают о существовании подкольца (коммутаторы 1 и 2), необходимо указать все VLAN подкольца.
В качестве RPL линка в основном кольце возьмем линк между коммутаторами 1 и 2. В качестве RPL линка в подкольце возьмем линк между коммутаторами 5 и 6. RPL линк — это линк, который будет заблокирован при нормальном состоянии кольца, и разблокируется только в случае аварии на одном из линков кольца.
Линк между коммутаторами 3 и 4 для подкольца vlan 100 будет определяться как virtual link.
Примечания:
- Подкольцо не умеет определять разрыв виртуального линка. Поэтому при разрыве этого линка в подкольце не разблокируется rpl-link.
- По дефолту через интерфейс в режим trunk проходит дефолтный 1 VLAN. Поэтому данный VLAN необходимо или добавить в protected, или запретить его прохождение через интерфейс, чтобы избежать возникновение шторма.
- RPL link блокирует прохождение трафика в protected VLAN. Но на семейство протоколов xSTP данная блокировка не растространяется. Поэтому необходимо запрещать прохождение STP bpdu через кольцевые порты.
Конфигурация коммутатора 1:
console(config)# no spanning-tree
console(config)#
spanning-tree bpdu filtering
console(config)#
erps
console(config)#
erps vlan 10
console(config-erps)#
ring enable
console(config-erps)#
port west te1/0/1
console(config-erps)#
port east te1/0/2
console(config-erps)#
protected vlan add 20,30,40,100,200,300,400
console(config-erps)#
rpl west owner
console(config-erps)#
exit
console(config)#
console(config)#
interface range TengigabitEthernet1/0/1-2
console(config-if)#
switchport mode trunk
console(config-if)#
switchport trunk allowed vlan add 10,20,30,40,100,200,300,400
console(config-if)#
switchport forbidden default-vlan
console(config-if)#
exit
Конфигурация коммутатора 2:
console(config)# no spanning-tree
console(config)#
spanning-tree bpdu filtering
console(config)#
erps
console(config)#
erps vlan 10
console(config-erps)#
ring enable
console(config-erps)#
port west te1/0/1
console(config-erps)#
port east te1/0/2
console(config-erps)#
protected vlan add 20,30,40,100,200,300,400
console(config-erps)#
rpl west neighbor
console(config-erps)#
exit
console(config)#
console(config)#
interface range TengigabitEthernet1/0/1-2
console(config-if)#
switchport mode trunk
console(config-if)#
switchport trunk allowed vlan add 10,20,30,40,100,200,300,400
console(config-if)#
switchport forbidden default-vlan
console(config-if)#
exit
Конфигурация коммутаторов 3, 4:
console(config)# no spanning-tree
console(config)#
spanning-tree bpdu filtering
console(config)#
erps
console(config)#
erps vlan 10
console(config-erps)#
ring enable
console(config-erps)#
port west tengigabitethernet1/0/1
console(config-erps)#
port east tengigabitethernet1/0/2
console(config-erps)#
protected vlan add 20,30,40
console(config-erps)#
sub-ring vlan 100
console(config-erps)#
exit
console(config)#
erps vlan 100
console(config-erps)#
ring enable
console(config-erps)#
port west tengigabitethernet1/0/3
console(config-erps)#
protected vlan add 200,300,400
console(config-erps)#
exit
console(config)#
console(config)#
interfaceTengigabitEthernet1/0/1
console(config-if)#
switchport mode trunk
console(config-if)#
switchport trunk allowed vlan add 10,20,30,40,100,200,300,400
console(config-if)#
switchport forbidden default-vlan
console(config-if)#
exit
console(config)#
interfaceTengigabitEthernet1/0/2
console(config-if)#
switchport mode trunk
console(config-if)#
switchport trunk allowed vlan add 10,20,30,40,100,200,300,400
console(config-if)#
switchport forbidden default-vlan
console(config-if)#
exit
console(config)#
interfaceTengigabitEthernet1/0/3
console(config-if)#
switchport mode trunk
console(config-if)#
switchport trunk allowed vlan add 100,200,300,400
console(config-if)#
switchport forbidden default-vlan
console(config-if)#
exit
Конфигурация коммутатора 5
console(config)#
no spanning-tree
console(config)#
spanning-tree bpdu filtering
console(config)#
erps
console(config)#
erps vlan 100
console(config-erps)#
ring enable
console(config-erps)#
port west te1/0/1
console(config-erps)#
port east te1/0/2
console(config-erps)#
protected vlan add 200,300,400
console(config-erps)#
rpl west owner
console(config-erps)#
exit
console(config)#
console(config)#
interface range TengigabitEthernet1/0/1-2
console(config-if)#
switchport mode trunk
console(config-if)#
switchport trunk allowed vlan add 100,200,300,400
console(config-if)#
switchport forbidden default-vlan
console(config-if)#
exit
Конфигурация коммутатора 6:
console(config)# no spanning-tree
console(config)# spanning-tree bpdu filtering
console(config)# erps
console(config)# erps vlan 100
console(config-erps)# ring enable
console(config-erps)# port west te1/0/1
console(config-erps)# port east te1/0/2
console(config-erps)# protected vlan add 200,300,400
console(config-erps)# rpl west neighbor
console(config-erps) #exit
console(config)# interface range TengigabitEthernet1/0/1-2
console(config-if)# switchport mode trunk
console(config-if)# switchport trunk allowed vlan add 100,200,300,400
console(config-if)# switchport forbidden default-vlan
console(config-if)# exit
Статус колец можно посмотреть командами
console# show erps
console# show erps vlan 10
console# show erps vlan 100