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

У истоков

Традиционно главными требованиями, предъявляемыми к технологии магистральной сети, были высокая пропускная способность, малое значение задержки и хорошая масштабируемость. Однако современное состояние рынка диктует новые правила игры. Теперь поставщику услуг недостаточно просто предоставлять доступ к своей IP-магистрали. Изменившиеся потребности пользователей включают в себя и доступ к интегрированным сервисам сети, и организацию виртуальных частных сетей (VPN), и ряд других интеллектуальных услуг. Растущий спрос на дополнительные услуги, реализуемые поверх простого IP-доступа, обещает принести Internet-провайдерам огромные доходы.

Для решения возникающих задач и разрабатывается архитектура MPLS, которая обеспечивает построение магистральных сетей, имеющих практически неограниченные возможности масштабирования, повышенную скорость обработки трафика и беспрецедентную гибкость с точки зрения организации дополнительных сервисов. Кроме того, технология MPLS позволяет интегрировать сети IP и ATM, за счет чего поставщики услуг смогут не только сохранить средства, инвестированные в оборудование асинхронной передачи, но и извлечь дополнительную выгоду из совместного использования этих протоколов.

За развитие архитектуры MPLS отвечает рабочая группа с одноименным названием, входящая в секцию по маршрутизации консорциума IETF. В деятельности группы принимают активное участие представители крупнейших поставщиков сетевых решений и оборудования. Эта архитектура выросла из системы Tag Switching, предложенной Cisco Systems, однако некоторые идеи были заимствованы у конкурирующей технологии IP-коммутации, созданной компанией Ipsilon, и проекта ARIS корпорации IBM. В архитектуре MPLS собраны наиболее удачные элементы всех упомянутых разработок, и вскоре она должна превратиться в стандарт Internet благодаря усилиям IETF и компаний, заинтересованных в скорейшем продвижении данной технологии на рынок.

Принцип коммутации

В основе MPLS лежит принцип обмена меток. Любой передаваемый пакет ассоциируется с тем или иным классом сетевого уровня (Forwarding Equivalence Class, FEC), каждый из которых идентифицируется определенной меткой. Значение метки уникально лишь для участка пути между соседними узлами сети MPLS, которые называются также маршрутизаторами, коммутирующими по меткам (Label Switching Router, LSR). Метка передается в составе любого пакета, причем способ ее привязки к пакету зависит от используемой технологии канального уровня.

Маршрутизатор LSR получает топологическую информацию о сети, участвуя в работе алгоритма маршрутизации — OSPF, BGP, IS-IS. Затем он начинает взаимодействовать с соседними маршрутизаторами, распределяя метки, которые в дальнейшем будут применяться для коммутации. Обмен метками может производиться с помощью как специального протокола распределения меток (Label Distribution Protocol, LDP), так и модифицированных версий других протоколов сигнализации в сети (например, незначительно видоизмененных протоколов маршрутизации, резервирования ресурсов RSVP и др.).

Распределение меток между LSR приводит к установлению внутри домена MPLS путей с коммутацией по меткам (Label Switching Path, LSP). Каждый маршрутизатор LSR содержит таблицу, которая ставит в соответствие паре «входной интерфейс, входная метка» тройку «префикс адреса получателя, выходной интерфейс, выходная метка». Получая пакет, LSR по номеру интерфейса, на который пришел пакет, и по значению привязанной к пакету метки определяет для него выходной интерфейс. (Значение префикса применяется лишь для построения таблицы и в самом процессе коммутации не используется.) Старое значение метки заменяется новым, содержавшимся в поле «выходная метка» таблицы, и пакет отправляется к следующему устройству на пути LSP.

Вся операция требует лишь одноразовой идентификации значений полей в одной строке таблицы. Это занимает гораздо меньше времени, чем сравнение IP-адреса отправителя с наиболее длинным адресным префиксом в таблице маршрутизации, которое используется при традиционной маршрутизации.

Рис. 1. Схема коммутации MPLS

Сеть MPLS делится на две функционально различные области — ядро и граничную область (рис. 1). Ядро образуют устройства, минимальным требованием к которым является поддержка MPLS и участие в процессе маршрутизации трафика для того протокола, который коммутируется с помощью MPLS. Маршрутизаторы ядра занимаются только коммутацией. Все функции классификации пакетов по различным FEC, а также реализацию таких дополнительных сервисов, как фильтрация, явная маршрутизация, выравнивание нагрузки и управление трафиком, берут на себя граничные LSR. В результате интенсивные вычисления приходятся на граничную область, а высокопроизводительная коммутация выполняется в ядре, что позволяет оптимизировать конфигурацию устройств MPLS в зависимости от их местоположения в сети.

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

