вторник, 6 сентября 2016 г.

Что Ethernet-инженеру нужно знать о ERPS

Времени по прежнему катастрофически не хватает. Однако у меня всегда есть парочка заготовленных постов на такой случай. Сегодня кратко про ERPS.



Как известно, операторы очень любят кольцевые топологии. Это самый дешевый способ организовать хоть какое-то резервирование. Мне эти самые кольцевые топологии попили крови в своё время, потому как работали на RSTP. Видел я и совсем интересные колечки по 16 коммутаторов, которые, при любом чихе, были склонны застревать в процессе перестроения и ломать всем планы.

Выходом из этой ситуации является семейство протоколов ERPS (Ethernet Ring Protection Switching). Работает как часы, минимум конфигурации, быстрая сходимость... 

Обратимся к картинке в начале поста.

Весь управляющий трафик в ERPS ходит в специальном VLANe (RAPS VLAN). В нормальном состоянии RPL (Ring Protection Link) у RPL Owner заблокирован. На картинке это линк между коммутаторами 0.2 и 0.3. В нашем случае коммутатор 0.2 является коммутатором ответственным за работу с резервным линком, то есть он RPL Owner. 

Авария

Если у коммутатора на сети падает один из назначенных портов, он в два направления рассылает сообщение R-APS(SF) (R-APS signal fail) после того, как истечет таймер holdoff. 
Затем он блокирует свой порт в сторону упавшего линка. 
Получив это сообщение, соседи сбрасывают FDB, а RPL Owner разблокирует RPL порт. 

Восстановление

Когда назначенный линк поднимается, свичи, которые заметили обрыв, отсылают R-APS(NR) (R-APS no request) сообщение и запускают guard таймер, все сообщения до его истечения блокируются. Сделано это для того чтобы стабилизировать топологию в случае быстрой смены состояния портов (flapping). 
RPL owner запускает WTR таймер, по истечению которого блокирует RPL порт и отсылает R-APS(NR,RB) (R-APS no request, root blocked). 
Остальные коммутаторы, получив сообщение, сбрасывают FDB и разблокируют свои порты (на которых был обрыв).

Таймеры

holdoff_time - используется когда линк падает, запускается таймер, по истечении которого отправляется R-APS BPDU SF
guard_time - используется когда линк восстановился отправляется управляющий пакет и запускается таймер, до тех пор пока таймер не истек, все сообщения игнорируются
wtr_time - используется только RPL Owner свичем для отложенной блокировки RRL порта

Настройка

Настроим ERPS на кольце из трех коммутаторов D-link (да простит меня Cisco), которые соединены между собой 19 и 20 портами. Каждый порт объявляется западным или восточным по правилу "Восточный порт должен смотреть на западный и наоборот". Управляющий трафик будет ходить в VLANe 800, трафик остальных VLANов будет защищен.

Коммутатор 172.30.0.1
Создаем управляющий VLAN
create erps raps_vlan 800
Указываем значения таймеров
config erps raps_vlan 800 timer holdoff_time 0 guard_time 500 wtr_time 5
У этого коммутатора нет RPL порта и он не RPL Owner
config erps raps_vlan 800 rpl_port none
config erps raps_vlan 800 rpl_owner disable
Приоритет использующийся для организации пересекающихся колец
config erps raps_vlan 800 ring_mel 1
После восстановления линка, кольцо вернется в первоначальное положение
config erps raps_vlan 800 revertive  enable
Объявляем порты
config erps raps_vlan 800 ring_port west 19
config erps raps_vlan 800 ring_port east 20
Добавляем в ERPS VLANы, которые будут защищены
config erps raps_vlan 800 protected_vlan add vlanid 1-799
config erps raps_vlan 800 protected_vlan add vlanid 801-4094
Включаем инстанс ERPS
config erps raps_vlan 800 state enable
Включаем ERPS вообще
enable erps
Включаем логирование ERPS событий
config erps log enable


Коммутатор 172.30.0.2 (RPL Owner)
create erps raps_vlan 800
config erps raps_vlan 800 timer holdoff_time 0 guard_time 500 wtr_time 5
Этот коммутатор имеет RPL порт, соответственно, он RPL Owner
config erps raps_vlan 800 rpl_port west
config erps raps_vlan 800 rpl_owner enable
config erps raps_vlan 800 ring_mel 1
config erps raps_vlan 800 ring_port west 20
config erps raps_vlan 800 ring_port east 19
config erps raps_vlan 800 protected_vlan add vlanid 1-799
config erps raps_vlan 800 protected_vlan add vlanid 801-4094
config erps raps_vlan 800 state enable
enable erps
config erps log enable
config erps trap disable

Коммутатор 172.30.0.3

create erps raps_vlan 800
config erps raps_vlan 800 timer holdoff_time 0 guard_time 500 wtr_time 5
config erps raps_vlan 800 rpl_port none
config erps raps_vlan 800 rpl_owner disable
config erps raps_vlan 800 ring_mel 1
config erps raps_vlan 800 ring_port west 20
config erps raps_vlan 800 ring_port east 19
config erps raps_vlan 800 protected_vlan add vlanid 1-799
config erps raps_vlan 800 protected_vlan add vlanid 801-4094
config erps raps_vlan 800 state enable
enable erps
config erps log enable
config erps trap disable


В следующий раз, возможно, напишу про такую замечательную штуку как UML и как её можно променять в повседневной жизни сетевого инженера. Ну и надеюсь расчехлить MPLS лабу в скором времени, там самое интересное начинается.

Комментариев нет:

Отправить комментарий