Проектирование сети21.10.20262 мин. чтения

Что такое MPLS: как работает коммутация по меткам и зачем она нужна

Разбираем, как MPLS группирует пакеты в FEC, строит однонаправленные LSP и пересылает трафик по меткам, а также зачем технология нужна для L3VPN, L2VPN и MPLS TE.

MPLS — это способ пересылки трафика по меткам, а не самостоятельная услуга для конечного пользователя. На входе в MPLS-облако пограничный маршрутизатор относит пакет к классу FEC и добавляет метку. Промежуточные узлы принимают решение уже по этой метке, не анализируя IP-пакет так, как это делает обычная L3-маршрутизация. Поэтому сегодня ценность MPLS связана прежде всего с приложениями поверх технологии: L3VPN, L2VPN и MPLS TE, а не с попыткой просто заменить аппаратную IP-коммутацию.

Зачем нужен MPLS, если маршрутизация уже выполняется аппаратно

При Layer 2 Forwarding коммутатор ищет точное совпадение в таблице MAC-адресов и передаёт кадр дальше практически без изменения. Такое решение удобно реализовывать в ASIC и CAM-памяти. При Layer 3 Forwarding устройство ищет наиболее специфичный маршрут в таблице маршрутизации, уменьшает IP TTL, пересчитывает контрольную сумму заголовка, меняет MAC-адреса и пересчитывает Ethernet FCS.

Раньше более сложная IP-обработка часто выполнялась процессором, поэтому маршрутизаторы уступали коммутаторам по скорости. Появление ASIC и TCAM позволило выполнять часть L3 Forwarding аппаратно: TCAM умеет искать не только точное совпадение, но и наиболее специфичное правило с учётом маски. Hardware-based маршрутизаторы используют CPU для control plane, а ASIC — для передачи пакетов в data plane. Поэтому первоначальная задача MPLS — ускорить IP-коммутацию — перестала быть единственным аргументом.

Главное отличие MPLS — другая философия обработки. Устройство внутри MPLS-облака принимает решение по короткой метке и заранее определённому пути, а не каждый раз разбирает адрес назначения внутри IP-заголовка. Это удобно, когда нужно связать удалённые сети, передавать разные типы трафика поверх общей инфраструктуры или управлять прохождением потока. Но ради одной только скорости включать MPLS в уже производительную аппаратную IP-сеть обычно недостаточно: сначала нужно определить прикладную задачу.

Если задача сервера — подключиться к сети с определённой пропускной способностью, она начинается не с MPLS, а с выбора интерфейса и схемы подключения. В этом помогает материал о сетевых картах 1, 10, 25, 40 и 100 GbE: скорость сетевого адаптера, порта и транспортного сегмента должна рассматриваться как единая цепочка.

Как работает пересылка по меткам

Каждый пакет, входящий в MPLS-сеть, относится к FEC (Forwarding Equivalence Class) — классу пакетов, которые должны идти по одному пути и обрабатываться одинаково. Решение о принадлежности к FEC принимает Ingress LSR, то есть входной узел MPLS-облака. Для конкретного участка сети пакеты одного FEC получают одинаковую метку.

Путь от входного до выходного узла называется LSP (Label Switched Path). Это однонаправленный путь, состоящий из последовательности LSR. Роли узлов зависят от конкретного потока: один и тот же физический маршрутизатор может быть входным для одного LSP, промежуточным для другого и выходным для третьего. Поэтому нельзя описывать Ingress, Intermediate и Egress как постоянные свойства оборудования.

  1. Ingress LER принимает обычный пакет, определяет его FEC и добавляет MPLS-метку.
  2. Промежуточный LSR смотрит на верхнюю метку стека и выбирает действие: изменить, удалить или добавить метку, затем отправляет пакет на следующий узел.
  3. Пакет проходит по LSP, соответствующему его FEC.
  4. Egress LER завершает MPLS-обработку и передаёт пакет дальше в сеть, где уже не требуется MPLS-заголовок.

Именно предварительное объединение пакетов в классы уменьшает объём решений на промежуточных узлах. Если поток попал в один FEC, каждый следующий LSR не обязан заново определять его назначение по полной IP-логике: он использует соответствующую запись для метки.