Поскольку на установление соответствия пакетов определенным классам FEC могут влиять не только IP-адреса, но и другие параметры, нетрудно реализовать, например, назначение различных LSP пакетам, относящимся к различным потокам RSVP или имеющим разные приоритеты обслуживания. Конечно, подобный сценарий удается осуществить и в обычных маршрутизируемых сетях, но решение на базе MPLS оказывается проще и к тому же гораздо лучше масштабируется.

Каждый из классов FEC обрабатывается отдельно от остальных — не только потому, что для него строится свой путь LSP, но и в смысле доступа к общим ресурсам (полосе пропускания канала и буферному пространству). В результате технология MPLS позволяет очень эффективно поддерживать требуемое качество обслуживания, не нарушая предоставленных пользователю гарантий. Применение в LSR таких механизмов управления буферизацией и очередями, как WRED, WFQ или CBWFQ, дает возможность оператору сети MPLS контролировать распределение ресурсов и изолировать трафик отдельных пользователей.

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

Элементы архитектуры

Метки и способы маркировки

Метка — это короткий идентификатор фиксированной длины, который определяет класс FEC. По значению метки пакета определяется его принадлежность к определенному классу на каждом из участков коммутируемого маршрута.

Как уже отмечалось, метка должна быть уникальной лишь в пределах соединения между каждой парой логически соседних LSR. Поэтому одно и то же ее значение может использоваться LSR для связи с различными соседними маршрутизаторами, если только имеется возможность определить, от какого из них пришел пакет с данной меткой. Другими словами, в соединениях «точка—точка» допускается применять один набор меток на интерфейс, а для сред с множественным доступом необходим один набор меток на модуль или все устройство. В реальных условиях угроза исчерпания пространства меток очень маловероятна.

Перед включением в состав пакета метка определенным образом кодируется. В случае использования протокола IP она помещается в специальный «тонкий» заголовок пакета, инкапсулирующего IP. В других ситуациях метка записывается в заголовок протокола канального уровня или кодируется в виде определенного значения VPI/VCI (в сети АТМ). Для пакетов протокола IPv6 метку можно разместить в поле идентификатора потока.

Стек меток

В рамках архитектуры MPLS вместе с пакетом разрешено передавать не одну метку, а целый их стек. Операции добавления/изъятия метки определены как операции на стеке (push/pop). Результат коммутации задает лишь верхняя метка стека, нижние же передаются прозрачно до операции изъятия верхней. Такой подход позволяет создавать иерархию потоков в сети MPLS и организовывать туннельные передачи. Стек состоит из произвольного числа элементов, каждый из которых имеет длину 32 бита: 20 бит составляют собственно метку, 8 отводятся под счетчик времени жизни пакета, один указывает на нижний предел стека, а три не используются. Метка может принимать любое значение, кроме нескольких зарезервированных.

Компоненты коммутируемого маршрута

Рис. 2. Компоненты коммутируемого соединения

Коммутируемый путь (LSP) одного уровня состоит из последовательного набора участков, коммутация на которых происходит с помощью метки данного уровня (рис. 2). Например, LSP нулевого уровня проходит через устройства LSR 0, LSR 1, LSR 3, LSR 4 и LSR 5. При этом LSR 0 и LSR 5 являются, соответственно, входным (ingress) и выходным (egress) маршрутизаторами для пути нулевого уровня. LSR 1 и LSR 3 играют ту же роль для LSP первого уровня; первый из них производит операцию добавления метки в стек, а второй — ее изъятия. С точки зрения трафика нулевого уровня, LSP первого уровня является прозрачным туннелем. В любом сегменте LSP можно выделить верхний и нижний LSR по отношению к трафику. Например, для сегмента «LSR 4 — LSR 5» четвертый маршрутизатор будет верхним, а пятый — нижним.

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

Под привязкой понимают соответствие между определенным классом FEC и значением метки для данного сегмента LSP. Привязку всегда осуществляет «нижний» маршрутизатор LSR, поэтому и информация о ней распространяется только в направлении от нижнего LSR к верхнему. Вместе с этими сведениями могут предаваться атрибуты привязки.

