Стек меток

Наличие стека меток является одним из оригинальных свойств MPLS. Концепция стека меток является развитием концепции двухуровневой адресации виртуальных путей с помощью меток VPI/VCI, принятой в ATM.

Стек меток позволяет создавать систему агрегированных путей LSP с любым количеством уровней иерархии. Для поддержки этой функции MPLS-кадр, который перемещается вдоль иерархически организованного пути, должен включать столько заголовков MPLS, сколько уровней иерархии имеет путь. Напомним, что заголовок MPLS каждого уровня имеет собственный набор полей: метка, CoS, TTL и S. Последовательность заголовков организована как стек, так что всегда имеется метка, находящаяся на вершине стека, и метка, находящаяся на дне стека, при этом последняя сопровождается признаком S - 1. Над метками выполняются следующие операции, задаваемые в поле действий таблицы продвижения:

  • Push — поместить метку в стек. В случае пустого стека эта операция означает простое присвоение метки пакету. Если же в стеке уже имеются метки, в результате этой операции новая метка сдвигает «старые» в глубь стека, сама оказываясь на вершине.
  • Swap — заменить текущую метку новой.
  • Pop — выталкивание (удаление) верхней метки, в результате все остальные метки стека поднимаются на один уровень.

Продвижение MPLS-кадра всегда происходит на основе метки, находящейся в данный момент на вершине стека. Рассмотрим сначала продвижение MPLS-кадра по одноуровневому пути в MPLS-сети, показанной на рис. 1.

Сеть состоит из трех MPLS-доменов. На рисунке показаны путь LSP1 в домене 1 и путь LSP2 в домене 2. LSP1 соединяет устройства LER1 и LER2, проходя через устройства LSR1, LSR2 и LSR3. Пусть начальной меткой пути LSP1 является метка 256, которая была присвоена пакету пограничным устройством LER1. На основании этой метки пакет поступает на устройство LSR1, которое по своей таблице продвижения определяет новое значение метки пакета (272) и переправляет его на вход LSR2. Устройство LSR2, действуя аналогично, присваивает пакету новое значение метки (132) и передает его на вход LSR3. Устройство LSR3, будучи предпоследним устройством в пути LSP1, выполняет операцию Pop и удаляет метку из стека. Устройство LER2 продвигает пакет уже на основании IP-адреса.

На рисунке также показан путь LSP2 в домене 2. Он соединяет устройства LER3 и LER4, проходя через устройства LSR4, LSR5 и LSR6, и определяется последовательностью меток 188,112,101.

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

  • Первое решение состоит в том, что между LER1 и LER4 устанавливается один одноуровневый путь коммутации по меткам, соединяющий пути LSP1 и LSP2 (которые в этом случае становятся одним путем). Это простое, на первый взгляд, решение, называемое сшиванием путей LSP, плохо работает в том случае, когда MPLS-домены принадлежат разным поставщикам услуг, не позволяя им действовать независимо друг от друга.
  • Вторым более перспективным решением является применение многоуровневого подхода к соединению двух MPLS-доменов, принадлежащих, возможно, разным поставщикам услуг.

Рис. 20.5. Пути LSP1 и LSP2, проложенные в доменах 1 и 2 MPLS-сети

Для реализации второго подхода в нашем примере нужно создать путь коммутации по меткам второго уровня (LSP3), соединяющий устройства LER1 и LER4. Этот путь определяет последовательность хопов между Ъоменамщ а не между внутренними устройствами LSR каждого домена. Так, LSP3 состоит из хопов LER1 — LER2 — LER3 — LSR4. В этом отношении многоуровневый подход MPLS концептуально очень близок подходу протокола BGP, определяющего путь между автономными системами.

Рассмотри более детально, как работает технология MPLS в случае путей коммутации по меткам двух уровней (рис 2).

В устройстве LER1 начинаются два пути — LSP1 и LSP3 (последний показан на рисунке серым цветом), что обеспечивается соответствующей записью в таблице продвижения устройства LER1 (табл. 1).

Таблица 1. Запись в таблице продвижения LER1

Входной интерфейс Метка Следующий хоп Действия
... ... ... ...
S0 ... S1 315
Push
256
... ... ... ...

Рис. 2. Использование стека меток иерархией путей

IP-пакеты, поступающие на интерфейс SO устройства LER1, продвигаются на его выходной интерфейс S1, где для них создается заголовок MPLS, включающий метку 315 верхнего уровня (LSP3), которая на этот момент является верхушкой стека меток. Затем эта метка проталкивается на дно стека (операция Push), а верхней становится метка 256, относящаяся к LSP1.

Далее MPLS-кадр с меткой 256 поступает на выходной интерфейс S1 пограничного устройства LER1 и передается на вход LSR1. Устройство LSR1 обрабатывает кадр в соответствии со своей таблицей продвижения (табл. 2). Метка 256, находящаяся на вершине стека, заменяется меткой 272. (Отметьте, что метка 315, находящаяся ниже в стеке, устройством LSR1 игнорируется.)

Таблица 2. Запись в таблице продвижения LSR1

Входной интерфейс Метка Следующий хоп Действия
... ... ... ...
S0 256 S1 272
... ... ... ...

Аналогичные действия выполняет устройство LSR2, которое заменяет метку меткой 132 и отправляет кадр следующему по пути устройству LSRЗ (табл. 3).

Таблица 3. Запись в таблице продвижения LSR3

Входной интерфейс Метка Следующий хоп Действия
... ... ... ...
S0 132 S1 Pop
... ... ... ...

Работа устройства LSR3 несколько отличается от работы устройств LSR1 и LSR2, так как оно является предпоследним устройством LSR для пути LSP1. В соответствии с записью в табл. 2 устройство LSR3 выполняет выталкивание (Pop) из стека метки 132, относящейся к пути LSP1, выполняя операцию PHP. В результате верхней меткой стека становится метка 315, принадлежащая пути LSP3.

Устройство LER2 продвигает поступивший на его входной интерфейс SO кадр на основе своей записи таблицы продвижения (табл. 4). Устройство LER2 сначала заменяет метку 315 пути LSP3 значением 317, затем проталкивает ее на дно стека и помещает на вершину стека метку 188, которая является меткой пути LSP2, внутреннего для домена 2. Перемещение кадра вдоль пути LSP2 происходит аналогичным образом.

Таблица 4. Запись в таблице продвижения LER2

Входной интерфейс Метка Следующий хоп Действия
... ... ... ...
S0 315 S1 317
Push
188
... ... ... ...

Описанная модель двухуровневого пути легко может быть расширена для любого количества уровней.