MPLS

MPLS (англ. multiprotocol label switching — многопротокольная коммутация по меткам) — механизм в высокопроизводительной телекоммуникационной сети, осуществляющий передачу данных от одного узла сети к другому с помощью меток.

MPLS
Название multi protocol label switching
Уровень (по модели OSI) канальный 2.5
Создан в 2001
Назначение протокола маршрутизация по меткам
Спецификация RFC 3031
Основные реализации

CISCO IOS, JUNOS, Mikrotik RouterOS, Linux (VPLS не поддерживается, начиная с версии 4.5.+), OpenBSD,

NetBSD (VPLS не поддерживается)
Логотип Викисклада Медиафайлы на Викискладе

MPLS является масштабируемым и независимым от каких-либо протоколов механизмом передачи данных. В сети, основанной на MPLS, пакетам данных присваиваются метки. Решение о дальнейшей передаче пакета данных другому узлу сети осуществляется только на основании значения присвоенной метки без необходимости изучения самого пакета данных. За счёт этого возможно создание сквозного виртуального канала, независимого от среды передачи и использующего любой протокол передачи данных.

История

править

В 1996 году группа инженеров из фирмы «Ipsilon Networks» разработала «Протокол управления потоком» (англ. flow management protocol; RFC 1953)[1].

Основанная на этом протоколе технология «коммутации IP-пакетов» (англ. IP switching), работающая только поверх упрощенной сети ATM, не получила коммерческого успеха. Фирма «Cisco Systems» разработала похожую технологию «коммутации на основе тегов» (англ. tag switching), не ограниченную передачей поверх сети ATM[2].

Данная технология, впоследствии переименованная в «коммутацию на основе меток» (англ. label switching), была закрытой разработкой фирмы «Cisco». Позднее она была передана в специальную комиссию интернет-разработок (IETF) для открытой стандартизации.

Достоинства

править

MPLS позволяет достаточно легко создавать виртуальные каналы между узлами сети.

Технология позволяет инкапсулировать различные протоколы передачи данных.

Основным преимуществом MPLS являются

Технология MPLS была разработана для организации единого протокола передачи данных как для приложений с коммутацией каналов, так и приложений с коммутацией пакетов (подразумеваются приложения с датаграммной передачей пакетов). MPLS может быть использован для передачи различного вида трафика, включая IP-пакеты, ячейки ATM, фреймы SONET/SDH[3] и кадры Ethernet.

Для решения идентичных задач ранее были разработаны такие технологии, как Frame Relay и ATM. Многие инженеры считали, что технология ATM будет заменена другими протоколами с меньшими накладными расходами на передачу данных и при этом обеспечивающими передачу пакетов данных переменной длины с установлением соединения между узлами сети. Технология MPLS разрабатывалась с учётом сильных и слабых сторон ATM. В настоящее время оборудование с поддержкой MPLS заменяет на рынке оборудование с поддержкой вышеупомянутых технологий. Вероятно, что в будущем MPLS полностью вытеснит данные технологии[4].

В частности, MPLS обходится без коммутации ячеек и набора сигнальных протоколов, характерных для ATM. При разработке MPLS пришло понимание того, что на уровне ядра современной сети нет необходимости в ячейках ATM маленького фиксированного размера, поскольку современные оптические сети обладают такой большой скоростью передачи данных[5], что даже пакет данных максимальной длины в 1500 байт испытывает незначительную задержку в очередях буферов коммутационного оборудования (необходимость сокращения таких задержек, например, для обеспечения заданного качества голосового трафика, повлияла на выбор ячеек малого размера, характерных для ATM).

В то же время в MPLS попытались сохранить механизмы оптимизации и управления трафиком (англ. teletraffic engineering) и управления отдельно от передаваемого потока данных, которые сделали технологии Frame relay и ATM привлекательными для внедрения в больших сетях передачи данных.

Несмотря на то, что переход на MPLS даёт преимущества управления потоками данных (улучшение надёжности и повышение производительности сети), существует проблема потери контроля потоков данных, проходящих через сеть MPLS, со стороны обычных IP-приложений[6].

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

