antiCisco blogs


блоги по технологиям и оборудованию cisco от инструкторов

Опубликовано 18 Февраль , 2016

1. VPLS BGP Autodiscovery + LDP Signaling
Иногда у конечного заказчика возникает необходимость объединить свои удаленные офисы в один широковещательный сегмент.
На помощь поставщику услуг в данном случае может придти технология, которая называется Virtual Private Lan Services (VPLS). Ее суть в том, что все MPLS облако провайдера предоставляет для заказчика прозрачный L2-коммутатор.
Разберемся как работает VPLS на конкретной задаче. Пусть существует заказчик, у которого есть 3 удаленных офиса (A, B и C) в разных городах.1

Что может сделать провайдер, чтобы удовлетворить потребности заказчика:
- Можно настроить статические EoMPLS туннели, объединив все PE-коммутаторы в full-mesh топологию. Очевидно, что такой вариант хоть и является работоспособным, но он не сильно масштабируем. В этом примере мы его не рассматриваем.
- Альтернативным вариантом является технология, именуемая BGP Autodiscovery. В этом случае между PE маршрутизаторами поднимается MP-BGP для адресного семейства l2vpn vpls.
2
В рамках настроенной сессии маршрутизаторы решают, есть ли у них клиенты в одном VPLS облаке (происходит обмен RT, аналогично MPLS L3 VPN). Если такие клиенты есть, то маршрутизаторы начинают процесс обмена VPN метками. Данный обмен может происходить либо нативно с помощью BGP, либо посредством установления target ldp-сессии. В данном примере мы рассмотрим настройку с ldp сигнализацией.
3 Исходными данными для построения VPLS облака является полностью рабочий IGP Core и MPLS транспорт.

PE-A#ping 150.2.2.2 so Lo0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 150.2.2.2, timeout is 2 seconds:
Packet sent with a source address of 150.5.5.5
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 7/16/31 ms
PE-A#ping 150.3.3.3 so Lo0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 150.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 150.5.5.5
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 12/20/35 ms

