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

Метка MPLS

Метка MPLS — это короткий (обычно 20-битный) идентификатор фиксированной длины, который присваивается пакету данных в сетях с многопротокольной коммутацией по меткам (MPLS). Она используется для принятия решений о продвижении пакета (коммутации) на каждом транзитном маршрутизаторе (LSR — Label Switch Router) вместо анализа IP-заголовка. Метка является локально значимой для каждого транзитного узла и определяет класс эквивалентности пересылки (FEC — Forwarding Equivalence Class).

Структура метки MPLS

Метка MPLS вставляется между канальным (Layer 2) и сетевым (Layer 3) заголовками в виде стека меток. Формат одной записи в стеке (так называемый «шейм» — shim header) состоит из 32 бит (4 байта) и включает четыре поля:

  • Label (20 бит): Основное значение метки. Используется для индексации в таблице меток (LIB — Label Information Base) на коммутаторе. Диапазон значений от 0 до 1 048 575. Значения 0–15 зарезервированы для специальных служебных меток (например, метка 3 — «Implicit NULL» для удаления последней метки перед выходным маршрутизатором).
  • Exp (3 бита): Поле экспериментального использования (Experimental). Первоначально не было строго стандартизировано, но впоследствии стало использоваться для передачи информации о классе обслуживания (CoS — Class of Service) или приоритете пакета (аналогично полям DSCP в IP-заголовке). Позволяет реализовать дифференцированное обслуживание трафика (DiffServ) в сети MPLS.
  • S (1 бит): Бит дна стека (Bottom of Stack). Устанавливается в 1 для последней метки в стеке (ближайшей к IP-заголовку). Если бит равен 0, это означает, что за данной меткой следует ещё одна метка. Стек может содержать несколько меток (обычно до 10, но теоретически не ограничен), что используется для организации иерархических туннелей (например, в MPLS-TE или MPLS-VPN).
  • TTL (8 бит): Поле времени жизни (Time To Live). Аналогично полю TTL в IP-заголовке. Уменьшается на 1 на каждом транзитном LSR. При достижении 0 пакет отбрасывается, а отправителю может быть отправлено ICMP-сообщение об ошибке. Это предотвращает зацикливание пакетов в сети MPLS.

Назначение и принцип работы

Основное назначение метки MPLS — ускорить и упростить процесс маршрутизации. В классической IP-сети каждый маршрутизатор выполняет поиск самого длинного префикса в таблице маршрутизации, что требует значительных вычислительных ресурсов. В сети MPLS решение о продвижении принимается на основе точного совпадения по метке, что позволяет реализовать коммутацию на аппаратном уровне (ASIC) с высокой скоростью.

Процесс передачи данных с использованием меток включает три этапа:

  1. Пограничный входной LSR (Ingress LSR): При поступлении IP-пакета на границу сети MPLS пограничный маршрутизатор анализирует его заголовок (IP-адрес назначения, порты, DSCP) и присваивает ему метку, соответствующую определённому FEC. Метка помещается в стек.
  2. Транзитный LSR (Transit LSR): Каждый последующий маршрутизатор, получив пакет с меткой, выполняет операцию коммутации по метке (Label Switching). Он извлекает верхнюю метку, находит её в своей таблице LIB, выполняет предписанную операцию (замена метки на новую, добавление или удаление метки) и отправляет пакет на соответствующий выходной интерфейс. IP-заголовок не анализируется.
  3. Пограничный выходной LSR (Egress LSR): На выходе из сети MPLS пограничный маршрутизатор удаляет метку (или весь стек меток) и передаёт пакет дальше в классическую IP-сеть на основе его IP-заголовка.

Типы операций с метками

В процессе коммутации LSR выполняет одну из трёх базовых операций:

  • Push (втолкнуть): Добавление новой метки в стек. Выполняется на входном LSR или при входе в туннель более высокого уровня.
  • Swap (заменить): Замена верхней метки в стеке на новую. Наиболее частая операция на транзитных LSR.
  • Pop (извлечь): Удаление верхней метки из стека. Выполняется на выходном LSR или при выходе из туннеля. Для оптимизации используется метка «Implicit NULL» (значение 3), которая предписывает предыдущему LSR удалить метку перед отправкой пакета.

Классификация и применение

Метки MPLS используются в различных технологиях и сервисах:

MPLS VPN (Virtual Private Network)