править

Технология MPLS основана на обработке заголовка MPLS, добавляемого к каждому пакету данных. Заголовок MPLS может состоять из одной или нескольких «меток». Несколько записей (меток) в заголовке MPLS называются стеком меток.

Формат записи в стеке меток
32 бита
20 бит 3 бита 1 бит 8 бит
Label TC S TTL

Каждая запись в стеке меток состоит из следующих четырёх полей:

  • значение метки (англ. label); занимает 20 бит;
  • поле «класс трафика» (англ. traffic class); используется для реализации механизмов качества обслуживания (QoS) и явного уведомления о перегрузке (англ. explicit congestion notification, ECN) (до RFC 5462 это поле называлось Exp (англ. experimental use)); занимает 3 бита;
  • флаг «дно стека» (англ. bottom of stack); если флаг установлен в 1, то это означает, что текущая метка последняя в стеке; занимает 1 бит;
  • поле TTL (англ. time to live); используется для предотвращения петель MPLS коммутации; занимает 8 бит.

В MPLS-маршрутизаторе пакет с MPLS-меткой коммутируется на следующий порт после поиска метки в таблице коммутации вместо поиска по таблице маршрутизации. При разработке MPLS поиск меток и коммутация по меткам выполнялись быстрее, чем поиск по таблице маршрутизации или RIB (англ. routing information base — информационная база маршрутизации), так как коммутация может быть выполнена непосредственно на коммутационной фабрике вместо центрального процессора.

Маршрутизаторы, расположенные на входе или выходе MPLS-сети, называются LER (англ. label edge router — граничный маршрутизатор меток). LER на входе в MPLS-сеть добавляют метку MPLS к пакету данных, а LER на выходе из MPLS-сети удаляет метку MPLS из пакета данных. Маршрутизаторы, выполняющие маршрутизацию пакетов данных, основываясь только на значении метки, называются LSR (англ. label switching router — коммутирующий по меткам маршрутизатор). В некоторых случаях пакет данных, поступивший на порт LER, уже может содержать метку, тогда новый LER добавляет вторую метку в пакет данных.

Метки между LER и LSR распределяются с помощью LDP (англ. Label Distribution Protocol — протокол распределения меток)[7]. Для того, чтобы получить полную картину MPLS-сети, LSR постоянно обмениваются метками и информацией о каждом соседнем узле, используя стандартную процедуру. Виртуальные каналы (туннели), называемые LSP (англ. label switch path — пути коммутации меток), устанавливаются провайдерами для решения различных задач, например, для организации VPN или для передачи трафика через сеть MPLS по указанному туннелю. Во многом LSP ничем не отличается от PVC в сетях ATM или Frame relay, за исключением того, что LSP не зависят от особенностей технологий канального уровня.

При описании виртуальных частных сетей, основанных на технологии MPLS, LER, расположенные на входе или выходе сети, обычно называются PE-маршрутизаторами (англ. provider edge — маршрутизаторы на границе сети провайдера), а узлы, работающие как транзитные маршрутизаторы, называются P-маршрутизаторами (англ. provider — маршрутизаторы провайдера)[8].

Пространство значений меток

править

Поле значения метки в MPLS заголовке занимает 20 бит, таким образом максимально возможное значение метки равно 1 048 575.

Следующие номера меток зарезервированы для различных целей:

  • метка с номером 0 может использоваться только как последняя метка в стеке. Наличие метки 0 означает, что заголовок MPLS должен быть удалён и последующая маршрутизация пакета должна основываться на значении заголовка IPv4;
  • метка с номером 1 имеет особое название — метка оповещения маршрутизатора (англ. router alert label). Использование метки 1 аналогично использованию опции «Router alert option» при передаче в IP-пакетах. Метка 1 не может использоваться как последняя метка в стеке;
  • метка с номером 2 может использоваться только как последняя метка в стеке. Наличие метки 2 означает, что заголовок MPLS должен быть удалён и последующая маршрутизация пакета должна основываться на значении заголовка IPv6;
  • метка с номером 3 имеет особое название — неявная нулевая метка (англ. implicit NULL label). Метку 3 может присваивать и рассылать LSR, но метка, в действительности, никогда не может использоваться в стеке меток. Если LSR встретит данную метку в стеке меток, то вместо замены одной метки на другую LSR удалит весь стек меток. Хотя в действительности метка 3 не может появиться в стеке меток, она должна быть указана в LDP;
  • метки с номерами от 4 до 15 зарезервированы.