Из чего состоит MPLS-метка

MPLS-метка не заменяет весь сетевой пакет. Она добавляется перед полезной нагрузкой и может находиться в составе стека. Стек бывает одноуровневым или многоуровневым; на практике обычно встречаются один-два, иногда три уровня, хотя теоретически его длина ограничена не фиксированным числом меток, а доступным размером кадра и условиями передачи.

Поле Размер Назначение
Label 20 бит Значение метки, по которому LSR выбирает действие и следующий участок пути.
TC 3 бита Класс трафика и приоритет для MPLS QoS.
BoS или S 1 бит Показывает, является ли текущая метка нижней в стеке.
TTL 8 бит Защищает от бесконечного прохождения пакета при петле.

Поле Label имеет диапазон от 0 до 1 048 575, однако первые 16 значений зарезервированы для специальных целей. В обычном проектировании не стоит воспринимать номер метки как глобальный постоянный адрес: его смысл определяется контекстом конкретного участка MPLS-сети и таблицами оборудования.

Поле S равно единице у нижней метки и нулю, если под текущей меткой есть ещё элементы стека. Это важно при многоуровневой обработке: узел понимает, где заканчивается стек. Поле TC используется для MPLS QoS и переносит приоритет пакета по аналогии с DSCP в IP-пакете.

TTL MPLS выполняет ту же базовую функцию, что IP TTL: не даёт пакету бесконечно циркулировать при петле. IP TTL может быть скопирован в MPLS TTL, а затем возвращён обратно; в другом варианте отсчёт может начинаться заново с 255. Поэтому при диагностике важно заранее понимать, как именно настроено взаимодействие TTL на границе MPLS- и обычной IP-сети.

Схема MPLS: добавление, замена и удаление метки
Отдельная инфографика показывает путь пакета через MPLS-облако: Ingress LER выполняет PUSH, промежуточный LSR — SWAP, а Egress LER — POP. Внизу показана структура 32-битной записи MPLS.

Роли LER, LSR и границы MPLS-облака

LSR (Label Switched Router) — маршрутизатор, который распознаёт MPLS-метки и умеет принимать и отправлять маркированные пакеты. LER (Label Edge Router) находится на границе MPLS-сети. Ingress LSR и Egress LSR являются граничными узлами и одновременно относятся к LER.

На входе особенно важна классификация FEC: ошибка здесь распространяется на весь последующий путь. Если трафик отнесён не к тому классу, он может получить неправильный LSP или параметры обработки. На выходе важно корректно снять или завершить MPLS-обработку, иначе соседняя немаркированная сеть не сможет принять пакет как обычный IP-трафик.

При проектировании сначала определите границы облака: какие интерфейсы относятся к клиентским, где находится Ingress LER, где Egress LER и какие узлы только коммутируют метки. Затем зафиксируйте ожидаемый путь для каждого типа трафика. Это позволит отделить проблему клиентского подключения от ошибки внутри LSP.

Что строят поверх MPLS

L3VPN

L3VPN использует MPLS-облако для построения изолированных логических сетей поверх общей операторской или корпоративной инфраструктуры. Практический смысл — связать площадки или группы маршрутов так, чтобы для них сохранялись отдельные правила взаимодействия, хотя физический транспорт общий. При выборе такого решения нужно заранее описать адресные пространства, границы каждой сети и правила обмена маршрутами; сама метка не заменяет эту логическую модель.

L2VPN и VPLS

L2VPN переносит между удалёнными точками сервис, требующий поведения канального уровня. VPLS относится к приложениям MPLS, построенным для объединения распределённых сегментов. Такой вариант выбирают, когда конечным узлам нужно сохранить модель L2-связи, а не только получить маршрутизируемую IP-доступность. Ошибка — использовать L2-сервис без контроля размера широковещательного домена и без понимания того, какие кадры должны проходить между площадками.

xconnect

Xconnect создаёт точечное логическое соединение между двумя сторонами через MPLS-инфраструктуру. Это полезно для конкретной пары узлов или сервисов, но не заменяет полноценную модель многоточечной сети. Перед внедрением определите, нужен ли один канал между двумя концами или связь нескольких площадок: от этого зависит выбор приложения и сложность сопровождения.

