Архитектура MPLS

Данная статья описывает архитектуру мультипротокольной коммутации по меткам (MPLS - Multi-Protocol Label Switching). Архитектура MPLS регламентируется в документе IETF "Multiprotocol Label Switching Architecture" (RFC3031).



Основные понятия

В традиционных сетях IP, в общем случае, маршрутизация пакетов осуществляется на основе IP адреса назначения (destination IP address). Каждый маршрутизатор в сети обладает информацией о том, через какой интерфейс и какому соседу необходимо перенаправить пришедший IP-пакет.
Мультипротокольная коммутация по меткам предлагает несколько другой подход. Каждому IP-пакету назначается некая метка. Маршрутизаторы принимают решение о передаче пакета следующему устройству на основании значения метки. Метка добавляется в составе MPLS заголовка, который добавляется между заголовком кадра (второй уровень OSI) и заголовком пакета (третий уровень модели OSI). Пример на рис. N1.


Рис. N1. Место MPLS заголовка в кадре.

Формат MPLS заголовка представлен на рис. N2.


Рис. N2. Формат MPLS-метки.

Описание полей MPLS-заголовка:


Рис N3. Пример назначения стека меток.

У последней метки в стеке значение поля "S" равно 1 (на рисунке это метка MPLS N1). У остальных меток (метка MPLS N2 и N3) значение поля "S" равно 0. Стек меток используется для реализации дополнительных возможностей сети на базе MPLS, например MPLS/VPN или MPLS/TrafficEnenirring.

В рамках архитектуры MPLS различают следующие типы устройств:

Процесс коммутации по меткам (label switching)

Рассмотрим схему, приведённую на рис N4. MPLS-домен образован двумя LSR-ами и двумя E-LSR-ами. К домену подключены два маршрутизатора использующие традиционную IP-маршрутизацию.


Рис. N4. Пример прохождения пакета через MPLS-домен.

Рассмотрим путь следования IP-пакета от маршрутизатора А к маршрутизатору В через MPLS домен. Адресом источника IP-пакета является 10.1.1.1 (на рисунке обозначено "s"). Адресом назначения IP-пакета является 10.2.1.1 (на рисунке обозначено "d"). Заголовки кадров не приведены. Таблицы IP-маршрутизации и MPLS-коммутации приведены в табл. N1-5. В таблицах приведены только используемые в примере записи.

Табл. N1. Edge LSR1 (IP маршрутизация)


Табл. N2. LSR1 (коммутация по меткам)

Frame1


Frame2

Табл. N3. LSR2 (коммутация по меткам)


Табл. N4. Edge LSR2 (коммутация по меткам)

Frame3


Frame4



Табл. N5. Edge LSR2 (IP маршрутизация)



Frame5


Этап N1 - маршрутизатор А пересылает обыкновенный IP-пакет в сторону E-LSR.
Этап N2 - E-LSR получает IP-пакет и на основе таблиц IP-маршрутизации (табл. N1) определяет, что данному пакету должна быть назначена метка 1000 (на рисунке обозначено "l") и пакет должен быть переслан в сторону LSR1. Данный процесс называется "назначение метки" (label imposing).

Примечание: Образование таблиц MPLS-коммутации рассмотрено далее.

Этап N3 - LSR1 получает IP-пакет с меткой 1000 и на основе таблицы MPLS-коммутации (табл. N2) определяет, что метка пакета должна быть сменена на 330 и пакет должен быть переслан в сторону LSR2. Данный процесс называется переписывание метки (label swapping).
Этап N4 - LSR2 получает IP-пакет с меткой 330 и на основе таблицы MPLS-коммутации (табл. N3) определяет, что пакет должен быть переслан в сторону LSR2 без меток (значение pop). Возможен так же вариант, когда LSR2 пересылает пакет в сторону E-LSR с меткой (в нашем случае 540). Если пакет следует по этапу N4 то такое поведение называется Penultimate Hop Popping. Поведение LSR в соответствии с этапом N4а является классическим для MPLS.
Этап N5 - E-LSR получает IP-пакте (как с меткой, так и без) и на основании таблиц IP-маршрутизации (табл. N5) или MPLS-коммутации (табл. N6) определяет, что данный пакет должен быть переслан, как обыкновенный IP-пакет (без метки) в сторону маршрутизатора В. Если пакет был получен без метки (Penultimate Hop Popping), то E-LSR должен выполнять только анализ таблицы IP-маршрутизации. Если пакет получен с меткой, то маршрутизатор должен сначала проанализировать таблицу MPLS-коммутации, на основании её определить, что для данного пакета необходимо выполнить анализ таблицы IP-маршрутизации. И только после анализа таблицы IP-маршрутизации определяется тот сосед, которому должен быть переслан пакет. Именно для исключения промежуточного анализа таблицы MPLS-коммутации на E-LSR-е применяется Penultimate Hop Popping.

