Траблшутинг однонаправленных линков с помощью протокола UDLD
- Оптоволоконный линк активен только в одну сторону (например, жила Tx работает, а волокно Rx оборвано или загрязнено).
- Служебные кадры STP BPDU перестают поступать на один из свитчей, заставляя его ошибочно перевести заблокированный порт в состояние
Forwardingи вызвать петлю коммутации. - Интерфейс переходит в состояние
udld-disabled / err-disabled. - В логах фиксируется ошибка:
%UDLD-4-UDLD_PORT_DISABLED: UDLD disabled interface Gi1/0/1, unidirectional link detected.
1. Проверка статуса протокола UDLD на портах
show udld GigabitEthernet1/0/1
show udld neighborsСтатусы UDLD:
Bidirectional— нормальная работа (эхо-пакеты успешно ходят в обе стороны);Unidirectional— обнаружена однонаправленная связь (порт заблокирован);Undetermined— сосед не ответил на запросы UDLD (возможен сбой линка).
2. Разница режимов UDLD (Normal vs Aggressive)
- Normal Mode: При потере связи переводит статус в Undetermined, генерирует лог, но не отключает порт (опасен при обрыве оптики).
- Aggressive Mode (Рекомендуемый): Если сосед перестал слать эхо-пакеты (8 попыток подряд по 1 сек), немедленно гасит интерфейс в
err-disabled.
3. Глобальная и интерфейсная настройка UDLD Aggressive
# Включение глобально для всех оптических портов:
configure terminal
udld enable aggressive
exit
# Включение на конкретном интерфейсе:
interface GigabitEthernet1/0/1
udld port aggressive
exit4. Восстановление порта из состояния UDLD Err-Disabled
# Способ 1: Перезапуск интерфейса
interface GigabitEthernet1/0/1
shutdown
no shutdown
exit
# Способ 2: Сброс всех портов, заблокированных UDLD:
udld reset Частые вопросы (FAQ)
Как физически возникает однонаправленный линк на оптике?
Оптический дуплексный линк состоит из двух независимых волокон (Tx и Rx). Если волокно Rx повреждено, коммутатор А перестает слышать коммутатор Б, но продолжает передавать данные по исправному волокну Tx. Для коммутатора Б линк выглядит полностью поднятым (Up/Up).
Чем UDLD отличается от механизма Loop Guard в Spanning Tree?
Loop Guard следит только за отсутствием BPDU на не-рутовых портах STP. UDLD работает на уровне L2 как самостоятельный протокол эхо-тестирования между пирами и защищает как транки, так и Port-Channel линки независимо от STP.
Работает ли UDLD на медных кабелях витой пары (1000BASE-T)?
Да, но для медных портов его нужно явно активировать на самом интерфейсе (команда udld port aggressive), так как глобальная команда 'udld enable' включает протокол только на оптических SFP-интерфейсах.
Как часто UDLD отправляет тестовые пакеты?
По умолчанию интервал отправки сообщений (Message Time) составляет 15 секунд (в Aggressive режиме детектирует сбой за ~8 секунд). На некоторых платформах интервал можно сократить до 7 секунд.