среда, 22 июня 2016 г.

MPLS сигнализация. LDP и T-LDP

Постараемся примерно идти по обозначенному в MPLS overwiev порядку. Вторым по порядку идет RSVP-TE. Я решил отложить его, и сегодня быстро поговорим о LDP. Опять же простыми словами и без подробностей.

LDP (Label Distribution Protocol)

Протокол специально созданный под распространение меток. Протокол этот session-based, а это значит, что для своей нормальной работы сначала должна установиться LDP сессия. Сессия эта устанавливается с использованием TCP, а это, в свою очередь, значит, что сессию можно поднять и между не directly connected узлами. Соответственно, существует два типа LDP протокола:
Все посты про MPLS VPN можно посмотреть по тегу MPLS или в обобщающем посте.

 

Link-LDP

Устанавливает соседство между непосредственно подключенными устройствами. Если вы знакомы с OSPF или IS-IS, то тут все более или менее знакомо. Рассылаются Hello-сообщения используя UDP на мультикаст адрес "все роутеры в сети". После чего устанавливается соседство, далее передается информация о метках и соответствующих им префиксах. Когда эта информация распространится, маршрутизаторы получат возможность коммутировать трафик полагаясь только на метки.

Используется такой режим для построения туннелей через MPLS сеть. Допустим, маршрутизатор R3 хочет отправить трафик на адрес 10.10.10.10/24. Он смотрим в свою табличку в которой содержится информация по меткам и интерфейсам, видит, что для отправки трафика нужно повесить метку 30, о которой ему ранее поведал R1. После чего, он вставляет метку в кадр и отправляет трафик в сторону R1. Тот получает кадр с меткой, сверяется со своей табличкой и понимает, что ему нужно убрать метку и отправить чистый трафик в определенный интерфейс. 

Для интереса, можно представить, что линк R1-R3 по каким-то причинам лег. В таком случае наш протокол маршрутизации перестроит топологию. После чего, R3 сначала будет отправлять трафик маршрутизатору R2, а тот уже в сторону R1. Причем R3 будет вставлять метку, которую ему прислал R2 для данного префикса, например 20. А потом уже R2, получая трафик с меткой 20, будет менять её на метку 30 и отправлять в сторону R1.

Targeted-LDP

Соседство устанавливается между двумя узлами, которые могут быть не подключены к друг-другу напрямую. В таком случае Hello отправляется уже юникастом на адрес удаленного маршрутизатора.

Такой режим применяется для передачи абонентского трафика внутри VPN-туннеля, который проходит через MPLS (или нет:) сеть. Этот режим используется для сигнализации меток pseudowire. Подробнее об этом, я хочу написать в посте про PWE3 подход. Сейчас надо просто понять, что передать метки средствами LDP можно не только между двумя соседями, но и между двумя разрозненными узлами.


Режимы распространения и удержания меток

Говоря о распространении меток, стоит сразу обозначить различные режими:

Распространение меток (Label Disctribution Mode)
     Downstream Unsolicited (DU) - маршрутизатор рассказывает своим соседям про свои метки как только о них узнает.
     Downstream on Demand (DoD) - маршрутизатор рассказывает соседу про метку, только когда он спросит.

Контроль распространения (Distribution Control Mode)
     Ordered Control - роутер не передаст метку вышестоящему роутеру, до тех пор пока не получит метку от нижестоящего.
     Independent Control - роутер не проверяет есть ли у него самого метка для этого пути.

Удержание меток (Label Retention Mode)
     Conservative - маршрутизатор хранит только метки, которые используются для передачи трафика. 
     Liberal - маршрутизатор хранит все полученные метки.

В теории, комбинация этих режимов может быть какая угодна, на деле, только несколько имеют смысл. Ясно, что выбор того или иного режима - вопрос баланса. DoD позволяет более бережно расходовать метки, например, но в случае перестроения пути сначала должен пройти процесс распространения меток.

Обычно LDP использует DU + Independent Control + Liberal retention, что по факту дает максимальное распространение меток в MPLS-домене с одновременным максимальным перерасходом ресурсов.

Мы не будет говорить ни о процессе установления сессии, ни о процессе передачи меток, ни о keep-alive механизме. 

LDP довольно простой протокол, пока он не используется для сигнализации pseudowire, о которых я упомянул ранее. В этом случае T-LDP несет важную функцию и переносит довольно большое количество информации, которая содержит не только метки, но и сообщения об ошибках или, например, сообщение о сбросе FDB-таблицы для определенной VPN сети. T-LDP используется как для установления pseudowire, так и для отслеживания его статуса. Но об этом в другой раз.

Далее я собираюсь оформить посты по работе протокола RSVP-TE, потом затронуть интересный случай LDP over RSVP, ну и далее разбираться с концепцией построения IP/MPLS VPN и Pseudowire Emulation Edge to Edge подходом.

Комментариев нет:

Отправить комментарий