Label Switch Path

В примере, приведённом выше, IP-пакет проследовал через "маршрут коммутации по меткам" - Label Switch Path (LSP). LSP - это последовательность устройств в MPLS домене, через которые проследовал пакет с меткой при фиксированном размере стека меток. Принципиально важно в определении LSP, то что, на всем пути размер стека не меняется. То есть, если где-то на пути следования пакета к одной метке добавляется другая (в стеке получается две метки), то LSR-ы коммутирующие по второй (внешней метке) из LSP исключаются. Подробно такие случаи будут рассмотрены далее. Для нашего примера LSP это последовательность: E-LSR, LSR1, LSR2, E-LSR. При использовании PHP, строго говоря, второй E-LSR не должен быть включён в LSP, так как при пересылке ему стек меток был пуст. Но для PHP допускается исключение.

Примечание: Иногда LSP описывают последовательностью меток и выходных интерфейсов, в этом случае LSP из примера: 1000(int1), 330(int2), 540(int2) или LSP: 1000(int1), 330(int2), null(int2)  - в случае использования PHP.

На LSR для каждой "входящей" метки на основе таблицы MPLS-коммутации однозначно определяется "выходящая" метка и интерфейс, через который пакет должен быть переслан. Поэтому, первая метка, устанавливаемая E-LSR-ом, однозначно определяет весь маршрут следования пакета через MPLS домен. Этот маршрут и называется LSP.

Forwarding Equivalence Classes

E-LSR каждому LSP в соответствие устанавливает некоторое множество подсетей. Пакеты, предназначенные этим подсетям, передаются E-LSR-ом по одному LSP. В примере, описанном выше, подсети 10.2.1.0/24 соответствует LSP: E-LSR, LSR1, LSR2, E-LSR. Таким образом, уже на E-LSR становиться однозначно понятно по какому маршруту будет коммутироваться пакет. Множество подсетей, поставленное в соответствии конкретному LSP, называется Forwarding Equivalence Classes (FEC).

Архитектура E-LSR/LSR

LSR выполняет два процесса: маршрутизации и коммутации по меткам. Процесс маршрутизации функционирует на базе внутреннего протокола маршрутизации (например, OSPF). Процесс маршрутизации получает маршрутную информацию от соседей и формирует таблицу маршрутизации. Таблица маршрутизации используется для маршрутизации обыкновенных IP-пакетов.
Процесс коммутации функционирует на базе протокола обмена метками между соседями (Label Distribution Protocol). Протокол обмена метками согласует конкретные значения меток для создания целостных маршрутов коммутации по меткам (LSP). Подробно функционирование данного протокола рассмотрено в отдельной статье. Процесс коммутации по меткам при составлении таблиц коммутации использует так же таблицу IP-маршрутизации. Взаимосвязь процессов коммутации по меткам и IP-маршрутизации приведена на рис. N5. Описание основных функций выполняемых E-LSR/LSR-ами приведено в табл. N5.


Рис. 5. Взаимосвязь процессов MPLS-коммутации и IP-маршрутизации на LSR/E-LSR.


Табл. N5. Основные функции выполняемые E-LSR/LSR-ами.

Функция

Англоязычное название

Описание

Традиционная маршрутизация IP-пакетов

IP routing

Входящие IP-пакеты маршрутизируются на основе таблицы маршрутизации.

Назначение метки

label imposing

Если устройство функционирует в качестве E-LSR, то для входящего IP-пакета на базе таблицы IP-маршрутизации определяется метка, которая должна быть назначена, и выходной интерфейс, через который должен быть переслан пакет (1)

Коммутация по метке

label swapping