Установка и удаление туннелей

править

Для сети MPLS существует два стандартных протокола управления туннелями:

Также существуют расширения протокола BGP, способные управлять виртуальными каналами в сети MPLS[11][12][13].

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

Сравнение MPLS и IP

править

MPLS как протокол некорректно сравнивать с протоколом IP, поскольку MPLS работает совместно с IP и протоколами маршрутизации (IGP).

Основные преимущества технологии IP/MPLS:

  • более высокая скорость продвижения IP-пакетов по сети за счёт сокращения времени обработки маршрутной информации;
  • возможность организации информационных потоков в каналах связи. С помощью меток каждому информационному потоку (например, несущему телефонный трафик) может назначаться требуемый класс обслуживания (CoS (англ.)). Потоки с более высоким CoS получают приоритет перед всеми другими потоками. Таким образом, с помощью MPLS обеспечивается качество обслуживания (QoS), присущее сетям SDH и ATM;
  • полное обособление друг от друга виртуальных корпоративных сетей за счёт создания для каждой из них своеобразных туннелей;
  • прозрачный пропуск ��ерез ядро IP/MPLS трафика протоколов Ethernet, Frame relay или ATM, что позволяет подключать пользователей, использующих все эти разнообразные протоколы.

Построение сетей

править

Технология MPLS используется для построения IP-сетей.

На практике MPLS используется для передачи трафика IP и Ethernet.

Основными областями применения MPLS являются:

  • оптимизация и управление трафиком (англ. traffic engineering);
  • организация виртуальных частных сетей (VPN).

Альтернативы

править

На уровне транспортной сети с MPLS конкурируют такие технологии, как PBB и MPLS-TP. С помощью этих технологий также возможно предоставлять услуги L2 VPN и L3 VPN. Также в качестве конкурентной MPLS технологии предлагается использование протокола L2TPv3, однако он не популярен для решения задач, характерных для MPLS.

См. также

править

Примечания

править
  1. RFC 1953 Ipsilon Flow Management Protocol Specification for IPv4
  2. Yakov Rekhter et al., Tag switching architecture overview Архивная копия от 31 декабря 2014 на Wayback Machine // Proc. IEEE 82 (December, 1997), 1973—1983.
  3. RFC 4842 SONET/SDH Circuit Emulation over Packet (CEP)
  4. Applied Data Communications (A Business-Oriented Approach) James E. Goldman & Phillip T. Rawles, 2004 (ISBN 0-471-34640-3)
  5. По состоянию на 2011 год пропускная способность магистралей большинства провайдеров составляет 40 Гбит/с или 100 Гбит/c.
  6. Routers Hold key to MPLS Measurement. Дата обращения: 10 августа 2011. Архивировано из оригинала 9 августа 2011 года.
  7. RFC 3037 LDP Applicability
  8. RFC 4364 BGP/MPLS IP Virtual Private Networks (VPNs)
  9. RFC 3036 LDP Specification
  10. RFC 3209 RSVP-TE: Extensions to RSVP for LSP Tunnels
  11. RFC 2547 BGP/MPLS IP Virtual Private Networks (VPNs)
  12. RFC 3107 Carrying Label Information in BGP-4
  13. RFC 4781 Graceful Restart Mechanism for BGP with MPLS

Литература

править
  • Гольдштейн А. Б., Гольдштейн Б. С. Технология и протоколы MPLS. — СПб.: БХВ – Санкт-Петербург, 2005. — 304 с. — ISBN 5-8206-0126-2.
  • Вивек Олвейн. Структура и реализация современной технологии MPLS. Руководство Cisco = Advanced MPLS Design and Implementation. — М.: Вильямс, 2004. — 480 с. — ISBN 1-58705-020-X.