Небольшой спойлер |
В процессе настройки MPLSной лабы в этом посте, я обнаружил, что Control Plane работает отлично, а вот Data Plane, мягко говоря, не очень. Ну, в смысле совсем не работает. Метки сигнализируются, а вот сам клиентский трафик по этим меткам не ходит. Ни в Juniper, ни в Cisco, ни в Alcatel-Lucent...
Как-то обсуждали с коллегами такое поведение, они были удивлены и посоветовали мне 1000V как полностью рабочее решение. Ок. Сегодня проверяем, будет ли ходить трафик между двумя Cisco CSR 1000V. Проверяем VPWS и VPLS.
Немного оффтопа. Только недавно закончил лабу по OSPF в Juniper. Думал, будет сложно вспомнить Cisco, тем более давно ничего не настраивал на IOS-XE. Но нет, руки пишут сами. ) Отличное чувство!
VPWS
Для начала обратим наш взор на VPWS. Схема предельно проста и изображена ниже.
В качестве клиентов используем Tiny Linux, который в прошлый раз так и не пригодился.
Настройка клиентов предельно проста.
Перед тем как трогать MPLS на роутере, придется активировать другую лицензию на 60 дней. По умолчанию 1000v MPLS не умеет. Делается это довольно просто. Даем команду license boot level premium, соглашаемся с условиями и перезагружаемся.
1000v1(config)#license boot level advanced
После таких манипуляций, появится вожделенная команда mpls ip.
Настраиваем интерфейсы Gi2 на обоих роутерах и включаем на них mpls.
1000v1#sh running-config interface gi2
Building configuration...
Current configuration : 119 bytes
!
interface GigabitEthernet2
description BCKBN
ip address 10.10.10.1 255.255.255.252
negotiation auto
mpls ip
end
После чего, можно увидеть LDP соседство
1000v2#sh mpls ldp neighbor
Peer LDP Ident: 192.168.0.30:0; Local LDP Ident 192.168.0.29:0
TCP connection: 192.168.0.30.13530 - 192.168.0.29.646
State: Oper; Msgs sent/rcvd: 6/6; Downstream
Up time: 00:00:33
LDP discovery sources:
GigabitEthernet2, Src IP addr: 10.10.10.1
Addresses bound to peer LDP Ident:
192.168.0.30 10.10.10.1
В качестве RouterID были выбраны адреса на интерфейсах, через которые я управляю железками. Не красиво, тем более, он приходит по DHCP.
Настроим loopback и будем использовать его адрес как router-id. Например так.
1000v1# sh run
...
interface Loopback0
ip address 1.1.1.1 255.255.255.255
...
mpls ldp router-id Loopback0
1000v2# sh run
...
interface Loopback0
ip address 2.2.2.2 255.255.255.255
...
mpls ldp router-id Loopback0
Не стоит забывать, что никакой динамической маршрутизации нет, поэтому 1.1.1.1 доступен не будет. Пропишем-с статику. )
ip route 2.2.2.2 255.255.255.255 10.10.10.2
ip route 1.1.1.1 255.255.255.255 10.10.10.1
Придется перетолкнуть LDP командой clear mpls ldp neighbor *.
Далее, делаем симметричную настройку на интерфейсах, которые смотрят на клиентов. Важный момент, что порты надо вывести из shutdown. Ну и VC-ID должен совпадать на обоих концах.
1000v1#sh running-config int gi3
Building configuration...
Current configuration : 143 bytes
!
interface GigabitEthernet3
description CLNT
no ip address
negotiation auto
no keepalive
xconnect 10.10.10.2 333 encapsulation mpls
end
1000v2#sh running-config int gi3
Building configuration...
Current configuration : 153 bytes
!
interface GigabitEthernet3
description CLNT
no ip address
negotiation auto
no keepalive
xconnect 10.10.10.1 333 encapsulation mpls
end
Можно проверить сам xconnect
1000v2#sh xconnect all detail
Legend: XC ST=Xconnect State S1=Segment1 State S2=Segment2 State
UP=Up DN=Down AD=Admin Down IA=Inactive
SB=Standby HS=Hot Standby RV=Recovering NH=No Hardware
XC ST Segment 1 S1 Segment 2 S2
------+---------------------------------+--+---------------------------------+--
UP pri ac Gi3:7(Ethernet) UP mpls 10.10.10.1:333 UP
Interworking: none Local VC label 16
Remote VC label 16
Все Ок. Но трафик от одного клиента до другого не пойдет... Я потратил некоторое время на перепроверку конфига, но "дело было не в бобине". Снова пришлось расчехлять wireshark.
Конечно же, я гоняю всю топологию виртуально. На все том же ESXi. На самом деле, между каждой парой устройств присутствует vSwitch коммутатор, который в нашем случае и влияет на процесс. Реальная топология выглядит следующим образом.
Как видно, TC1 отправляет ARP в сторону TC2.
Такой запрос доходит до TC2 и тот генерирует ответ. Только вот ответ этот уже не доходит до TC1...
Решается это включением Promiscuous Mode на паре коммутаторах между клиентами и роутерами. После чего, пинг проходит.
ARP Reply добегает от TC2 до TC1. Вот хоть убей не понимаю почему? Думал, что может MAC адреса меняются как-то, но нет. Эх, жаль нельзя "подебажить" сами виртуальные коммутаторы... вот почему, я хочу вытащить всю коммутацию на отдельную железку. Если у читателей есть какие-то догадки, пишите в комментарии. Может вместе удастся разобраться.
Ну да ладно,
VPWS на CSR 1000v работает. Данные ходят, в отличии от XRv и vMX, vSRX.
VPLS
Погнали, VPLS.
Для начала удаляем все, что связано с xconnect... Эх, никаких роллбэков...
Затем, нужно сделать симметричную конфигурацию на двух узлах. Создаем VFI, настраиваем service instance и связываем две эти сущности в bridge-domain. Подробнее об этом можно почитать на Linkmeup, например.
На 1000v1
l2vpn vfi context VPLS
vpn id 333
member 2.2.2.2 encapsulation mpls
interface GigabitEthernet3
service instance 1 ethernet
description VPLS
encapsulation default
bridge-domain 333
member GigabitEthernet3 service-instance 1
member vfi VPLS
На 1000v2
l2vpn vfi context VPLS
vpn id 333
member 1.1.1.1 encapsulation mpls
interface GigabitEthernet3
service instance 1 ethernet
description VPLS
encapsulation default
bridge-domain 333
member GigabitEthernet3 service-instance 1
member vfi VPLS
Сразу проверяем, пинги ходят.
Для спокойствия, проверяем и на железке тоже. Bridge-domain поднят, изученные MAC адреса видно.
1000v2#sh bridge-domain 333
Bridge-domain 333 (2 ports in all)
State: UP Mac learning: Enabled
Aging-Timer: 300 second(s)
GigabitEthernet3 service instance 1
vfi VPLS neighbor 1.1.1.1 333
MAC address Policy Tag Age Pseudoport
000C.29FB.F1AF forward dynamic 211 GigabitEthernet3.EFP1
000C.29DB.F9C5 forward dynamic 210 VPLS.1001011
FFFF.FFFF.FFFF flood static 0 OLIST_PTR:0xeb2f1800
И вновь,
VPLS на CSR 1000v работает. Данные ходят, в отличии от XRv и vMX, vSRX.
В качестве заключения.
Как-то в последне время меня бросает от одной темы к другой. Так уж получается. Много думал в последнее время, и решил - иду на CCNP. Пора уже досдать. Вероятно, ближайшие посты будут в большей мере касаться подготовки к CCNP. Также не планирую забрасывать посты по Juniper. Уже есть посты по OSPF, лаба тоже закончена. Впереди меня уже ждет IS-IS.
До встречь.
Комментариев нет:
Отправить комментарий