UDP- В данной статье приведены примеры конфигурирования защиты интерфейсов от однонаправленных каналов(UDLD), а так же от link-flapping.
UDLD- это протокол канального уровня (L2), предназначенный для обнаружения однонаправленных каналов. В качестве примера, если в работе используются оптический разветвитель, то можно столкнуться с ситуацией, когда произошло повреждения одного волокна(Rx или TX) на любой из сторон, линк при этом не погас, что приводит к однонаправленности канала. Данный сбой может вызвать проблемы с передачей трафика и образование петель в топологии. UDLD путем обмена пакетами между соседними устройствами обнаруживает однонаправленные каналы до создания петли.
...
Блок кода |
---|
title | show running-config udld |
---|
|
udld global-mode normal <<<<< Глобальная настройка. Режим работы UDLD для всех интерфейсов с не заданным port-admin-mode
udld interface tengigabitethernet 0/0/2
action err-disable <<<<< режим выключения интерфейса при обнаружении нарушения связности
port-admin-mode aggressive
port-message-interval 10
exit
udld interface tengigabitethernet 0/0/3
action err-disable
port-admin-mode normal
port-message-interval 10
exit
udld interface tengigabitethernet 0/0/4
action err-disable
port-admin-mode aggressive
port-message-interval 10
exit
udld interface tengigabitethernet 0/0/5
action err-disable
port-admin-mode normal
port-message-interval 10
exit
udld interface tengigabitethernet 0/0/6
action err-disable
port-admin-mode normal
port-message-interval 3 |
Блок кода |
---|
title | Вывод: show udld ports status |
---|
|
0/FMC0:EOS# show udld ports status
Link service status: normal
Interface UDLD Mode Msg T (sec) UDLD status Link status Nbrs cnt
--------------------- ------------- ------------ ------------- ----------------- ---------
te 0/0/1 disabled 10 idle up 0 - протокол не включен, линк поднят
te 0/0/2 aggressive 10 bidirectional up 1 - протокол включен, линк поднят, сосед обнаружен
te 0/0/3 normal 10 idle down 0 - протокол включен, линка нет
te 0/0/4 aggressive 10 shutdown down 0 - протокол включен, порт заблокирован
te 0/0/5 normal 10 undetermined up 0 - протокол включен, линк поднят, однонаправленная связь или на соседнем устрйстве не включен UDLD
te 0/0/6 normal 3 Up detection 0 - протокол включен, линк поднят, протокол выполняет определение статуса порта |
...
Касательно возможных статусов и режимов работы протокола UDLD:
Блок кода |
---|
title | вывод: show udld ports status |
---|
|
IDLEIdle - Протокол не задействован на порту.
SHUTDOWNShutdown - порт находится в заблокированном состоянии .
DETECTIONDetection - Протокол выполняет определение статуса порта. В этом состоянии протокол отправляет 8 Probe-пакетов с интервалом 1 секунда (т.е. нахождение в этой состоянии занимает 8 секунд). Отправив все 8 пакетов, порт переходит в одно из двух состояний: UNDETERMINED или BIDIRECTIONAL, анализируя полученные ответы.
UNDETERMINEDUndetermined - Протокол не смог выявить двунаправленную связь - не был получен корректный ответ ни от одного соседнего устройства на этом порту. Может означать как однонаправленную связь, так и отсутствие соседних устройств с задействованным UDLD на этом порту.
СменаBidirectional состояний- BIDIRECTIONALПротокол ->выявил DETECTION -> UNDETERMINED в агрессивном режиме работы UDLD приведёт двунаправленную связь, получив корректный ответ хотя бы от одного соседнего устройства на этом порту.
Normal - "нормальный" режим работы, в котором невозможность обнаружить двунаправленную связь переводит порт в состоянии UNDEFINED. Блокировка порта производится только в случае закольцовывания UDLD-фреймов.
Aggressive - "агрессивный" режим работы, при котором к блокировке порта иприводит егопотеря немедленномуранее переходу в состояние SHUTDOWN.
BIDIRECTIONAL - Протокол выявил двунаправленную связь, получив корректный ответ хотя бы от одного соседнего устройства на этом порту.установленной двунаправленной связи с соседним устройством, либо закольцовывание UDLD-фреймов.
Disable - принудительное отключение протокола на этом порту.
Default - конфигурационная запись для порта будет создана, но в качестве оперативного режима будет использовать глобальная настройка, заданная командой |
В случае, если UDLD обнаружил однаправленный канал или закольцовывание UDLD-фреймов, то взведется авария и порт переведет в состояние shutdown.
Блок кода |
---|
title | вывод: show udld ports status |
---|
|
0/FMC0:EOS# show alarms
Thu Mar 28 06:49:19 2024
ID Code Type Device Severity Duration Description
---- ------------------------------------------------- ------------- -------- --------- ----------- ------------
1 Link is err-disabled alarm trap fmc 0/0 info 00h02m32s te0/0/1 is in err-disable state (reason: udld)
0/FMC0:EOS# show errdisable interfaces
Thu Mar 28 07:21:26 2024
Interface Reason Time left(sec)
----------- ---------------------- ---------------
te0/0/1 unidirectional-link 21
0/FMC0:EOS# show udld ports status
Thu Mar 28 06:47:24 2024
Udld ports global mode: aggressive
Interface UDLD Mode Msg T UDLD Status Link status Nbrs cnt
(sec)
--------------------- ------------- ----------- ----------------- ------------ ---------
te0/0/1 aggressive 1 uni-dir(echo) Down(udld) 0 |
После этого линк на порту не подымается ни командами shutdown/no shutdown, ни переподключением волокна или SFP-модуля. Для восстановления порта необходимо настроить errdisable:
Блок кода |
---|
0/FMC0:EOS(config)# errdisable recovery cause unidirectional-link <<<<< Данной командой включим поддержку errdisable для UDLD
0/FMC0:EOS(config)# errdisable recovery interval 40 <<<<< Установим интерал, по истечению которого пробуем поднять линк
|
Блок кода |
---|
title | Вывод: show errdisable recovery |
---|
|
0/FMC0:EOS# show errdisable recovery
Thu Mar 28 06:54:07 2024
Timer interval: 40 seconds
Reason Automatic Recovery
---------------------- --------------------
link-flapping Enable
unidirectional-link Enable
|
Так же рассмотрим случай, когда мы столкнулись с link-flapping на порту. Порт переходит в состояние Down(link-flapping) после 6 смен состояние up/down за 5 секунд, так же взведется авария. Далее порт находится в данном состоянии и сделает попытку поднять порт через errdisable recovery interval(По умолчанию 30 секунд). Так же по умолчанию errdisable для link-flaping включен.
Блок кода |
---|
title | Вывод: show errdisable recovery |
---|
|
0/FMC0:EOS# show alarms
Thu Mar 28 07:15:29 2024
ID Code Type Device Severity Duration Description
---- ------------------------------------------------- ------------- -------- --------- ----------- ------------
1 Link is err-disabled alarm trap fmc 0/0 info 00h00m29s te0/0/5 is in err-disable state (reason: link-flapping)
0/FMC0:EOS# show int tengigabitethernet 0/0/5
Thu Mar 28 07:15:23 2024
Tengigabitethernet0/0/5 is Down(link-flapping)
Interface index is 27
Hardware is Tengigabitethernet, address is a8:f9:4b:8b:9a:05
Link is down for 0 hours, 0 minutes, 29 seconds
0/FMC0:EOS# show int tengigabitethernet 0/0/5
Thu Mar 28 07:15:25 2024
Tengigabitethernet0/0/5 is Up
Interface index is 27
Hardware is Tengigabitethernet, address is a8:f9:4b:8b:9a:05
Link is up for 0 hours, 0 minutes, 0 seconds
0/FMC0:EOS# show errdisable interfaces
Thu Mar 28 07:21:26 2024
Interface Reason Time left(sec)
----------- ---------------------- ---------------
te0/0/5 link-flapping 28
|