Заголовок MPLS и технологии канального уровня
Формат MPLS заголовка представлен на рис. 16.5.
Рисунок 16.5 - Формат MPLS-метки
Описание полей MPLS-заголовка:
· Метка (20 бит). Используется для выбора соответствующего пути коммутации по меткам.
· CoS - Класс услуги (Class of Service). Поле CoS, занимающее 3 бита, первоначально было зарезервировано для развития технологии, но в последнее время используется в основном для указания класса трафика, требующего определенного уровня QoS.
· Признак дна стека меток. Этот признак (S) занимает 1 бит. Одному пакету может быть назначено несколько меток ("стек" меток). S - поле-флаг обозначающий то что метка последняя в "стеке". Пример изображён на рис 16.6.
· TTL - time-to-live Время жизни. Это поле, занимающее 8 бит, дублирует аналогичное поле IP-пакета. Это необходимо для того, чтобы устройства LSR могли отбрасывать «заблудившиеся» пакеты только на основании информации, содержащейся в заголовке MPLS, не обращаясь к заголовку IP.
Рисунок 16.6 - Пример назначения стека меток.
У последней метки в стеке значение поля "S" равно 1 (на рисунке 16.6 это метка MPLS N1). У остальных меток (метка MPLS N2 и N3) значение поля "S" равно 0. Стек меток используется для реализации дополнительных возможностей сети на базе MPLS, например MPLS/VPN или MPLS/TrafficEnenirring.
Для пояснения механизма взаимодействия MPLS с технологиями канального уровня рассмотрим ситуацию, когда заголовок MPLS включает только одну метку.
Рисунок 16.7 - Форматы заголовков нескольких разновидностей технологии MPLS
Как видно из рисунка 16.7, технология MPLS поддерживает несколько типов кадров: РРР, Ethernet, Frame Relay и ATM. Это не означает, что под слоем MPLS работает какая-либо из перечисленных технологий, например Ethernet. Это означает только то, что в технологии MPLS используются форматы кадров этих технологий для помещения в них пакета сетевого уровня, которым сегодня почти всегда является IP-пакет.
В связи с тем, что заголовок MPLS помещается между заголовком канального уровня и заголовком IP, его называют заголовком-вставкой (shim header).
Продвижение кадра в MPLS-сети происходит на основе метки MPLS и техники LSP, а не на основе адресной информации и техники той технологии, формат кадра которой MPLS использует. Таким образом, если в MPLS применяется кадр Ethernet, то МАС-адреса источника и приемника хотя и присутствуют в соответствующих полях кадра Ethernet, но для продвижения кадров не используются. Исключение составляет случай, когда между двумя соседними устройствами LSR находится сеть коммутаторов Ethernet — тогда МАС-адрес назначения MPLS-кадра потребуется для того, чтобы кадр дошел до следующего устройства LSR, а уже оно будет продвигать его на основании метки.
В кадрах РРР, Ethernet и Frame Relay заголовок MPLS помещается между оригинальным заголовком и заголовком пакета 3-го уровня. С ячейками ATM технология MPLS поступает по-другому: она пользуется имеющимися полями VPI/VCI в заголовках этих ячеек для меток виртуальных соединений. Поля VPI/VCI нужны только для хранения поля метки, остальная часть заголовка MPLS с полями CoS, S и TTL размещается в поле данных ATM-ячеек и при передаче ячеек ATM-коммутаторами, поддерживающими технологию MPLS, не используется.
Далее для определенности при рассмотрении примеров мы будем подразумевать, что используется формат кадров MPLS/PPP.
Стек меток
Наличие стека меток является одним из оригинальных свойств MPLS. Концепция стека меток является развитием концепции двухуровневой адресации виртуальных путей с помощью меток VPI/VCI, принятой в ATM.
Стек меток позволяет создавать систему агрегированных путей LSP с любым количеством уровней иерархии. Для поддержки этой функции MPLS-кадр, который перемещается вдоль иерархически организованного пути, должен включать столько заголовков MPLS, сколько уровней иерархии имеет путь. Напомним, что заголовок MPLS каждого уровня имеет собственный набор полей: метка, CoS, TTL и S. Последовательность заголовков организована как стек, так что всегда имеется метка, находящаяся на вершине стека, и метка, находящаяся на дне стека, при этом последняя сопровождается признаком S = 1. Над метками выполняются следующие операции, задаваемые в поле действий таблицы продвижения:
· Push — поместить метку в стек. В случае пустого стека эта операция означает простое присвоение метки пакету. Если же в стеке уже имеются метки, в результате этой операции новая метка сдвигает «старые» в глубь стека, сама оказываясь на вершине.
· Swap — заменить текущую метку новой.
· Pop — выталкивание (удаление) верхней метки, в результате все остальные метки стека поднимаются на один уровень.
Продвижение MPLS-кадра всегда происходит на основе метки, находящейся в данный момент на вершине стека. Рассмотрим сначала продвижение MPLS-кадра по одноуровневому пути в MPLS-сети, показанной на рис. 16.8.
Сеть состоит из трех 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-адреса.
Рисунок 16.8 - Пути LSP1 и LSP2, проложенные в доменах 1 и 2 MPLS-сети
На рисунке 16.8 также показан путь LSP2 в домене 2. Он соединяет устройства LER3 и LER4, проходя через устройства LSR4, LSR5 и LSR6, и определяется последовательностью меток 188,112,101.
Для того чтобы IP-пакеты могли передаваться на основе техники MPLS не только внутри каждого домена, но и между доменами (например, между устройствами LER1 и LER4), существует два принципиально разных решения.
· Первое решение состоит в том, что между LER1 и LER4 устанавливается один одноуровневый путь коммутации по меткам, соединяющий пути LSP1 и LSP2 (которые в этом случае становятся одним путем). Это простое, на первый взгляд, решение, называемое сшиванием путей LSP, плохо работает в том случае, когда MPLS-домены принадлежат разным поставщикам услуг, не позволяя им действовать независимо друг от друга.
· Вторым более перспективным решением является применение многоуровневого подхода к соединению двух MPLS-доменов, принадлежащих, возможно, разным поставщикам услуг.
Для реализации второго подхода в нашем примере нужно создать путь коммутации по меткам второго уровня (LSP3), соединяющий устройства LER1 и LER4. Этот путь определяет последовательность хопов между доменами а не между внутренними устройствами LSR каждого домена. Так, LSP3 состоит из хопов LER1 — LER2 — LER3 — LER4. В этом отношении многоуровневый подход MPLS концептуально очень близок подходу протокола BGP, определяющего путь между автономными системами.
Рассмотри более детально, как работает технология MPLS в случае путей коммутации по меткам двух уровней (рис 16.9).
В устройстве LER1 начинаются два пути — LSP1 и LSP3, что обеспечивается соответствующей записью в таблице продвижения устройства LER1 (табл. 16.3).
Таблица 16.3 - Запись в таблице продвижения LER1
Входной интерфейс | Метка | Следующий хоп | Действия |
... | ... | ... | ... |
S0 | ... | S1 | Push |
... | ... | ... | ... |
IP-пакеты, поступающие на интерфейс S0 устройства LER1, продвигаются на его выходной интерфейс S1, где для них создается заголовок MPLS, включающий метку 315 верхнего уровня (LSP3), которая на этот момент является верхушкой стека меток. Затем эта метка проталкивается на дно стека (операция Push), а верхней становится метка 256, относящаяся к LSP1.
Далее MPLS-кадр с меткой 256 поступает на выходной интерфейс S1 пограничного устройства LER1 и передается на вход LSR1. Устройство LSR1 обрабатывает кадр в соответствии со своей таблицей продвижения (табл. 16.4). Метка 256, находящаяся на вершине стека, заменяется меткой 272. (Отметьте, что метка 315, находящаяся ниже в стеке, устройством LSR1 игнорируется.)
Рисунок 16.9 - Использование стека меток иерархией путей
Таблица 16.4 - Запись в таблице продвижения LSR1
Входной интерфейс | Метка | Следующий хоп | Действия |
... | ... | ... | ... |
S0 | S1 | ||
... | ... | ... | ... |
Аналогичные действия выполняет устройство LSR2, которое заменяет метку меткой 132 и отправляет кадр следующему по пути устройству LSRЗ (табл. 16.5).
Таблица 16.5 - Запись в таблице продвижения LSR3
Входной интерфейс | Метка | Следующий хоп | Действия |
... | ... | ... | ... |
S0 | S1 | Pop | |
... | ... | ... | ... |
Работа устройства LSR3 несколько отличается от работы устройств LSR1 и LSR2, так как оно является предпоследним устройством LSR для пути LSP1. В соответствии с записью в табл. 2 устройство LSR3 выполняет выталкивание (Pop) из стека метки 132, относящейся к пути LSP1, выполняя операцию PHP. В результате верхней меткой стека становится метка 315, принадлежащая пути LSP3.
Устройство LER2 продвигает поступивший на его входной интерфейс S0 кадр на основе своей записи таблицы продвижения (табл. 16.6). Устройство LER2 сначала заменяет метку 315 пути LSP3 значением 317, затем проталкивает ее на дно стека и помещает на вершину стека метку 188, которая является меткой пути LSP2, внутреннего для домена 2. Перемещение кадра вдоль пути LSP2 происходит аналогичным образом.
Таблица 16.6 - Запись в таблице продвижения LER2
Входной интерфейс | Метка | Следующий хоп | Действия |
... | ... | ... | ... |
S0 | S1 | Push | |
... | ... | ... | ... |
Описанная модель двухуровневого пути легко может быть расширена для любого количества уровней.
Протокол LDP
Протокол распределения меток (Label Distribution Protocol, LDP) позволяет автоматически создавать в сети пути LSP в соответствии с существующими в таблицах маршрутизации записях о маршрутах в IP-сети. Протокол LDP принимает во внимание только те записи таблицы маршрутизации, которые созданы с помощью внутренних протоколов маршрутизации, то есть протоколов типа IGP, поэтому режим автоматического создания LSP с помощью протокола LDP иногда называют режимом MPLS IGP (в отличие от режима MPLS ТЕ, когда маршруты выбираются из соображений инжиниринга трафика и не совпадают с маршрутами, выбранными внутренними протоколами маршрутизации). Еще режим MPLS IGP называют ускоренной MPLS-коммутацией, это название отражает начальную цель разработчиков технологии MPLS, которая состояла только в ускорении продвижения IP-пакетов с помощью техники виртуальных каналов. Спецификация LDP дается в RFC 5036 (http://www.rfc-editor.org/rfc/rfc5036.txt). Рассмотрим работу протокола LDP на примере сети, изображенной на рис. 16.10.
Все устройства LSR поддерживают сигнальный протокол распределения меток (LDP). От устройства LSR1 в сети уже установлен один путь LSP1 — по этому пути идет трафик к сетям 105.0.0.0 и 192.201.103.0. Это значит, что таблица FTN (отображающая сети назначения на LSP) у LSR1 соответствует табл. 16.7.
Таблица 16.7 - Таблица FTN устройства LSR1
Признаки FEC | Метка |
105.0.0.0; 192.201.103.0 |
Метка 231 в этой таблице соответствует пути LSP1.
Рисунок 16.10 - MPLS-сеть с устройствами LSR, поддерживающими LDP
Мы рассмотрим функционирование протокола LDP в ситуации, когда в результате работы протоколов маршрутизации или же после ручной модификации администратором сети в таблице маршрутизации устройства LSR1 появилась запись о новой сети назначения, для которой в сети поставщика услуг еще не проложен путь коммутации по меткам. В нашем случае это сеть 132.100.0.0 и для нее нет записи в таблице FTN.
В этом случае устройство-LSR1 автоматически инициирует процедуру прокладки нового пути. Для этого оно запрашивает по протоколу LDP метку для новой сети 132.100.0.0 у маршрутизатора, IP-адрес которого в таблице маршрутизации указан для данной сети как адрес следующего хопа.
Однако для того чтобы воспользоваться протоколом LDP, нужно сначала установить между устройствами LSR сеанс LDP, так как этот протокол работает в режиме установления соединений.
Сеансы LDP устанавливаются между соседними маршрутизаторами автоматически. Для этого каждое устройство LSR, на котором развернут протокол LDP, начинает посылать своим соседям сообщения Hello. Эти сообщения посылают по групповому IP-адресу 224.0.0.2, который адресуется ко всем маршрутизаторам подсети и определенному порту UDP. Если соседний маршрутизатор также поддерживает протокол LDP, то он в ответ устанавливает сеанс TCP через порт 646 (этот порт закреплен за протоколом LDP).
В результате обмена сообщениями Hello все поддерживающие протокол LDP устройства LSR обнаруживают своих соседей и устанавливают с ними сеансы, как показано на рис. 16.11 (для простоты на рисунке представлены не все сеансы LDP, существующие в сети).
Рисунок 16.11 - Сеансы LDP устанавливаются между непосредственными соседями
Будем считать, что между устройствами LSR1 и LSR2 установлен сеанс LDP.
Тогда при обнаружении новой записи в таблице маршрутизации, указывающей на устройство LSR2 в качестве следующего хопа, устройство LSR1 просит устройство LSR2 назначить метку для нового пути к сети 132.100.0.0. Говорят, что устройство LSR2 находится ниже по потоку (downstream) для устройства LSR1 относительно пути к сети 132.100.0.0. Соответственно устройство LSR1 расположено выше по потоку для устройства LSR2 относительно сети 132.100.0.0. Естественно, что для других сетей назначения у устройства LSR1 имеются другие соседи вниз по потоку, а у устройства LSR2 — другие соседи вверх по потоку.
Причина, по которой значение метки для нового пути выбирается соседом ниже по потоку, понятна — эта метка, которая имеет локальное значение на двухточечном соединении между соседними устройствами, будет использоваться именно этим устройством для того, чтобы понимать, к какому пути LSP относится пришедший MPLS-кадр. Поэтому устройство ниже по потоку выбирает уникальное значение метки, исходя из неиспользованных значений меток для своего интерфейса, который связывает его с соседом выше по потоку.
Для получения значения метки устройство LSR1 выполняет запрос метки протокола LDP. Формат такого запроса достаточно прост (рис 16.12).
Рисунок 16.12 - Формат LDP-запроса метки
Идентификатор сообщения требуется для того, чтобы при получении ответа можно было однозначно сопоставить ответ некоторому запросу (устройство может послать несколько запросов до получения ответов на каждый из них).
В нашем примере в качестве элемента FEC будет указан адрес 132.100.0.0.
Устройство LSR2, приняв запрос, находит, что у него также нет проложенного пути к сети 132.100.0.0, поэтому оно передает LDP-запрос следующему устройству LSR, адрес которого указан в его таблице маршрутизации в качестве следующего хопа для сети 132.100.0.0. В примере, показанном на рис. 2, таким устройством является LSR3, на котором путь коммутации по меткам должен закончиться, так как следующий хоп ведет за пределы MPLS-сети данного оператора.
Устройство LSRЗ, обнаружив, что для пути к сети 132.100.0.0 оно является пограничным, назначает для прокладываемого пути метку, еще не занятую его входным интерфейсом, и сообщает об этой метке устройству LSR2 в LDP-cooбщeнии, формат которого представлен на рис 16.13. Пусть это будет метка 231.
Рисунок 16.13 - Формат отображения метки на элемент FEC протокола LDP
В свою очередь, LSR2 назначает неиспользуемую его интерфейсом метку и сообщает об этом в LDР-сообщении отображения метки устройству LSR1. После этого новый путь коммутации по меткам, ведущий от LSR1 к сети 132.100.0.0, считается проложенным (рис. 16.14), и вдоль него пакеты начинают передаваться уже на основе меток и таблиц продвижения, а не 1Р-адресов и таблиц маршрутизации.
Рисунок 16.14 - Новый путь LSP2
Было бы нерационально прокладывать отдельный путь для каждой сети назначения каждого маршрутизатора. Поэтому устройства LSR стараются строить агрегированные пути коммутации по меткам и передавать вдоль них пакеты, следующие к некоторому набору сетей. Так, на рис. 5 устройство LSR1 передает по пути LSP1 пакеты, следующие не только к сети 132.100.0.0, но и к сетям 194.15.17.0 и 201.25.10.0, информация о которых появилась уже после того, как путь LSP2 был проложен.
Мы рассмотрели только один режим работы протокола LDP, который носит сложное название «Упорядоченный режим управления распределением меток с запросом устройства вниз по потоку». Здесь под упорядоченным режимом понимается такой режим, когда некоторое промежуточное устройство LSR не передает метку для нового пути устройству LSR, лежащему выше по потоку, до тех пор, пока не получит метку для этого пути от устройства LSR, лежащего ниже по потоку. В нашем случае устройство LSR2 ждало получения метки от LSR3 и уже потом передало метку устройству LSR1.
Существует и другой режим управления распределением меток, который называется независимым. При независимом управлении распределением меток LSR может назначить и передать метку, не дожидаясь прихода сообщения от своего соседа, лежащего ниже по потоку. Например, устройство LSR2 могло бы назначить и передать метку 199 устройству LSR1, не дожидаясь прихода метки 231 от устройства LSR3. Так как метки имеют локальное значение, результат изменения режима не изменился бы.
Существует также два метода распределения меток — распределение от лежащего ниже по потоку по запросу и без запроса. Для нашего случая это значит, что если бы устройство LSR2 обнаружило в своей таблице маршрутизации запись о новой сети 132.100.0.0, оно могло бы назначить метку новому пути и передать ее устройству LSR1 без запроса. Так как при этом устройство LSR2 не знает своего соседа выше по потоку (таблица маршрутизации не говорит об этом), оно передает эту информацию всем своим соседям по сеансам LDP. В этом варианте работы протокола LDP устройства LSR могут получать альтернативные метки для пути к некоторой сети; а выбор наилучшего пути осуществляется обычным для IP-маршрутизатров (которыми устройства LSR являются по совместительству) способом — на основании наилучшей метрики, выбираемой протоколом маршрутизации.
Как видно из описания, существует два независимых параметра, которые определяют вариант работы протокола LDP: режим управления распределением меток и метод распределения меток. Так как каждый параметр имеет два значения, всего существует четыре режима работы протокола LDP.
В рамках одного сеанса LDP должен поддерживаться только один из методов распределения меток — по запросу или без запроса. В то же время в масштабах сети могут одновременно использоваться оба метода. Протокол LDP чаще всего работает в режиме независимого управления распределением меток без запроса.
Упорядоченное управление распределением меток требуется при прокладке путей LSP, необходимых для инжиниринга трафика.
Дата добавления: 2020-11-18; просмотров: 498;