Обмен информацией о привязке меток и атрибутах осуществляется между соседними LSR с помощью протокола распределения меток. Архитектура MPLS не зависит от конкретного протокола, поэтому в сети могут применяться разные протоколы сетевой сигнализации. Очень перспективно в данном отношении — использование RSVP для совмещения резервирования ресурсов и организации LSP для различных потоков.

Существуют два режима распределения меток: независимый и упорядоченный. Первый предусматривает возможность уведомления верхнего узла о привязке до того, как конкретный LSR получит информацию о привязке для данного класса от своего нижнего соседа. Второй режим разрешает высылать подобное уведомление только после получения таких сведений от нижнего LSR, за исключением случая, когда маршрутизатор LSR является выходным для этого FEC.

Распространение информации о привязке может быть инициировано запросом от верхнего устройства LSR (downstream on-demand) либо осуществляться спонтанно (unsolicited downstream).

Построение коммутируемого маршрута

Рассмотрим, как система MPLS автоматически создает путь LSP в простейшем случае — с помощью протокола LDP. Архитектура MPLS не требует обязательного применения LDP, однако, в отличие от других возможных вариантов, он наиболее близок к окончательной стандартизации.

Сначала посредством многоадресной рассылки сообщений UDP коммутирующие маршрутизаторы определяют свое «соседство» (adjacency) в рамках протокола LDP. Кроме близости на канальном уровне, LDP может устанавливать связь между «логически соседними» LSR, не принадлежащими к одному каналу. Это необходимо для реализации туннельной передачи. После того как соседство установлено, LDP открывает транспортное соединение между участниками сеанса поверх ТСР. По этому соединению передаются запросы на установку привязки и сама информация о привязке. Кроме того, участники сеанса периодически проверяют работоспособность друг друга, отправляя тестовые сообщения (keepalive message).

Построение коммутируемого пути по протоколу LDP

Рассмотрим на примере, как происходит заполнение таблиц меток по протоколу LDP (рис. 3). Предположим, что выбран упорядоченный режим распределения меток LSP со спонтанным распространением сведений о привязке.

На стадии A каждое из устройств сети MPLS строит базу топологической информации, задействуя любой из современных протоколов маршрутизации (на схеме — OSPF). На стадии B маршрутизаторы LSR применяют процедуру нахождения соседних устройств и устанавливают с ними сеансы LDP.

Далее (стадия С ) LSR 2 на основе анализа собственных таблиц маршрутизации обнаруживает, что он является выходным LSR для пути, ведущего к IP-сети 193.233.48.0. Тогда LSR 2 ассоциирует класс FEC с пакетами, адрес получателя которых соответствует префиксу данной сети, и присваивает этому классу случайное значение метки — в нашем случае 18. Получив привязку, протокол LDP уведомляет верхний маршрутизатор LSR (LSR 1) о том, что потоку, адресованному сети с префиксом 193.233.48, присвоена метка 18. LSR 1 помещает это значение в поле выходной метки своей таблицы.

На стадии D устройство LSR 1, которому известно значение метки для потока, адресованного на префикс 193.233.48, присваивает собственное значение метки данному FEC и уведомляет верхнего соседа (LSR 0) об этой привязке. Теперь LSR 0 записывает полученную информацию в свою таблицу. После завершения данного процесса все готово для передачи пакетов из сети «клиента» в сеть с адресом 193.233.48.0, т.е. по выбранному пути LSP.

Спецификация класса FEC может содержать несколько компонентов, каждый из которых определяет набор пакетов, соответствующих данному классу. На сегодняшний день определены два компонента FEC: адрес узла (host address) и адресный префикс (address prefix). Пакет классифицируется как принадлежащий к данному классу FEC, если адрес получателя точно совпадает с компонентом адреса узла либо имеет максимальное совпадение с адресным префиксом. В нашем примере узел LSR 0 выполняет в процессе передачи классификацию пакетов, поступающих к нему из сети клиента, и (если адрес получателя в них совпадает с префиксом 193.233.48), присвоив пакету метку 33, отправляет его через интерфейс 2.

Что дальше?