Входящие IP-пакеты с метками обрабатываются процессом коммутации по меткам, который на основании таблицы коммутации по меткам определяет, какое из следующих действий будет выполнено:

  • Пересылка пакета со сменой метки через определённый интерфейс (label swapping). При этой операции возможно назначение дополнительных меток в "стек".

  • Снятие метки и одно из следующих действий.

    • если метка была последняя в стеке, то пакет передаётся процессу маршрутизации IP-пакетов (2) (традиционная коммутация) или пересылается через определённый интерфейс (коммутации с PHP) (3).

    • если метка была не последняя в стеке, то пакет пересылается через определённый интерфейс.

Примечание: выходной интерфейс определяется на основе таблицы коммутации по меткам.

Снятие метки

label poping

Снятие метки (PHP)

label poping with PHP


Примеры таблиц маршрутизации и коммутации.

Примеры таблиц IP-маршрутизации и MPLS-коммутации приведены в табл. N6-7.
Табл. N6. Пример таблицы IP-маршрутизации на E-LSR.

Адрес подсети

Адрес next-hop

Исходящий интерфейс

Метка

Комментарий

10.1.2.0/24

10.1.3.1

Serial1

нет

Запись для традиционной IP-маршрутизации

10.1.4.0/24

10.1.5.1

Serial2

100

Записи, в соответствии с которыми, пакету предназначенному для сети 10.1.4.0/24 или 10.3.0.0/16 будет назначена метка 100. Пакет с меткой будет переслан через интерфейс Serial1 (label imposing). Заметим, что подсети 10.1.4.0/24 и 10.3.0.0/16 образуют единый FEC.

10.3.0.0/16

10.1.5.1

Serial2

100

10.1.6.0/24

10.1.7.1

Serial3

300/200

Запись, в соответствии с которой, пакету предназначенному для сети 10.1.6.0/24 будут назначены две метки 300, 200 в стеке, и пакет с метками будет переслан через интерфейс Serial1 (label imposing)


Табл. N7. Пример таблицы MPLS-коммутации на E-LSR/LSR.

Входящий интерфейс

Входящая метка

Исходящий интерфейс

Исходящая метка

Комментарий

Serial1

100

Serial3

200

Обыкновенная коммутация (label swapping)

Ethernet2

100

Serial2

305/200

Коммутация с добавлением меток в стек (label swapping)

Serial2

300

Serial3

pop

Снятие метки и пересылка пакета через интерфейс Serial3. Данный вариант возможен в двух случаях:

  • снимается не последняя метка;

  • снимается последняя метка и LSR использует PHP.

Serial3

245


pop

Снятие метки и передача IP-пакета процессу маршрутизации


Необходимо отметить, что уникальность меток обеспечиваться только на уровне интерфейса. То есть для двух разных входных интерфейсов могут встречаться одинаковые значения меток (в таблице коммутации первая и вторая запись). Таким образом, пакет, пришедший с меткой 100 с интерфейса Serial1 и пакет, пришедший с меткой 100 с интерфейса Ethernet2, проследуют по разным LSP. Уникальной комбинацией является входящий интерфейс и метка. И для этой уникальной комбинации однозначно определяется выходной интерфейс и операция, которая должна быть произведена над меткой. Такой подход позволяет образовывать целостные LSP между E-LSR-ам.

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

Отличия MPLS от Frame Relay и ATM

Как можно понять из описания архитектуры MPLS, все это отдаленно напоминает Frame Relay или ATM. Действительно, MPLS в некотором смысле, базируется на этих идеях. Архитектура MPLS допускает использование в качестве LSR коммутаторов Frame Relay или ATM, при условии поддержки последними протокола назначения меток (LDP). Но коммутаторы ATM и Frame Relay имеют ключевое отличие от классических LSR. Суть его в следующем. LSR-ы могут две разные входные метки отображать в одну выходную при процедуре замены метки (label swapping). Даллее приведены примеры таблицы коммутации классического LSR (табл. N8) и Frame Relay коммутатора (табл. N9).
Табл. N8. Таблица MPLS-коммутации классического LSR

Входной интерфейс

Входящая метка

Выходной интерфейс

Выходная метка

Serial1

1000

Serial3

4000

Serial2

2000

Serial3

4000


Табл. N9. Таблица MPLS-коммутации для Frame Ralay коммутатора

Входной интерфейс

Входная метка (DLCI)

Выходной интерфейс

Выходная метка (DLCI)

Serial1

1000

Serial3

3000

Serial2

2000

Serial3

4000