PE-A#show mpls forwarding-table 150.3.3.3
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop
Label      Label      or Tunnel Id     Switched      interface
18         17         150.3.3.3/32     0             Gi1.15     155.1.5.1
После того, как транспорт готов, приступаем к настройке PE-CE линка.
На CE-устройстве настройка интерфейса простейшая:
CE-A#sh run int Gi3
interface GigabitEthernet3
ip address 10.6.7.6 255.255.255.0
no shutdown
Настройка порта на PE несколько интереснее:
PE-A#sh run int GI2
interface GigabitEthernet2
no ip address
negotiation auto
service instance 1 ethernet
encapsulation default
Service Instance (SI) 1 – это виртуальная сущность, на которую будет заворачиваться трафик, приходящий на интерфейс Gi2 маршрутизатора PE-A и удовлетворяющий условию encapsulation default, что значит «весь трафик». Можно создавать несколько таких SI и заворачивать в них трафик из разных пользовательских vlan-сетей, использую следующую конструкцию:
service instance 10 ethernet
encapsulation dot1q 10
В данном примере, трафик из vlan 10 попадут на SI 10.
Прим. Конфиг интерфейса обрабатывается сверху вниз, а это значит, что если encapsulation default будет стоять первым, то вне зависимости от того, какие SI вы сконфигурируете ниже, весь трафик будет попадать на SI, ассоциированный с encapsulation default
Прим. Можете относиться к SI, как к порту коммутатора, который смотрит в сторону CE
Следующим шагом поднимаем MP-BGP сессии между PE маршрутизаторами. Если PE маршрутизаторово много, то целесообразно использовать route-reflector’ы.
4
В этом случае настройка BGP на всех PE будет одинаковой
router bgp 65100
no bgp default ipv4-unicast
neighbor 150.1.1.1 remote-as 65100
neighbor 150.1.1.1 update-source Lo0
address-family l2vpn vpls
neighbor 150.1.1.1 activate
neighbor 150.1.1.1 send-community both
Настройка RR:
VPLS-RR#sh run | s router bgp
router bgp 65100
bgp log-neighbor-changes
no bgp default ipv4-unicast
neighbor IBGP-VPLS peer-group
neighbor IBGP-VPLS remote-as 65100
neighbor IBGP-VPLS update-source Loopback0
neighbor 150.2.2.2 peer-group IBGP-VPLS
neighbor 150.3.3.3 peer-group IBGP-VPLS
neighbor 150.5.5.5 peer-group IBGP-VPLS
!
address-family ipv4
exit-address-family
!
address-family l2vpn vpls
neighbor 150.2.2.2 activate
neighbor 150.3.3.3 activate
neighbor 150.5.5.5 activate
exit-address-family
VPLS-RR#show bgp l2vpn vpls all summary
BGP router identifier 150.1.1.1, local AS number 65100
BGP table version is 1, main routing table version 1

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
150.2.2.2       4        65100       6       6        1    0    0 00:02:30        0
150.3.3.3       4        65100       6       4        1    0    0 00:02:26        0
150.5.5.5       4        65100       6       4        1    0    0 00:02:22        0
На данном этапе у нас готова BGP сессия для обмена “L2 префиксами”.
Следующим шагом настройки является создание Virtual Forwarding Instance (VFI) на PE маршрутизаторах. VFI – это виртуальная сущность, которая отвечает за передачу трафика от SI в VPLS облако.
5
Прим. Можете относиться к VFI как к uplink коммутатора
В минимальной настройке будет достаточно следующей конструкции на РЕ-маршрутизаторах:
l2vpn vfi context VPLS_BGP-LDP
vpn id 50
autodiscovery bgp signaling ldp
Что такое vpn id и для чего нужно – рассмотрим парой абзацев ниже.
Следующим шагом необходимо указать маршрутизатору о том, что SI и VFI являются частями одного целого (т.е. что виртуальные порты SI и VFI относятся к одному vlan виртуального коммутатора). Делается эта операция посредством создания bridge-domain.
PE-A#sh run | s bridge-domain
bridge-domain 70
member GigabitEthernet2 service-instance 1
member vfi VPLS_BGP-LDP
Посмотрим содержимое BGP
PE-A#show bgp l2vpn vpls all
BGP table version is 6, local router ID is 150.5.5.5
Status codes: s suppressed, d damped, h history, * valid, > best, i — internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
Origin codes: i — IGP, e — EGP, ? — incomplete
RPKI validation codes: V valid, I invalid, N Not found

Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 65100:50
*>  65100:50:150.5.5.5/96
0.0.0.0                            32768 ?
Появился некий префикс 65100:50:150.5.5.5, состоящий из rd = 65100:50 и 150.5.5.5. Хочу отметить, что rd вручную мы не конфигурировали. Он генерируется Cisco IOS автоматически и состоит из номера AS и vpn id, который был указан при конфигурации vfi. Посмотрим на информацию в таблице более внимательно
PE-A#show bgp l2vpn vpls rd 65100:50 150.5.5.5
BGP routing table entry for 65100:50:150.5.5.5/96, version 4
Paths: (1 available, best #1, table L2VPN-VPLS-BGP-Table)
Advertised to update-groups:
1
Refresh Epoch 1
Local
0.0.0.0 from 0.0.0.0 (150.5.5.5)
Origin incomplete, localpref 100, weight 32768, valid, sourced, local, best, AGI version(0)
Extended Community: RT:65100:50 L2VPN AGI:65100:50
mpls labels in/out exp-null/exp-null
rx pathid: 0, tx pathid: 0×0
Что сразу бросается в глаза, так это тот факт, что Extended Community Route-Target было сконфигурировано автоматически таким же образом, как и rd. Есть также параметр L2VPN AGI, который выбран абсолютно идентичным образом.
Прим. Читателям, уже знакомым с MPLS L3VPN понятия rd и RT уже знакомы. Однако AGI – новый аттрибут, который расшифровывается как Attachment Group Identifier. Согласно RFC4667 он обязан совпадать на PE-соседях для каждого VPLS облака.
Прим. Если по каким-либо причинам Вам не подходят  автоматически сконфигурированные значения  rd и RT Вы можете их задать вручную:
PE-A(config)#l2vpn vfi context VPLS_BGP-LDP
PE-A(config-vfi)#autodiscovery bgp signaling ldp
PE-A(config-vfi-autodiscovery)#?
L2VPN vfi autodiscovery configuration commands:
auto-route-target  Automatically set a route-target
default            Set a command to its defaults
exit               Exit from L2VPN vfi autodiscovery configuration mode
no                 Negate a command or set its defaults
rd                 Specify Route Distinguisher
route-target       Specify Route Target VPN Extended Communities
vpls-id            Specify VPLS-ID Extendended Community // настройка L2VPN AGI
Переходим к настройке PE-B и PE-C:
PE-B#sh run int gi2
interface GigabitEthernet2
no ip address
negotiation auto
service instance 10 ethernet
encapsulation dot1q 710
!
service instance 20 ethernet
encapsulation default
PE-C#sh run int gi2
interface GigabitEthernet2
no ip address
negotiation auto
service instance 10 ethernet
encapsulation dot1q 710
!
service instance 20 ethernet
encapsulation default
Если сейчас посомтреть на BGP таблицу на РЕ, то можно заметить, что каждый РЕ знает только о локальных префиксах, но не о префиксах других РЕ.
PE-A#show bgp l2vpn vpls all
BGP table version is 10, local router ID is 150.5.5.5
Status codes: s suppressed, d damped, h history, * valid, > best, i — internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
Origin codes: i — IGP, e — EGP, ? — incomplete
RPKI validation codes: V valid, I invalid, N Not found

Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 65100:50
*>  65100:50:150.5.5.5/96
0.0.0.0                            32768 ?
PE-A#show bgp l2vpn vpls all summary
BGP router identifier 150.5.5.5, local AS number 65100
BGP table version is 10, main routing table version 10
1 network entries using 264 bytes of memory
1 path entries using 136 bytes of memory
1/1 BGP path/bestpath attribute entries using 248 bytes of memory
1 BGP extended community entries using 40 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 688 total bytes of memory
BGP activity 5/4 prefixes, 5/4 paths, scan interval 60 secs

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
150.1.1.1       4        65100      59      58       10    0    0 00:41:42        0
PE-B#show bgp l2vpn vpls all     
BGP table version is 7, local router ID is 150.2.2.2
Status codes: s suppressed, d damped, h history, * valid, > best, i — internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
Origin codes: i — IGP, e — EGP, ? — incomplete
RPKI validation codes: V valid, I invalid, N Not found

Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 65100:50
*>  65100:50:150.2.2.2/96
0.0.0.0                            32768 ?
Route Distinguisher: 65100:710
*>  65100:710:150.2.2.2/96
0.0.0.0                            32768 ?
PE-C#show bgp l2vpn vpls all
BGP table version is 8, local router ID is 150.3.3.3
Status codes: s suppressed, d damped, h history, * valid, > best, i — internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
Origin codes: i — IGP, e — EGP, ? — incomplete
RPKI validation codes: V valid, I invalid, N Not found

Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 65100:50
*>  65100:50:150.3.3.3/96
0.0.0.0                            32768 ?
Route Distinguisher: 65100:710
*>  65100:710:150.3.3.3/96
0.0.0.0                            32768 ?
Почему же так происходит? RR не имеет установленных префиксов в свою BGP таблицу
VPLS-RR#show bgp l2vpn vpls all summary
BGP router identifier 150.1.1.1, local AS number 65100
BGP table version is 1, main routing table version 1

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
150.2.2.2       4        65100      57      61        1    0    0 00:45:02        0
150.3.3.3       4        65100      57      60        1    0    0 00:44:59        0
150.5.5.5       4        65100      62      62        1    0    0 00:44:54        0
Попробуем понять в чем проблема:
VPLS-RR#debug bgp l2vpn vpls updates
BGP updates debugging is on for address family: L2VPN Vpls
*Feb 18 09:49:09.844: BGP(9): 150.2.2.2 rcvd UPDATE w/ attr: nexthop 150.2.2.2, origin ?, localpref 100, metric 0, extended community RT:65100:50 L2VPN AGI:65100:50
*Feb 18 09:49:09.844: BGP(9): 150.2.2.2 rcvd 65100:50:150.2.2.2/96 — DENIED due to:  extended community not supported;
*Feb 18 09:49:09.844: BGP(9): 150.2.2.2 rcvd UPDATE w/ attr: nexthop 150.2.2.2, origin ?, localpref 100, metric 0, extended community RT:65100:710 L2VPN AGI:65100:710
*Feb 18 09:49:09.844: BGP(9): 150.2.2.2 rcvd 65100:710
VPLS-RR#:150.2.2.2/96 — DENIED due to:  extended community not supported;
VPLS-RR#
*Feb 18 09:49:12.515: BGP(9): 150.3.3.3 rcvd UPDATE w/ attr: nexthop 150.3.3.3, origin ?, localpref 100, metric 0, extended community RT:65100:50 L2VPN AGI:65100:50
*Feb 18 09:49:12.516: BGP(9): 150.3.3.3 rcvd 65100:50:150.3.3.3/96DENIED due to:  extended community not supported
Все дело в том, что инсталляция префиксов в таблицу происходит согласно community RT. Но RR не имеет локально сконфигурированных vfi и не имеет понятия о RT. Чтобы RR устаналивал все префиксы несмотря на community RT необходимо ввести одну команду
VPLS-RR(config-router)#no bgp default route-target filter
*Feb 18 09:53:14.806: BGP(9): 150.2.2.2 rcvd UPDATE w/ attr: nexthop 150.2.2.2, origin ?, localpref 100, metric 0, extended community RT:65100:710 L2VPN AGI:65100:710
*Feb 18 09:53:14.806: BGP(9): 150.2.2.2 rcvd 65100:710:150.2.2.2/96
*Feb 18 09:53:14.806: BGP(9): bump net 65100:710:150.2.2.2/96, non bpath  added
*Feb 18 09:53:14.806: BGP: nbr_topo global 150.2.2.2 L2VPN Vpls:base (0x7F411253FE20:1) rcvd Refresh End-of-RIB
*Feb 18 09:53:14.806: BGP(9): nettable_walker called
VPLS-RR# for 65100:50:150.2.2.2/96
*Feb 18 09:53:14.806: BGP(9): best path[0] 65100:50:150.2.2.2/96 source 150.1.1.1 nh 150.2.2.2 vpls-id: L2VPN AGI:65100:50
*Feb 18 09:53:14.806: BGP(9): add XC RIB route 65100:50:150.2.2.2/96 masklen 96 L2VPN AGI:65100:50 pathcount: 1 [0] LDP source:150.1.1.1 nexthop:150.2.2.2 RT:65100:50
Видно, что префиксы успешно установились
VPLS-RR#show bgp l2vpn vpls all summary
BGP router identifier 150.1.1.1, local AS number 65100
BGP table version is 13, main routing table version 13
6 network entries using 1584 bytes of memory
6 path entries using 816 bytes of memory
3/3 BGP path/bestpath attribute entries using 744 bytes of memory
3 BGP extended community entries using 120 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 3264 total bytes of memory
BGP activity 6/0 prefixes, 6/0 paths, scan interval 60 secs

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
150.2.2.2       4        65100      68      68       13    0    0 00:50:50        2
150.3.3.3       4        65100      70      66       13    0    0 00:50:46        3
150.5.5.5       4        65100      71      68       13    0    0 00:50:42        1
Также префиксы появились на PE устройствах.
PE-A#show bgp l2vpn vpls all summary
BGP router identifier 150.5.5.5, local AS number 65100
BGP table version is 16, main routing table version 16
3 network entries using 792 bytes of memory
3 path entries using 408 bytes of memory
4/2 BGP path/bestpath attribute entries using 992 bytes of memory
2 BGP rrinfo entries using 80 bytes of memory
3 BGP extended community entries using 120 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 2392 total bytes of memory
BGP activity 7/4 prefixes, 7/4 paths, scan interval 60 secs

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
150.1.1.1       4        65100      12       6       16    0    0 00:00:17        2
Более того, как только прилетели префиксы, в консоли можно было наблюдать сообщения вида
*Feb 18 09:55:13.391: %LDP-5-NBRCHG: LDP Neighbor 150.2.2.2:0 (2) is UP
*Feb 18 09:55:13.433: %LDP-5-NBRCHG: LDP Neighbor 150.3.3.3:0 (3) is UP
Т.е. были установлены target LDP сессии между теми PE-маршрутизаторами, которые терминируют на себе одно и тоже VPLS облако. В рамках этой сессии и будет происходить обмен VPN метками.
PE-A#sh mpls ldp neighbor
Peer LDP Ident: 150.1.1.1:0; Local LDP Ident 150.5.5.5:0
TCP connection: 150.1.1.1.646 — 150.5.5.5.19296
State: Oper; Msgs sent/rcvd: 11584/11567; Downstream
Up time: 1w0d
LDP discovery sources:
GigabitEthernet1.15, Src IP addr: 155.1.5.1
Addresses bound to peer LDP Ident:
155.1.2.1       155.1.5.1       155.1.11.1      155.1.12.1
150.1.1.1
Peer LDP Ident: 150.2.2.2:0; Local LDP Ident 150.5.5.5:0
TCP connection: 150.2.2.2.646 — 150.5.5.5.39195
State: Oper; Msgs sent/rcvd: 18/18; Downstream
Up time: 00:04:29
LDP discovery sources:
Targeted Hello 150.5.5.5 -> 150.2.2.2, active, passive
Addresses bound to peer LDP Ident:
155.1.2.2       155.2.3.2       150.2.2.2
Peer LDP Ident: 150.3.3.3:0; Local LDP Ident 150.5.5.5:0
TCP connection: 150.3.3.3.646 — 150.5.5.5.37716
State: Oper; Msgs sent/rcvd: 18/18; Downstream
Up time: 00:04:29
LDP discovery sources:
Targeted Hello 150.5.5.5 -> 150.3.3.3, active, passive
Addresses bound to peer LDP Ident:
155.2.3.3       150.3.3.3
Если РЕ маршрутизаторы не терминируют на себе один и тот же VPLS (напр. Не совпадает L2VPN AGI, то LDP сессия установлена не будет). Это можно наглядно наблюдать:
PE-B(config)#l2vpn vfi context VPLS_BGP-LDP
PE-B(config-vfi)#autodiscovery bgp signaling ldp
PE-B(config-vfi-autodiscovery)#vpls-id 65100:55
PE-B#
*Feb 18 10:03:10.723: %SYS-5-CONFIG_I: Configured from console by console
*Feb 18 10:03:10.760: %LDP-5-NBRCHG: LDP Neighbor 150.5.5.5:0 (3) is DOWN (AToM disabled targeted session)
PE-A#*Feb 18 10:03:10.643: %LDP-5-NBRCHG: LDP Neighbor 150.2.2.2:0 (2) is DOWN (Received error notification from peer: Holddown time expired)
Прим. После такого теста не забудьте вернуть конфигурацию на исходную.
Посмотреть установленные логические Virtual Circuit между PE маршрутизаторами можно командой show mpls l2transport vc
PE-A#show mpls l2transport vc

Local intf     Local circuit              Dest address    VC ID      Status
————-  ————————— ————— ———- ———-
VFI VPLS_BGP-LDP  \
vfi                        150.2.2.2       50         UP
VFI VPLS_BGP-LDP  \
vfi                        150.3.3.3       50         UP
PE-B#show mpls l2transport vc

Local intf     Local circuit              Dest address    VC ID      Status
————-  ————————— ————— ———- ———-
VFI VPLS_BGP-LDP  \
vfi                        150.3.3.3       50         UP
VFI VPLS_BGP-LDP-VLAN710  \
vfi                        150.3.3.3       710        UP
VFI VPLS_BGP-LDP  \
vfi                        150.5.5.5       50         UP
PE-C#sh mpls l2transport vc

Local intf     Local circuit              Dest address    VC ID      Status
————-  ————————— ————— ———- ———-
VFI VPLS_BGP-LDP  \
vfi                        150.2.2.2       50         UP
VFI VPLS_BGP-LDP-VLAN710  \
vfi                        150.2.2.2       710        UP
VFI VPLS_BGP-LDP  \
vfi                        150.5.5.5       50         UP
Обратите внимание, что между PE-B и PE-C установлено 2 VC, т.к. между этими устройствами пробрасывается 2 VPLS облако (одно для vlan 710 и одно default для всего трафика, которое затрагивает и PE-A).
6
Проверим доступность узлов:
- instance для default
CE-A#ping 10.1.0.7
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.0.7, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 11/15/19 ms
CE-A#ping 10.1.0.10
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.0.10, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 5/5/7 ms
CE-C# ping 10.1.0.6
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.0.6, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 14/18/25 ms
CE-C# ping 10.1.0.10
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.0.10, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/11/19 ms
CE-B#ping 10.1.0.6
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.0.6, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 14/22/39 ms
CE-B#ping 10.1.0.7
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.0.7, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 9/11/14 ms
-    Instance для vlan 710
CE-B#ping 10.7.10.7
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.7.10.7, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 11/12/16 ms

Хотелось бы обратить Ваше ванимание на следующий факт: VPLS представляет собой эмуляцию коммутатора, в котором действуют все основные правила форвардинга и изучения MAC адресов. Посмотреть MAC таблицу можно командой show bridge-domain
PE-B#show bridge-domain
Bridge-domain 70 (3 ports in all)
State: UP                    Mac learning: Enabled
Aging-Timer: 300 second(s)
GigabitEthernet2 service instance 20
vfi VPLS_BGP-LDP neighbor 150.3.3.3 50
vfi VPLS_BGP-LDP neighbor 150.5.5.5 50
MAC address    Policy  Tag       Age  Pseudoport
5000.000A.0001 forward dynamic   230  GigabitEthernet2.EFP20
5000.0007.0001 forward dynamic   230  VPLS_BGP-LDP.1001020
FFFF.FFFF.FFFF flood   static    0    OLIST_PTR:0xe807e870
5000.0006.0002 forward dynamic   229  VPLS_BGP-LDP.1001021

Bridge-domain 710 (2 ports in all)
State: UP                    Mac learning: Enabled
Aging-Timer: 300 second(s)
GigabitEthernet2 service instance 10
vfi VPLS_BGP-LDP-VLAN710 neighbor 150.3.3.3 710
MAC address    Policy  Tag       Age  Pseudoport
FFFF.FFFF.FFFF flood   static    0    OLIST_PTR:0xe807e820
5000.000A.0001 forward dynamic   259  GigabitEthernet2.EFP10
5000.0007.0001 forward dynamic   259  VPLS_BGP-LDP-VLAN710.100101f
В выводе листинга показываются как локально изученные MAC адреса (через интерфейс Gi2), так и те, которые были изучены через vfi интерфейсы.
Точно также, как и обычный коммутатор, через VPLS возможна передача мультикаст и широковещательного трафика. И этот факт может привести к проблеме, т.к. все PE маршрутизаторы связаны в full-mesh топологию (в рамках одного VPLS облака).
7
Чтобы этого не было, действует правило split-horizon: если пакет (фрейм) получен через виртуальный (VC) интерфейс, то такой пакет нельзя отсылать обратно в VPLS облако.

8
2. BGP Signaling

В примере выше мы рассмотрели ситуацию, в которой BGP используется исключения для нахождения PE-маршрутизаторов, которые относятся к одному VPLS облаку. Как только соседи найдены, между ними строятся full-mesh target ldp сессии. Т.е. по факту используются дополнительные control-plane сессии для обмена VPN метками. Есть возможность перенести данный функционал непосредственно на MP-BGP.
С точки зрения настройки все просто. Сначала необходимо для конкретного vfi задать в качестве протокола сигнализации bgp.
l2vpn vfi context VPLS_BGP-LDP-VLAN710
vpn id 710
autodiscovery bgp signaling bgp
ve id 102
ve range 15
Затем необходимо отключить ldp-сигнализацию для bgp-соседа.
PE-C(config-router-af)#neigh 150.1.1.1 suppress-signaling-protocol ldp
Проверяем связность:
CE-B#ping 10.7.10.7
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.7.10.7, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/12/27 ms
CE-B#ping 10.1.0.7  
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.0.7, timeout is 2 seconds:
…..
Success rate is 0 percent (0/5)
Как видите у нас есть связь внутри VLAN710, но отсутствует для общего VPLS облака. Дело в том, что в конкретном примере мы перевели на BGP-сигнализацию только vfi VLAN710 и отключили ldp-сигнализацию.
Проверим BGP таблицу для нашего vfi:
PE-B# show bgp l2vpn vpls rd 65100:710
BGP table version is 37, local router ID is 150.2.2.2
Status codes: s suppressed, d damped, h history, * valid, > best, i — internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
Origin codes: i — IGP, e — EGP, ? — incomplete
RPKI validation codes: V valid, I invalid, N Not found

Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 65100:710
*>  65100:710:VEID-102:Blk-90/136
0.0.0.0                            32768 ?
*>i 65100:710:VEID-103:Blk-90/136
150.3.3.3                0    100      0 ?
Как видите, изменился формат префикса. Рассмотрим его более подробно:
PE-B# show bgp l2vpn vpls rd 65100:710 ve-id 103 block-offset 90
BGP routing table entry for 65100:710:VEID-103:Blk-90/136, version 37
Paths: (1 available, best #1, table L2VPN-VPLS-BGP-Table)
Not advertised to any peer
Refresh Epoch 1
Local
150.3.3.3 (metric 2) from 150.1.1.1 (150.1.1.1)
Origin incomplete, metric 0, localpref 100, valid, internal, best
AGI version(0), VE Block Size(15) Label Base(26)
Extended Community: RT:65100:710 L2VPN L2:0×0:MTU-1500
Originator: 150.3.3.3, Cluster list: 150.1.1.1
mpls labels in/out exp-null/26
rx pathid: 0, tx pathid: 0×0
Из листинга видно, что полный L2 маршрут состоит из rd, ve-id (VPLS Endpoint Identificator), ve block size и ve block offset. Подробное описание этих параметров приведено в RFC4761 (секция 3.2.1). Но в целом, параметр VE range (VE Block Size) должен быть больше или равен числу VPLS облаков, терминируемых на устройстве.
Также обратите внимание, что в листинге для префикса указана mpls out label = 26. Это и есть VPN метка, полученная по BGP от соседа 150.3.3.3 (PE-C).

 

Метки: , ,
Опубликовано: Service Provider , Маршрутизаторы и коммутаторы

 

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

Вы должны войти чтобы прокомментировать.