Открыть сервис

Label Distribution Protocol

Label Distribution Protocol (LDP) — это протокол сигнализации в сетях с коммутацией по меткам (MPLS), предназначенный для распределения меток между маршрутизаторами (LSR, Label Switching Router) в одном домене MPLS. LDP позволяет автоматически устанавливать соответствие между метками и сетевыми префиксами (маршрутами) на основе информации из таблиц маршрутизации (обычно протоколов IGP, таких как OSPF или IS-IS), формируя таким образом пути с коммутацией по меткам (LSP, Label Switched Path) без явного указания каждого узла. Протокол определён в документах RFC 3036 и RFC 5036.

История и развитие

LDP был разработан в конце 1990-х годов как часть стека протоколов MPLS, предложенного Инженерным советом Интернета (IETF) для ускорения и упрощения передачи данных в магистральных сетях. Первоначально протокол был описан в RFC 3036 (январь 2001 года), который позже был заменён на RFC 5036 (октябрь 2007 года) с уточнениями и исправлениями. LDP стал одним из первых протоколов сигнализации MPLS, наряду с CR-LDP (Constraint-based Routing LDP) и RSVP-TE (Resource Reservation Protocol — Traffic Engineering). Однако CR-LDP не получил широкого распространения, и LDP остаётся основным протоколом для базовой установки LSP в сетях операторов связи.

В 2010-х годах, с ростом требований к масштабируемости и гибкости, появились расширения LDP, такие как mLDP (Multicast LDP) для поддержки многоадресной рассылки и LDP-IGP синхронизация для предотвращения потери трафика при сбоях. В современных сетях LDP часто используется совместно с протоколом BGP (Border Gateway Protocol) для построения MPLS L3VPN и VPLS.

Принцип работы

LDP работает на основе обмена сообщениями между LSR через UDP- и TCP-соединения (порт 646). Процесс установки LSP включает следующие этапы:

  1. Обнаружение соседей (Discovery): LSR отправляет Hello-сообщения по протоколу UDP на многоадресный адрес 224.0.0.2 (все маршрутизаторы в подсети) для обнаружения соседних LSR. После обнаружения устанавливается TCP-сессия (порт 646) между двумя LSR.
  1. Установление сессии (Session Establishment): После установки TCP-соединения LSR обмениваются Initialization-сообщениями, согласовывая параметры (например, версию протокола, таймеры удержания). Если параметры совпадают, сессия переходит в состояние «Operational».
  1. Распределение меток (Label Distribution): LSR использует базу данных LIB (Label Information Base) для хранения соответствий между метками и FEC (Forwarding Equivalence Class — класс эквивалентности пересылки, обычно соответствующий IP-префиксу). LSR отправляет сообщения Label Mapping соседям, объявляя, что он может пересылать трафик для определённого FEC с определённой меткой. Сообщения могут быть:
  • Downstream Unsolicited (DU): LSR самостоятельно отправляет метки соседям, не дожидаясь запроса.
  • Downstream on Demand (DoD): LSR отправляет метки только после запроса от вышестоящего маршрутизатора.
  1. Поддержание сессии (Session Maintenance): LSR периодически обменивается KeepAlive-сообщениями для проверки работоспособности сессии. Если сообщение не получено в течение таймера удержания, сессия закрывается, и все связанные метки удаляются.
  1. Освобождение меток (Label Withdrawal): При изменении топологии сети (например, отключении маршрута) LSR отправляет сообщение Label Withdraw для аннулирования метки, инициируя перестроение LSP.

Классификация и виды

LDP можно классифицировать по режиму распределения меток и способу установки LSP:

  • По режиму распределения:
  • DU (Downstream Unsolicited): LSR активно рассылает метки всем соседям для всех известных FEC. Используется по умолчанию в большинстве реализаций.
  • DoD (Downstream on Demand): LSR запрашивает метку только при необходимости, что уменьшает объём служебного трафика, но увеличивает задержку установки LSP.
  • По типу LSP:
  • Базовый LDP: устанавливает LSP для всех префиксов IGP, создавая полносвязную топологию.
  • mLDP (Multicast LDP): расширение для построения многоадресных LSP, используемое в Multicast VPN.
  • По способу установки:
  • Независимый (Independent): каждый LSR может объявлять метки без ожидания от вышестоящего маршрутизатора. Это ускоряет установку, но может привести к временным петлям.
  • Упорядоченный (Ordered): метки распространяются от конечного (egress) LSR к начальному (ingress), что гарантирует отсутствие петель, но требует больше времени.

