MPLS

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

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

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

История

В 1996 г. группа инженеров из Ipsilon Networks разработала «Протокол управления потоком» (англ. Flow Management Protocol).[1]

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

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

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

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

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

Основным преимуществом MPLS является независимость от особенностей технологий канального уровня, таких как ATM, Frame Relay, SONET/SDH или Ethernet, и отсутствия необходимости поддержания нескольких сетей второго уровня, необходимых для передачи различного рода трафика. По виду коммутации 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 попытались сохранить механизмы оптимизации и управления трафиком (англ. traffic engineering) и управления отдельно от передаваемого потока данных, которые сделали те
хнологии Frame relay и ATM привлекательными для внедрения в больших сетях передачи данных.

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

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

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

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Label| Label | TC |S| TTL | Stack+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Entry

  • значение метки (англ. 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 576.Следующие номера меток зарезервированы для различных целей:

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

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

Существует два стандартных протокола управления туннелями в MPLS-сети: LDP (англ. Label Distribution Protocol — протокол распределения меток) и RSVP-TE, расширение RSVP (англ. Resource Reservation Protocol — протокола резервирования сетевых ресурсов) для оптимизации и управления трафиком.[9][10] Также существуют расшире
ния протокола BGP, способные управлять виртуальными каналами в MPLS сети.[11][12][13]

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

MPLS и IP

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

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

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

На практике MPLS используется для передачи IP- и Ethernet-трафика. Основными областями применения MPLS являются оптимизация и управление трафиком (англ. traffic engineering) и организация виртуальных частных сетей (VPN).

Конкурирующие с MPLS технологии

На уровне транспортной сети с 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 // 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
  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

Литература