# Теория

Давайте проследим, что там происходило за кулисами протоколов (дамп снят с интерфейса GE1 Linkmeup\_R1). Можно выделить основные вехи:

**0)** IGP сошёлся, LDP определил соседей, поднял сессию и раздал транспортные метки.\
Как видите, Linkmeup\_R4 выделил транспортную метку 19 для FEC 4.4.4.4.

![](https://habrastorage.org/files/74a/1df/6c0/74a1df6c0dda4bfe9b03b36817512241.PNG)

**1)** А вот tLDP начал свою работу.

**--А.** Сначала мы настроили его на Linkmeup\_R1 и tLDP начал периодически отправлять свой Hello на адрес 4.4.4.4\
![](https://habrastorage.org/files/b60/b1a/a0e/b60b1aa0e053458ea96796bdb89ca50e.PNG)

Как видите, это юникастовый IP пакет, который отправляется с адреса Loopback-интерфейса 1.1.1.1 на адрес такого же Loopback удалённого PE — 4.4.4.4.\
Упакован в UDP и передаётся с одной меткой MPLS — транспортной — 19. Обратите внимание на приоритет — поле EXP — 6 — один из наивысших, поскольку это пакет служебного протокола. Подробнее мы об этом поговорим в выпуске о QoS.

Состояние PW пока в DOWN, потому что с обратной стороны ничего нет.

![](https://habrastorage.org/files/a52/4bd/9eb/a524bd9eb99644f1b03a363e4d7139f9.PNG)

**--Б.** После того, как настроили xconnect на стороне Linkmeup\_R4 — сразу Hello и установление соединения по TCP.\
![](https://habrastorage.org/files/e7e/ed9/87e/e7eed987e2564f75b32859b1c036311c.PNG)

В этот момент установлено LDP-соседство\
![](https://habrastorage.org/files/2dd/932/884/2dd932884774462db64883d68423e1d0.png)

**--В.** Пошёл обмен метками:\
![](https://habrastorage.org/files/4ca/5c9/2ec/4ca5c92ec15f45b2af460c48ad6381ee.PNG)

В самом низу можно видеть, что FEC в случае VPWS — это VC ID, который мы указали в команде xconnect — это идентификатор нашего VPN — **127**.\
А чуть ниже выделенная ему Linkmeup\_R4 метка — 0х16 или **22** в десятичной системе.\
То есть этим сообщением Linkmeup\_R4 сообщил Linkmeup\_R1, мол, если ты хочешь передать кадр в VPN с VCID 127, то используй сервисную метку 22.

> Тут же вы можете видеть ещё кучу других сообщений Label Mapping — это LDP делится всем, что нажил — информацией про все FEC. Нас это мало интересует, ну а Lilnkmeup\_R1 и подавно.

То же самое делает и Linkmeup\_R1 — сообщает Linkmeup\_R4 свою метку:

![](https://habrastorage.org/files/c42/8f6/db9/c428f6db9d5c4b99a73cc14f558492e9.PNG)

После этого поднимаются VC и мы можем увидеть метки и текущие статусы:\
![](https://habrastorage.org/files/7cc/231/289/7cc2312893174c6db8a66743b1f2b3ac.PNG)

![](https://habrastorage.org/files/580/8c0/85b/5808c085bf5944078bea6edf15e9554d.png)

Команды **show mpls l2transport vc detail** и **show l2vpn atom vc detail** в целом идентичны для наших примеров.

**2)** Далее соседи будут только поддерживать контакт:\
![](https://habrastorage.org/files/956/bf1/2a8/956bf12a86b748a8b5b3acf7fe75ad90.PNG)

**3)** Теперь всё готово для передачи пользовательских данных. В этот момент мы запускаем ping. Всё предсказуемо просто: две метки, которые мы уже видели выше.\
![](https://habrastorage.org/files/3ba/420/987/3ba4209872ce4807aa0b0b2239ba1e04.PNG)

> Почему-то Wireshark не разобрал внутренности MPLS, но я вам покажу, как прочитать вложение:\
> ![](https://habrastorage.org/files/bda/b21/bc8/bdab21bc884a40deba3f8bb2af30f8ba.png)\
> \
> Два блока, выделенных, красным — это MAC-адреса. DMAC и SMAC соответственно. Жёлтый блок 0800 — поле Ethertype заголовка Ethernet — значит внутри IP.\
> Далее чёрный блок 01 — поле Protocol заголовка IP — это номер протокола ICMP. И два зелёных блока — SIP и DIP соответственно.\
> Теперь вы можете в Wireshark!

Соответственно ICMP-Reply возвращается только с меткой VPN, потому что на Linkmeup\_R2 возымел место [PHP](http://lookmeup.linkmeup.ru/#term487) и транспортная метка была снята.\
![](https://habrastorage.org/files/1aa/f95/c89/1aaf95c89c6b4898a976ec7bcf288308.PNG)

Если VPWS — это просто провод, то он должен спокойно передать и кадр с меткой VLAN?\
Да, и нам для этого не придётся ничего перенастраивать.\
Вот пример кадра с меткой VLAN:\
![](https://habrastorage.org/files/6d6/7a5/0cc/6d67a50ccf1a4b52adb15a5927bb743c.png)

Здесь вы видите Ethertype 8100 — 802.1q и метку VLAN 0x3F, или 63 в десятичной системе.

Если мы перенесём конфигурацию xconnect на сабинтерфейс с указанием VLAN, то он будет терминировать данный VLAN и отправлять в PW кадр без заголовка 802.1q.
