Протокол LDP (Label Distribution Protocol) встречается в конфигурации почти любой сети провайдера, где используется MPLS: без него маршрутизаторы не смогут обменяться метками, и трафик между узлами пойдёт по обычной IP-маршрутизации или не пойдёт вовсе. Если на стыке двух LSR-соседей сессия LDP не поднимается, типичный симптом — VPN-сервисы поверх MPLS перестают работать, хотя IGP-соседство и связность по IP при этом в порядке.

Разберёмся, что именно делает этот протокол, какие сообщения он использует, как проверить его состояние на оборудовании и где чаще всего кроются причины проблем. Материал ориентирован на тех, кто впервые сталкивается с MPLS-сетями или диагностирует отказ LDP на маршрутизаторах Cisco, Juniper, Huawei или MikroTik.

Назначение LDP в архитектуре MPLS

MPLS (Multiprotocol Label Switching) пересылает пакеты не по IP-адресу назначения, а по короткой метке, которую маршрутизаторы навешивают на пакет. Но чтобы коммутация по меткам работала, каждый узел сети должен знать, какая метка соответствует какому префиксу. Именно эту задачу решает LDP — он распределяет привязки «метка ↔ префикс» между соседними маршрутизаторами.

Протокол описан в RFC 5036 и работает поверх двух транспортов: обнаружение соседей идёт через UDP (multicast-hello), а сама сессия устанавливается по TCP между адресами соседей. После установления сессии маршрутизаторы начинают обмениваться сообщениями о метках для всех префиксов, известных из таблицы маршрутизации.

Важно понимать границу ответственности: LDP не строит маршруты сам. Он опирается на таблицу, которую сформировал IGP-протокол (OSPF или IS-IS). Поэтому метки распределяются строго вдоль путей, выбранных внутренним протоколом маршрутизации, — это называется «hop-by-hop» распределение.

💡

LDP не маршрутизирует трафик, а лишь распределяет метки по путям, которые уже выбрал IGP (OSPF или IS-IS). Без работающего IGP сессии LDP бесполезны.