Как видно из примера классический LSR объединяет два LSP в один, а Frame Relay коммутатор оставляет оба LSP следовать параллельно. Данный подход Frame Relay/ATM коммутаторов несколько сужает возможность их применения врамках архитектуры MPLS, хотя и не запрещает это делать. Классические LSR (производящие коммутацию по меткам) называют merge capatible LSR, а LSR на базе Frame Relay или ATM коммутации называют non-merge capatible LSR.
Еще в литературе встречаются понятия: frame-based LSR - это про обыкновенные LSR и cell-based LSR - это про non-merge capatible LSR (то есть ATM/FrameRelay).
Дальнейшее изложение будет сфокусировано на merge capatible LSR, так как всяко за ними будущее. Все реверансы в сторону non-merge capatible LSR, на мой взгляд, делаются для достижения совместимости с существующими сетями ATM и Frame Relay.

Применение MPLS

Автор: Юшков Тарас (taras at mpls-exp.ru)

Данная статья рассматривает преимущества применения MPLS в IP сети.


Высокоскоростная коммутация внутри MPLS домена

Рассмотрим схему сети представленную на рисунке.


Рис. N1. Схема организации маршрутизации.

MPLS домен образован двумя LSR-ами и двумя E-LSR-ами. Внутри домена для маршрутизации используется протокол OSPF. OSPF запущен только на внутренних соединения MPLS-домена и технологические интерфейсах маршрутизаторов (loopback). E-LSR-ы образуют единую автономную систему BGP. Между E-LSR-ами установлена IBGP сессия. E-LSR-ы подключены к обыкновенным маршрутизаторам А и В. Маршрутизаторы А и В образуют разные автономные системы BGP. Между E-LSR1 и маршрутизатором А установлена EBGP сессия. И между E-LSR2 и маршрутизатором В установлена так же установлена EBGP cecия. Маршрутизатор А передают E-LSR1 по EBGP таблицу маршрутизации (допустим это будет таблица Интернет). Дальше маршрутная информация от E-LSR1 по IBGP передаётся E-LSR2 и далее по EBGP передаётся маршрутизатору В. Таким образом таблица маршрутизации Интернет будет присутствовать на маршрутизаторах А, В, E-LSR1 и E-LSR2.

Примечание: BGP на маршрутизаторах E-LSR1 и E-LSR2 настроен таким образом, что атрибут next-hop у сетей передаваемых по IBGP устанавливается адресом передающего E-LSR-а, не внешнего соседа по EBGP (маршрутизатор А или В). Так же на маршрутизаторах E-LSR отключена синхронизация таблицы BGP и OSPF.

При такой конфигурации маршрутизатору В не будет доступна сеть Интернет, так как LSR1 и LSR2 не имеют таблицы маршрутизации Интернет и не смогут маршрутизировать пакеты предназначенные для сети Интернет.  Рассмотрим таблицу маршрутизации E-LSR2 (пока без MPLS).

N

Протокол

Подсеть

Next-hop

Выходной интерфейс

Комментарий

1

BGP

60.50.0.0/16

E-LSR1

нет

Маршруты на сети Интернет. В примере представлены две. На самом далее объем маршрутной информации более 100 тысяч записей


...

...

...

...

2

BGP

160.40.0.0/16

E-LSR1

нет

3

OSPF

E-LSR1

LSR2

int3

Маршрут на E-LSR1. Предполагается, что сеть построена так, что маршрут от E-LSR2 до E-LSR1 через LSR2 более приоритетен.

4

BGP

192.10.10.0/24

routerB

int10

Данный маршрут получен по EBGP от маршрутизатора В.


При попытке E-LSR маршрутизировать пакет пришедший от маршрутизатора В и предназначенный для сети 60.50.0.0/16 произойдёт следующее:

  1. В таблице маршрутизации будет найдена запись N1, которая соответствует подсети 60.50.0.0/16.

  2. Так как запись N1 не содержит выходящего интерфейса, но содержит адрес next-hop, то E-LSR будет искать адрес E-LSR1 в таблице маршрутизации (рекурсивный поиск).

  3. В результате будет найдена запись N3 и пакет будет переслан через int3 в сторону LSR2.

  4. Так как LSR2 не обладает маршрутной информацией о сети 60.50.0.0/16 (на LSR2 нет BGP), то данный пакет будет уничтожен.