MPLS TE

MPLS Traffic Engineering применяется для управления прохождением потоков по сети. Его смысл раскрывается там, где недостаточно просто следовать обычному маршруту и требуется учитывать выбранный путь. До внедрения нужно описать причины управления: ограничение перегруженного участка, распределение потоков или требования конкретного сервиса. Без измеримых критериев TE усложняет конфигурацию, но не гарантирует полезного результата.

Как выбрать: MPLS, обычная IP-сеть или другой транспорт

Выбор делайте от требуемого сервиса, а не от названия технологии. Обычная аппаратная L3-маршрутизация подходит, если достаточно маршрутов, доступности и стандартной обработки IP-пакетов. MPLS оправдан, когда нужны L3VPN, L2VPN, xconnect или управление путями MPLS TE в общей инфраструктуре.

Критерий Обычная L3-сеть MPLS-подход
Основа решения Наиболее специфичный IP-маршрут Класс FEC и метка на LSP
Промежуточная обработка IP-маршрутизация с обновлением полей заголовка Решение по верхней MPLS-метке
Изоляция сервисов Реализуется средствами IP-дизайна Может строиться через приложения поверх MPLS
Управление путём Зависит от IP-маршрутизации Возможно применение MPLS TE
Сложность эксплуатации Ниже при простой топологии Выше: нужно контролировать FEC, LSP, метки и границы

Если MPLS-сегмент проходит по оптической инфраструктуре, отдельно проверьте совместимость портов, модулей и среды передачи. Для выбора варианта подключения пригодится материал о DAC, AOC и оптических трансиверах. А обозначения SFP, SFP+, SFP28, QSFP+ и QSFP28 нельзя выбирать только по внешнему сходству: их скорости и совместимость нужно сопоставлять с портами конкретных узлов.

Пошаговый план внедрения и проверки

  1. Опишите сервис. Зафиксируйте, что требуется: маршрутизируемая связь L3VPN, канальный L2VPN, точечный xconnect или управление путями через MPLS TE.
  2. Нарисуйте границы. Отметьте клиентские сети, Ingress и Egress LER, промежуточные LSR и все участки транспорта.
  3. Разделите control plane и data plane. Определите, какие решения принимаются управляющими компонентами, а какие выполняются аппаратно ASIC или сетевым процессором.
  4. Определите FEC. Для каждого типа потока укажите, какие пакеты должны идти одинаково и какой LSP им соответствует.
  5. Проверьте стек меток. Убедитесь, что оборудование корректно обрабатывает верхнюю метку, бит S, TTL и поле TC, если используется QoS.
  6. Проверьте границы. Отдельно протестируйте добавление метки на входе и завершение MPLS-обработки на выходе.
  7. Сопоставьте физику. Проверьте скорость сетевых адаптеров, портов, оптических модулей и выбранных кабелей; несоответствие на этом уровне не исправит логическая настройка MPLS.
  8. Проверьте отказоустойчивость. Для каждого LSP зафиксируйте ожидаемое поведение при недоступности участка и убедитесь, что петля не приводит к бесконечному прохождению пакетов.

Типичная ошибка — начинать настройку с номеров меток, не описав сервис и FEC. Номер сам по себе ничего не говорит о назначении потока. Вторая ошибка — считать MPLS полной заменой IP-маршрутизации: на границах и в управляющей части всё равно нужно понимать адресацию, маршруты и правила передачи. Третья — смешивать роли оборудования с ролями потока: один физический LSR может выполнять разные функции для разных LSP.

Итоговый выбор

MPLS нужен не потому, что современный коммутатор не умеет быстро пересылать IP-пакеты. Его практическая роль — организовать обработку трафика по FEC и LSP, а поверх этого построить L3VPN, L2VPN, xconnect или MPLS TE. Если такой сервис не требуется, сначала сравните MPLS с обычной аппаратной L3-сетью по сложности и результату. Если требуется, начинайте с карты границ LER, перечня FEC и ожидаемых LSP, затем проверяйте метки, TTL, QoS и физические интерфейсы. Такой порядок снижает риск получить сложную инфраструктуру без понятной пользы.