Одна из наиболее распространённых областей применения. Используется стек из двух меток:

  • Внутренняя метка (VPN-label): Указывает на конкретного клиента VPN и идентифицирует виртуальную таблицу маршрутизации (VRF) на выходном PE-маршрутизаторе.
  • Внешняя метка (Transport-label): Обеспечивает транзит пакета через магистральную сеть провайдера между PE-маршрутизаторами.

MPLS Traffic Engineering (MPLS-TE)

Позволяет прокладывать явные маршруты (туннели) через сеть, не зависящие от протоколов динамической маршрутизации. Метки используются для направления трафика по заранее рассчитанным путям с учётом загрузки каналов, задержек и других параметров. Это позволяет балансировать нагрузку и резервировать пропускную способность.

MPLS GMPLS (Generalized MPLS)

Расширение MPLS для управления не только пакетными сетями, но и оптическими (DWDM), временными (TDM/SDH) и другими типами сетей. Метка может обозначать не только числовой идентификатор, но и частоту, временной слот или порт.

MPLS Pseudowire

Технология эмуляции двухточечного соединения (например, Ethernet или TDM) через сеть MPLS. Метки используются для идентификации конкретного псевдопровода (PW label) и транспортного туннеля.

Протоколы распределения меток

Для автоматического обмена информацией о соответствии меток и FEC между LSR используются протоколы распределения меток (LDP — Label Distribution Protocol). Основные протоколы:

  • LDP (Label Distribution Protocol): Базовый протокол, работающий на основе информации из таблицы маршрутизации (IGP). Строит полносвязную топологию LSP (Label Switched Path) между всеми LSR.
  • RSVP-TE (Resource Reservation Protocol — Traffic Engineering): Используется для MPLS-TE. Позволяет резервировать ресурсы вдоль явного пути и сигнализировать метки.
  • MP-BGP (Multiprotocol BGP): Используется для распространения меток VPN (VPN-IPv4 адреса) между PE-маршрутизаторами в MPLS L3VPN.
  • IS-IS и OSPF с расширениями: Некоторые реализации позволяют распространять метки непосредственно в протоколах IGP.

Преимущества и недостатки

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

  • Высокая производительность: Коммутация по меткам выполняется быстрее, чем поиск по IP-таблице.
  • Масштабируемость: Сети MPLS могут обслуживать миллионы маршрутов VPN, не требуя их хранения в основной таблице каждого транзитного маршрутизатора.
  • Гибкость: Поддержка различных транспортных технологий (Ethernet, ATM, Frame Relay) и возможность создания иерархических туннелей.
  • Управление трафиком: Возможность явного задания путей и резервирования пропускной способности.

Недостатки

  • Сложность настройки: Требует квалифицированного персонала и корректной настройки протоколов распределения меток и маршрутизации.
  • Накладные расходы: Каждый пакет несёт дополнительный заголовок (4 байта на метку), что увеличивает издержки на малых скоростях.
  • Зависимость от IGP: LSP строятся на основе топологии IGP, что может приводить к неоптимальным путям при отсутствии TE.
  • Необходимость в поддержке оборудования: Не все коммутаторы и маршрутизаторы поддерживают MPLS на аппаратном уровне.

Критика и альтернативы

Основная критика MPLS связана с его сложностью и избыточностью для простых сетей. Для небольших сетей с несколькими маршрутизаторами использование MPLS неоправданно. Альтернативой MPLS в некоторых сценариях являются:

  • Segment Routing (SR-MPLS): Более современная эволюция MPLS, где метки кодируют сегменты пути (узлы, интерфейсы), а не FEC. Упрощает управление и не требует протокола LDP.
  • VXLAN (Virtual Extensible LAN): Туннельная технология поверх IP, часто используемая в центрах обработки данных (ЦОД) для создания виртуальных сетей, как альтернатива MPLS VPN.
  • EVPN (Ethernet VPN): Технология, использующая BGP для передачи информации о MAC-адресах и маршрутах, может работать поверх VXLAN или MPLS.

Источники

  • RFC 3031 — Multiprotocol Label Switching Architecture (IETF)
  • RFC 3032 — MPLS Label Stack Encoding (IETF)
  • RFC 5462 — Multiprotocol Label Switching (MPLS) Label Stack Entry: "EXP" Field Renamed to "Traffic Class" Field (IETF)
  • «MPLS и VPN-архитектуры» (Джим Гийар, Айвен Пепельняк)
  • «Основы построения сетей MPLS» (Эрик Осборн, Аджай Симха)

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

На главную BFOmetr →