Рассмотрим, что произойдёт, если между LSR-ами и E-LSR-ами будет включён MPLS. В этом случае таблица IP-маршрутизации на E-LSR2 будет иметь следующий вид.

N

Протокол

Подсеть

Next-hop

Выходной интерфейс

Выходная метка

Комментарий

1

BGP

60.50.0.0/16

E-LSR1

int3

100

Маршруты на сети Интернет. В примере представлены две. На самом деле объем маршрутной информации более 100 тысяч записей



...




2

BGP

160.40.0.0/16

E-LSR1

int3

100

3

OSPF

E-LSR1

LSR2

int3

100

Маршрут на E-LSR1. Предполагается, что сеть построена так, что маршрут от E-LSR2 до E-LSR1 через LSR2 более приоритетен.

4

BGP

192.10.10.0/24

routerB

int10


Данный маршрут получен по EBGP от маршрутизатора В.


При включении MPLS, внутри MPLS домена будет осуществляться построение LSP с использованием внутреннего протокола маршрутизации - OSPF и протокола распространения меток - LDP. Для E-LSR2 маршрутизатор E-LSR1 будет доступен через LSP начинающийся меткой 100 и интерфейсом int3 (запись N3). В записях N1 и 2 будет назначена метка 100 и выходной интерфейс int3, так как данные подсети так же доступны через E-LSR1. То есть, если пакет будет переслан от E-LSR2 с меткой 100 через интерфейс int3, то пакет будет доставлен до E-LSR1 без использования IP-маршрутизации. LSR2 будет использовать процесс и таблицу коммутации по меткам. Таким образом, LSR2 передаст пакет для сети 60.50.0.0/16, не осуществляя IP-маршрутизацию. Заметим, что все подсети Интернет, доступные через E-LSR1 будут образовывать на E-LSR2 единый FEC, так как при прохождении через MPLS домен от E-LSR2 до E-LSR1 они будут использовать один LSP.
Использование MPLS позволяет освободить LSR-ы от необходимости обладать всей маршрутной информацией. Им достаточно только владеть маршрутной информацией о сетях внутри домена, что бы обеспечить корректное построение LSP. В нашем случае объем маршрутных таблиц на E-LSR будет составлять более 100 тысяч записей, объем же таблиц MPLS-коммутации на LSR будет на несколько порядков меньше, и зависит только от количества устройств и соединений в MPLS домене.

Разделение функций между устройствами

Вернёмся к схеме, описанной в предыдущем разделе. Для устройств E-LSR, LSR можно выделить следующие основные функции:

Функция

Устройство

Комментарий

Построение LSP

LSR/E-LSR

Устройства LSR/E-LSR должны использовать внутренний протокол маршрутизации и протокол LDP для построения LSP.

Обработка отказов внутри MPLS домена

LSR/E-LSR

При изменении внутренней топологии сети происходит изменение LSP, таблиц внутренней IP-маршрутизации и MPLS-коммутации. Устройства, присоединённые к MPLS домену не "видят" изменений внутри домена, так как таблицы маршрутизации внешних сетей не изменяются (за редким исключением)

Обмен маршрутной информацией c устройствами вне MPLS домена

E-LSR

При изменении топологии сети за пределами MPLS домена, обновления передаются только через E-LSR-ы. Никаких изменений LSP, таблиц внутренней IP-маршрутизации и MPLS-коммутации не происходит. LSR-ы не "видят" изменений за пределами домена.


Резюмируя информацию, представленную в таблице можно сказать следующее:

Иначе говоря, при использовании IP-маршрутизации все устройства существуют в едином и неделимом хаосе. При использовании MPLS хаос делиться на два: глобальный (за пределами MPLS домена) и локальный (внутри MPLS домена). Хаосы существуют практически независимо. LSR-ы живут в локальном хаосе, E-LSR-ы существуют в обоих хаосах. Заметим, сумма хаоса локального и глобального даст нам хаос исходный. То есть для E-LSR-ов жизнь особенно не упрощается. С другой стороны для устройств вне MPLS-домена общий хаос уменьшается, так как из него уходит хаос локальный для MPLS-домена.

Создание базы для внедрения нового функционала на сети

На базе MPLS возможна организация следующих сервисов:

Заметим, что весь этот функционал может быть востребован не только операторами связи, но и крупные, распределённые сети предприятий так же могут с успехом использовать MPLS/VPN и MPLS/TrafficEnginering.

Hosted by uCoz