В настоящее время существуют два основных способа создания магистральных IP-сетей: с помощью IP-маршрутизаторов, соединенных каналами «точка—точка», либо на базе транспортной сети АТМ, поверх которой работают IP-маршрутизаторы. Применение MPLS оказывается выгодным в обоих случаях. В магистральной сети АТМ оно дает возможность одновременно предоставлять клиентам как стандартные сервисы ATM, так и широкий спектр услуг IP-сетей вместе с дополнительными услугами. Такой подход существенно расширяет пакет услуг провайдера, заметно повышая его конкурентоспособность. Тандем IP и ATM, соединенных посредством MPLS, способствует еще большему распространению этих технологий и создает основу для построения крупномасштабных сетей с интеграцией сервисов.

Технология MPLS очень близка к тому, чтобы стать стандартом. И хотя работа в данном направлении еще не завершена, многие крупные компании, такие как Cisco Systems, Nortel Networks и Ascend (подразделение Lucent), уже сейчас предлагают решения на базе MPLS, а поставщики услуг вроде AT&T, Hongkong Telecom, vBNS и Swisscom объявили о начале эксплуатации сетей MPLS.

ОБ АВТОРЕ

Игорь Алексеев (aiv@yars.free.net) — эксперт по информационным системам Центра Интернет Ярославского государственного университета.

Преимущества технологии MPLS

  • Отделение выбора маршрута от анализа IP-адреса (дает возможность предоставлять широкий спектр дополнительных сервисов при сохранении масштабируемости сети)
  • Ускоренная коммутация (сокращает время поиска в таблицах)
  • Гибкая поддержка QoS, интегрированных сервисов и виртуальных частных сетей
  • Эффективное использование явного маршрута
  • Сохранение инвестиций в установленное ATM-оборудование
  • Разделение функциональности между ядром и граничной областью сети

Краткий глоссарий

BGP (Border Gateway Protocol) — граничный шлюзовой протокол. Разновидность протокола маршрутизации между автономными системами.

CBWFQ (Class Based WFQ) — технология WFQ, действие которой распространяется на несколько классов трафика с совместным доступом к ресурсам.

FEC (Forwarding Equivalence Class) — класс эквивалентности при передаче. Класс пакетов сетевого уровня, которые получают от сети MPLS одинаковое обслуживание как при выборе LSP, так и с точки зрения доступа к ресурсам.

IETF (Internet Engineering Task Force) — рабочая группа инженеров по Internet. Организация, отвечающая за разработку протоколов сети Internet.

IS-IS (Intermediate System-to-Intermediate System) — «промежуточная система—промежуточная система». Разновидность протокола маршрутизации внутри автономной системы.

LDP (Label Distribution Protocol) — протокол распределения информации о привязке меток к FEC.

LSP (Label Switching Path) — путь коммутации по меткам.

LSR (Label Switching Router) — узел сети MPLS, участвующий в реализации алгоритма маршрутизации и выполняющий коммутацию по меткам.

MPLS (MultiProtocol Label Switching) — многопротокольная коммутация по меткам.

OSPF (Open Shortest Path First) — «первым выбирается кратчайший путь». Разновидность протокола маршрутизации внутри автономной системы.

QoS (Quality of Service) — качество сервиса. Набор параметров, описывающих свойства потока и гарантированный уровень сетевого обслуживания.

RSVP (Resource Reservation Protocol) — протокол резервирования ресурсов в IP-сетях.

VCI (Virtual Circuit Identifier) — идентификатор виртуального канала. Пара VPI/VCI в заголовке АТМ-ячейки определяет соединение (маршрут) в сети АТМ.

VPI (Virtual Path Identifier) — идентификатор виртуального пути. Совместно с VCI определяет соединение в сети АТМ.

WFQ (Weighted Fair Queing) — взвешенное недискриминационное распределение по очереди. Технология управления буферизацией и обслуживанием потоков, способствующая предотвращению перегрузок.

WRED (Weighted Random Early Detection) — взвешенное случайное раннее обнаружение. Вероятностный алгоритм управления очередью, который сохраняет среднюю длину очереди малой за счет раннего уведомления адаптивного транспортного протокола о приближении перегрузки.

Наиболее исчерпывающую информацию о компонентах архитектуры MLPS, текущем состоянии дел в области стандартизации и перспективах этой технологии можно найти на сервере IETF по адресу http://www.ietf.og/html.charters/mpls-charter.html