Устройство и протокольные аспекты

LDP использует несколько типов сообщений, передаваемых через TCP:

  • Discovery (UDP): Hello-сообщения для обнаружения соседей.
  • Session (TCP): Initialization, KeepAlive, Notification — для установления и поддержания сессии.
  • Advertisement (TCP): Label Mapping, Label Request, Label Withdraw, Label Release — для управления метками.

Каждое сообщение содержит TLV (Type-Length-Value) поля, например:

  • FEC TLV: определяет класс эквивалентности (обычно IP-префикс).
  • Label TLV: содержит значение метки (20 бит в MPLS-заголовке).
  • Hop Count TLV: ограничивает количество транзитных узлов для предотвращения петель.

LDP не зависит от протокола маршрутизации, но использует таблицу маршрутизации (RIB) для определения FEC. Для синхронизации с IGP (например, OSPF или IS-IS) используется механизм LDP-IGP Synchronization, который задерживает объявление маршрутов IGP до тех пор, пока LDP не установит все необходимые LSP, предотвращая потерю трафика.

Применение и значение

LDP широко применяется в сетях операторов связи и крупных корпоративных сетях для:

  • Построения MPLS-магистралей: LDP автоматически создаёт LSP между всеми LSR, обеспечивая коммутацию по меткам без ручной настройки каждого пути.
  • Поддержки MPLS L3VPN и VPLS: LDP распределяет метки для внутренних префиксов, а BGP — для внешних (VPNv4). Это позволяет строить виртуальные частные сети с изоляцией трафика.
  • Транспортировки трафика в SD-WAN и 5G: LDP используется в опорных сетях (backbone) для обеспечения низкой задержки и высокой пропускной способности.
  • Быстрого восстановления (Fast Reroute): LDP может работать совместно с RSVP-TE для создания резервных LSP.

Преимущества LDP:

  • Простота настройки и автоматическое обнаружение соседей.
  • Низкая вычислительная нагрузка по сравнению с RSVP-TE.
  • Совместимость с большинством MPLS-реализаций (Cisco, Juniper, Huawei и др.).

Недостатки:

  • Отсутствие поддержки трафика с гарантированной полосой пропускания (Traffic Engineering) — для этого требуется RSVP-TE.
  • Возможность временных петель при независимом режиме распределения.
  • Зависимость от стабильности IGP: при частых изменениях топологии LDP может генерировать избыточный служебный трафик.

Интересные факты

  • LDP поддерживает механизм LDP Tunneling для вложенных LSP, когда один LSP проходит через другой (например, в иерархических MPLS-сетях).
  • Протокол может работать в режиме Targeted LDP (tLDP), когда Hello-сообщения отправляются не на многоадресный, а на конкретный IP-адрес, что позволяет устанавливать LSP между LSR, не являющимися прямыми соседями.
  • В некоторых реализациях (например, Cisco IOS) LDP может использовать Label Retention Mode:
  • Liberal: LSR сохраняет все полученные метки, даже если они не используются, что ускоряет переключение при сбоях.
  • Conservative: LSR хранит только метки, используемые в данный момент, экономя память.
  • LDP был разработан как альтернатива более сложному протоколу CR-LDP, который не получил широкого распространения из-за отсутствия поддержки Traffic Engineering.

Источники

  • RFC 3036 — LDP Specification (январь 2001, заменён RFC 5036).
  • RFC 5036 — LDP Specification (октябрь 2007).
  • RFC 5561 — LDP Capabilities.
  • RFC 6388 — Label Distribution Protocol Extensions for Point-to-Multipoint and Multipoint-to-Multipoint Label Switched Paths (mLDP).
  • Документация Cisco: «MPLS Label Distribution Protocol».
  • Документация Juniper Networks: «Understanding LDP».
  • Статья «MPLS and Label Distribution Protocol» в журнале «IEEE Communications Magazine» (2002).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →