Протокол 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 на примере сети, изображенной на рис. 1.

Рис. 1. MPLS-сеть с устройствами LSR, поддерживающими LDP

Все устройства LSR поддерживают сигнальный протокол распределения меток (LDP). От устройства LSR1 в сети уже установлен один путь LSP1 — по этому пути идет трафик к сетям 105.0.0.0 и 192.201.103.0. Это значит, что таблица FTN (отображающая сети назначения на LSP) у LSR1 соответствует табл. 1.

Таблица 1. Таблица FTN устройства LSR1

Признаки FEC
 
Метка
 
105.0.0.0; 192.201.103.0 231

Метка 231 в этой таблице соответствует пути LSP1.
Мы рассмотрим функционирование протокола 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 обнаруживают своих соседей и устанавливают с ними сеансы, как показано на рис. 2 (для простоты на рисунке представлены не все сеансы LDP, существующие в сети).

Рис. 2. Сеансы 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. Формат такого запроса достаточно прост (рис 3).

Рис. 3. Формат LDP-запроса метки

Идентификатор сообщения требуется для того, чтобы при получении ответа можно было однозначно сопоставить ответ некоторому запросу (устройство может послать несколько запросов до получения ответов на каждый из них).

В нашем примере в качестве элемента FEC будет указан адрес 132.100.0.0.

Устройство LSR2, приняв запрос, находит, что у него также нет проложенного пути к сети 132.100.0.0, поэтому оно передает LDP-запрос следующему устройству LSR, адрес которого указан в его таблице маршрутизации в качестве следующего хопа для сети 132.100.0.0. В примере, показанном на рис. 2, таким устройством является LSR3, на котором путь коммутации по меткам должен закончиться, так как следующий хоп ведет за пределы MPLS-сети данного оператора.

ПРИМЕЧАНИЕ

Возникает вопрос, как устройство LSR3 узнает о том, что является последним в сети поставщика услуг на пути к сети 132.100.0.0? Дело в том, что LDP является протоколом, ориентированным на соединение, и при установлении логического LDP-соединения возможно применение автоматической аутентификации устройств, так что сеансы LDP устанавливаются только между устройствами одного поставщика услуг, который задает для всех принадлежащих его сети устройств LSR соответствующую информацию для взаимной аутентификации.

Устройство LSRЗ, обнаружив, что для пути к сети 132.100.0.0 оно является пограничным, назначает для прокладываемого пути метку, еще не занятую его входным интерфейсом 80, и сообщает об этой метке устройству LSR2 в LDP-cooбщeнии, формат которого представлен на рис 4. Пусть это будет метка 231.

Рис. 4. Формат отображения метки на элемент FEC протокола LDP

В свою очередь, LSR2 назначает неиспользуемую его интерфейсом БО метку и сообщает об этом в LDР-саЬбщении отображения метки устройству LSR1. После этого новый путь коммутации по меткам, ведущий от LSR1 к сети 132.100.0.0, считается проложенным (рис. 5), и вдоль него пакеты начинают передаваться уже на основе меток и таблиц продвижения, а не 1Р-адресов и таблиц маршрутизации.

Рис. 5. Новый путь 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, необходимых для инжиниринга трафика.