Наличие стека меток является одним из оригинальныхсвойств MPLS/ Концепция стека меток является развитием концепции двухуровневой адресации виртуальных путей с помощью меток ув/VpJ, принятой в ATM*:: : '•..•.>:;. v.:
Стек меток позволяет создавать систему агрегированных путей LSP с любым количеством уровней иерархии. Для поддержки этой функции MPLS-кадр, который перемещается вдоль иерархически организованного пути, должен включать столько заголовков MPLS, сколько уровней иерархии имеет путь. Напомним, что заголовок MPLS каждого уровня имеет собственный набор полей: метка, CoS, TTL и S. Последовательность заголовков организована как стек, так что всегда имеется метка, находящаяся на вершине стека, и метка, находящаяся на дне стека, при этом последняя сопровождается признаком S = 1. Над метками выполняются следующие операции, задаваемые в поле действий таблицы продвижения:
□ Push — поместить метку в стек. В случае пустого стека эта операция означает простое присвоение метки пакету. Если же в стеке уже имеются метки, в результате этой операции новая метка сдвигает «старые» в глубь стека, сама оказываясь на вершине.
□ Swap — заменить текущую метку новой.
□ Pop — выталкивание (удаление) верхней метки, в результате чего все остальные метки стека поднимаются на один уровень.
Продвижение MPLS-кадра всегда происходит на основе метки, находящейся в данный момент на вершине стека. Рассмотрим сначала продвижение MPLS- кадра по одноуровневому пути в MPLS-сети, показанной на рис. 22.11.
Сеть состоит из трех 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.
MPLS-домен 1
LER1
4LSR1 fe!?^ 272 |
LSR2 LSR3 |
LER2 |
MPLS-домен 3 LER5
LER6
, LSR5 112
LER4
^—^ LPS1 MPLS-домен 2 LPS2
Рис. 22.11. Пути LSP1 и LSP2, проложенные в доменах 1 и 2 MPLS-сети
Для того чтобы IP-пакеты могли передаваться на основе техники MPLS не только внутри каждого домена, но и между доменами (например, между устройствами LER1 и LER4), существует два принципиально разных решения.
□ Первое решение состоит в том, что между LER1 и LER4 устанавливается один одноуровневый путь коммутации по меткам, соединяющий пути LSP1 и LSP2 (которые в этом случае становятся одним путем). Это простое, на первый взгляд, решение плохо работает в том случае, когда MPLS-домены принадлежат разным поставщикам услуг, не позволяя им действовать независимо друг от друга.
LER3, |
□ Вторым более перспективным решением является применение многоуровневого подхода к соединению двух MPLS-доменов, принадлежащих, возможно, разным поставщикам услуг.
В данном примере в соответствии со вторым подходом был создан путь коммутации по меткам второго уровня (LSP3), соединяющий устройства LER1 и LER4. Этот путь определяет последовательность хопов между доменами, а не между внутренними устройствами LSR каждого домена. Так, LSP3 состоит из хопов LER1 — LER2 — LER3 — LSR4. В этом отношении многоуровневый подход MPLS концептуально очень близок подходу протокола BGP, определяющего путь между автономными системами.
Рассмотри более детально, как работает технология MPLS в случае путей коммутации по меткам двух уровней (рис. 22.12).
Рис. 22.12. Использование стека меток иерархией путей |
В устройстве LER1 начинается два пути — LSP1 и LSP3, что обеспечивается соответствующей записью в таблице продвижения устройства LER1 (табл. 22.2).
IP-пакеты, поступающие на интерфейс SO устройства LER1, продвигаются на его выходной интерфейс S1, где для них создается заголовок MPLS, включающий метку 315 верхнего уровня (LSP3), которая на этот момент является верхушкой стека меток. Затем эта метка проталкивается на дно стека (действие Push), а верхней становится метка 256, относящаяся к LSP1.
Таблица 22.2. Запись в таблице продвижения LER1
|
Далее MPLS-кадр с меткой 256 поступает на выходной интерфейс S1 пограничного устройства LER1 и передается на вход LSR1. Устройство LSR1 обрабатывает кадр в соответствии со своей таблицей продвижения (табл. 22.3). Метка 256, находящаяся на вершине стека, заменяется меткой 272. (Заметьте, что метка 315, находящаяся ниже в стеке, игнорируется устройством LSR1.)
Таблица 22.3. Запись в таблице продвижения LSR1
|
Аналогичные действия выполняет устройство LSR2, которое заменяет метку меткой 132 и отправляет кадр следующему по пути устройству LSR3 (табл. 22.4).
Таблица 22.4. Запись в таблице продвижения LSR3
|
Работа устройства LSR3 несколько отличается от работы устройств LSR1 и LSR2, так как оно является предпоследним устройством LSR для пути LSP1. В соответствии с записью в табл. 22.4 устройство LSR3 выполняет выталкивание (Pop) из стека метки 132, относящейся к пути LSP1. В результате верхней меткой стека становится метка 315, принадлежащая пути LSP3. Операция выталкивания метки предпоследним устройством называется Hop Popping (PHP).
Устройство LER2 продвигает поступивший на его входной интерфейс SO кадр на основе своей записи таблицы продвижения (табл. 22.5). Устройство LER2 сначала заменяет метку 315 пути LSP3 значением 317, затем проталкивает ее на дно стека и помещает на вершину стека метку 188, которая является меткой пути LSP2, внутреннего для домена 2. Перемещение кадра вдоль пути LSP2 происходит аналогичным образом.
Таблица 22.5. Запись в таблице продвижения LER2
|
Описанная модель двухуровневого пути легко может быть расширена для любого количества уровней.