# Теория

Что произошло?

**0.** Связность между CE уже появилась\
![](https://habrastorage.org/files/a6a/125/215/a6a125215517499ab1a55c5fa211a457.PNG)

**1.** BGP установил сессии и разослал свои Update'ы.\
![](https://habrastorage.org/files/a14/428/fd3/a14428fd39ac45f99432164f0e60f676.png)

А в Update нас интересует NLRI\
![](https://habrastorage.org/files/31c/e21/92d/31ce2192dc9d4d8f99654339bbbc3828.png)

Это Linkmeup\_R1 сообщает Linkmeup\_R3, как вычислить VPN-метку для трафика, предназначенного ему для VPLS с RT 65400:63.\
CE-ID (он же VE ID)=101, VBO=100, VBS=10, LB=1000.

![](https://habrastorage.org/files/cae/1ec/458/cae1ec45838e447c82ce03b35ea7aceb.png)

Это уже Linkmeup\_R3 сообщает Linkmeup\_R1:\
CE-ID=103, VBO=100,VBS=10, LB=3000

![](https://habrastorage.org/files/0a3/464/ec2/0a3464ec29ce43a4bca707bc16df5f4a.png)\
И вот Linkmeup\_R4 сообщает Linkmeup\_R1:\
CE-ID=104, VBO=100,VBS=10, LB=4000

*Linkmeup\_R1 на Linkmeup\_R4 передал то же, что и на Linkmeup\_R3*.

Давайте, не заглядывая в таблицы меток на PE, посчитаем, какие метки будут назначены?\
**Linkmeup\_R3→Linkmeup\_R1**\
Неравенство VBO ≤ Local VE ID ≤ VBO+VBS-1 выполняется: 100≤103≤109.\
Метка: LB + Local VE ID — VBO = 1000+103-100=1003.\
Метку 1003 вставит Linkmeup\_R3 в кадр, который хочет отправить на Linkmeup\_R1 в этом VFI.

**Linkmeup\_R1→Linkmeup\_R3**\
Неравенство VBO ≤ Local VE ID ≤ VBO+VBS-1 выполняется: 100≤101≤109.\
Метка: LB + Local VE ID — VBO = 3000+101-100=3001.\
Метку 3001 вставит Linkmeup\_R1 в кадр, который хочет отправить на Linkmeup\_R3 в этом VFI.

**Linkmeup\_R1→Linkmeup\_R4**\
Неравенство VBO ≤ Local VE ID ≤ VBO+VBS-1 выполняется: 100≤101≤109.\
Метка: LB + Local VE ID — VBO = 4000+101-100=4001.

**Linkmeup\_R4→Linkmeup\_R1**\
Неравенство VBO ≤ Local VE ID ≤ VBO+VBS-1 выполняется: 100≤104≤109.\
Метка: LB + Local VE ID — VBO = 1000+104-100=1004.

Осталось вычислить пару Linkmeup\_R4→Linkmeup\_R3 и Linkmeup\_R3→Linkmeup\_R4.\
**Linkmeup\_R4→Linkmeup\_R3**\
Неравенство VBO ≤ Local VE ID ≤ VBO+VBS-1 выполняется: 100≤104≤109.\
Метка: LB + Local VE ID — VBO = 3000+104-100=3004.

**Linkmeup\_R3→Linkmeup\_R4**\
Неравенство VBO ≤ Local VE ID ≤ VBO+VBS-1 выполняется: 100≤103≤109.\
Метка: LB + Local VE ID — VBO = 4000+103-100=4003.

**2.** Сверимся с ситуацией на PE.\
![](https://habrastorage.org/files/905/6ad/2be/9056ad2be166481bb638f97a7acc0fac.PNG)

![](https://habrastorage.org/files/f13/c22/6c5/f13c226c56124cbfbe89b872506d9397.PNG)

Ну, вроде, как всё правильно.

К сожалению, в реальной жизни таких красивых цифр не увидишь, там будут нагромождения тарабарщины. Но с другой стороны, и вчитываться в них вам особо не придётся — обычно, если метка выделена, то уже не принципиально, какая.

**3.** Соответственно, если сейчас мы отправим ping с Blue-A на Blue-D, то должны увидеть VPN-метку 3001 в ICMP-Request и 1003 в ICMP-Reply:\
![](https://habrastorage.org/files/680/0bb/241/6800bb24140946c2b14f41a11414dc5a.PNG)

*А в этот раз Wireshark почему-то распознал ICMP в MPLS*

Вы по-прежнему можете использовать команды **show mpls l2transport vc detail** и **show l2vpan atom vc detail** для просмотра деталей:\
![](https://habrastorage.org/files/5cb/430/7c0/5cb4307c0b1d4c61839d3a8c31e38590.PNG)

![](https://habrastorage.org/files/5b1/280/e50/5b1280e5084c48a396fbf866612ebcff.PNG)

Командой **show bgp l2vpn vpls rd** ***X*** **ve-id** ***Y*** **block-offset** ***Z*** вы можете вывести всю информацию о блоке меток от данного соседа.\
![](https://habrastorage.org/files/35e/021/4a7/35e0214a7e714d25a227393f9f9be79b.PNG)

А так посмотреть утилизацию блока меток:\
![](https://habrastorage.org/files/b03/dd8/7ce/b03dd87ce0594c60aca760de54afd1bd.PNG)

Сложность и количество команд настройки выглядит больше, чем для режима Martini, но нужно помнить, что\
1\) Это однократная настройка. При добавлении нового PE в VPLS-домен, настраивать нужно только его (в случае использования RR). Для Martini придётся пройтись по всем существующим PE этого VPLS-домена.\
2\) Конфигурация по большей части одинаковая — меняется только VE ID. Секция BGP вообще берётся копипастом (в случае использования RR).

Ещё раз повторим шаги конфигурации:

1. Настраиваем VFI, указывая VPN ID, протоколы, VE ID.
2. Создаём Service Instance на AC-интерфейсах.
3. Связываем VFI и Service Instance через bridge-domain.
4. В секции BGP поднимаем соседство с RR в Address-family L2VPN VPLS.

Теория и практика VPLS Kompella mode на примере Juniper: [русским для русских](https://habrahabr.ru/post/275787/).\
Конфигурация и примеры вычисления меток: [Сама cisco](http://www.cisco.com/c/en/us/support/docs/ios-nx-os-software/virtual-private-lan-services-vpls/116121-tech-vpls-bgp-00.html#anc11).
