> For the complete documentation index, see [llms.txt](https://linkmeup.gitbook.io/sdsm/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://linkmeup.gitbook.io/sdsm/12.-mpls-l2vpn/1.-vpws/1.-control-plane.md).

# Control Plane

![](https://habrastorage.org/files/32c/252/5e4/32c2525e405544ec96be3fe56991f8fb.png)

**Транспортная метка** может назначаться как LDP (см. [выпуск про MPLS](https://linkmeup.ru/blog/154.html)), так и RSVP-TE (ещё ждёт своего часа).\
Для примера, возьмём LDP — по всей сети запускается этот протокол, который для каждого Loopback-адреса каждого MPLS-маршрутизатора распространит по сети метки.\
В нашем случае R1 после работы LDP будет, грубо говоря, знать 5 меток: как добраться до каждого из оставшихся маршрутизаторов.\
Нас интересует LSP R1→R6 и обратно. Заметьте, что для того, чтобы VC перешёл в состояние UP, должны быть оба LSP — прямой и обратный.

Существует несколько разных способов реализации услуги VPWS. Об этом мы поговорим чуть ниже, а для примера разберём ту, которая наиболее часто сейчас используется.

За распространение **сервисных меток** отвечает тот же LDP, только генно-модифицированный — **Targeted LDP**. Теперь он может устанавливать соединение с удалёнными маршрутизаторами и обмениваться с ними метками.\
В нашем примере к R1 и R6 подключены клиенты. R1 через LDP сообщит свою метку для этого клиента R6 и наоборот.

На обоих концах вручную мы настраиваем удалённую LDP-сессию. Она никак не привязана к VPN. То есть одна и та же сессия может использоваться для обмена метками любым количеством VPN.\
Обычный LDP — это link-local протокол и ищет соседей среди непосредственно подключенных маршрутизаторов, то есть TTL его пакетов — 1. Однако tLDP достаточна IP-связность.

Как только с обеих сторон появятся AC-интерфейсы с одинаковым VC-ID, LDP поможет им сообщить друг другу метки.

В чём отличия tLDP от LDP?

| **LDP**                                                                | **tTLDP**                                                                   |
| ---------------------------------------------------------------------- | --------------------------------------------------------------------------- |
| Соседями могут быть только непосредственно подключенные маршрутизаторы | Соседом может быть любой маршрутизатор в сети, с которым есть IP-связность. |
| Поиск всех возможных соседей                                           | Соседи уже определены конфигурацией                                         |
| Широковещательная рассылка сообщений Discovery                         | Адресная отправка сообщения Discovery конкретным соседям.                   |
| В качестве FEC обычно выступает IP-адрес                               | В качестве FEC обычно выступает VC ID                                       |

Чтобы сильно далеко не убегать, сразу же практика.

> #### Как собрать лабу для MPLS L2VPN?
>
> В качестве тестового стенда использована связка UnetLab + CSR1000V. И то и другое вы можете получить совершенно бесплатно и законно.\
> [UnetLab OVA](http://www.unetlab.com/download/index.html).\
> [Cisco CSR1000V IOS-XE](https://software.cisco.com/download/release.html?mdfid=284364978\&softwareid=282046477).\
> Инструкции по установке UNL и добавлению образов CSR1000V: [Тыц](http://www.unetlab.com/2014/11/adding-cisco-cloud-service-router-csr1000v-images/).
>
> Соответственно далее все команды по настройке MPLS L2VPN даны в нотации Cisco IOS-XE.
>
> *Внимание: для каждой ноды CSR1000V требуется 2,5 ГБ RAM. В противном случае образ либо не запустится, либо будут различные проблемы, вроде того, что порты не поднимаются или наблюдаются потери.*
