After getting myself some exposure
to EVPN by testing technologies such as VXLAN EVPN and EVPN VPWS, I wanted to
take it a bit further to learn more about the EVPN with MPLS. Studying EVPN VPWS did help me understand EVPN’s
BGP control plane operation and behavior, however it was a bit simplified and therefore felt a bit cheated since it didn't fully utilize the features of BGP. With that in mind, my next obvious step was to build and test out a
multi-point EVPN solution following RFC 7432. I’d figured going through the process of building this lab would allow me
to maximize my understanding of the BGP control plane and MPLS data plane operations.
According to my research, it appeared that Cisco never released EVPN from a traditional RFC 7432 perspective. The only EVPN documentation that I found in the Cisco world was EVPN with Provider Backbone Bridging (RFC 7623),
otherwise known as PBB-EVPN. I guess Cisco
found a better use case to go with PBB-EVPN rather than to stick with the
traditional EVPN and decided to only integrate that into their code? In any case, I’m always up for learning new
technologies, so I took some time to lab this up.
As with my other posts, my focus was to look at the overall configuration and operational side of things. I’ll do
my best to explain the gist of the technology but since there are so many well written technical articles on PBB-EVPN, I would suggest reading
those to get a good understanding of the technology. I have some of these articles linked
throughout the post and also have a list in the references section, so please take
a look.
Lab Environment
Note: From my
research, it doesn’t look like IOS XE has any support for PBB-EVPN. However IOS XR does starting as of release 4.3.x.
For this lab, I provisioned IOS XRv and
attached these resources to the existing IP/MPLS core network.
Also as a very
important note, it appeared that IOS XRv (as of version tested) does NOT
have data plane support for L2VPN technologies, including PBB-EVPN. Please see this post for further info. This meant that data plane verification could NOT be performed (although
control plane could be verified). This
was a very big disappointment to say the least.
For true data plane support, I would need to run actual ASR 9K hardware,
and I simply didn’t have access to that.
- (3) IOS XRv: Version 6.1.2 (Demo)
Diagram and Topology
Three additional PEs (PE_XR01, PE_XR02 and PE_XR03) were
added to existing IP/MPLS core network and three additional CEs (CE_R27, CE_R28
and CE_R29) were attached to those PEs respectively. The customer ELAN was then created between
the three PEs and using the CE devices as end hosts.
Unfortunately, I was unable to test a key component of EVPN,
which was the ability to multi-home between the CE and PE. The IOS XRv images tested did not support the
Multi-Chassis Link Aggregation protocol (MC-LAG), which was key in getting that
configured. A quick discussion can be
found here
regarding MC-LAG support in IOS XRv.
- Infrastructure Information
- PE_XR01, PE_XR02 and PE_XR03 iBGP to Route Reflector (R11)
- CUSTOMER F
- CE IP Address: 172.16.4.0/24
- ELAN Name: CUSTOMER_F_ELAN
- VPN ID (EVI): 40
- Customer VLAN: 400
- CE AC Interface: Gig1
- PE AC Interface: Gig0/0/0/1
- PBB Customer Backbone Service Instance Identifier (I-SID): 40400
Technology Overview
Here were some good informational slides I found on the
technology. It will cover common terms
and acronyms that are used throughout this post.
PBB-EVPN Summary
- Next generation of multipoint L2VPN Ethernet services.
- Uses BGP as control plane protocol for increased scalability.
- Continues to use the existing MPLS network for data plane forwarding.
- Primary use case for Datacenter Interconnects (DCI) due to the number of MAC addresses learning requirements.
PBB-EVPN Benefits
- Advanced Multi-Homing capabilities: All Active & Per Flow Load Balancing.
- Uses a MAC-in-MAC encapsulation to increase core scalability for MAC advertisements.
- Promotes fast convergence and lower overhead.
- Familiar operations using BGP/MPLS/IP data plane forwarding in the core.
PBB-EVPN Key Operational Concepts
Combined two different technologies to get the benefits of each. Provider Backbone Bridging (IEEE 802.1ah) + Ethernet VPN for MPLS (RFC 7432) = PBB-EVPN (RFC 7623).
Combined two different technologies to get the benefits of each. Provider Backbone Bridging (IEEE 802.1ah) + Ethernet VPN for MPLS (RFC 7432) = PBB-EVPN (RFC 7623).
- PBB
- Two Bridge domain concept to create a clear separation between the core and edge. Customer Bridge Domain (I-Component) & Core Bridge Domain (B-Component). See “Bridge Domain” diagram below.
- Learns Customer MACs (C-MAC) on the data plane of provider edge routers (PE) in Customer Bridge domain.
- Maps/binds multiple C-MACs to single PE’s Backbone MAC (B-MACs) in the Core Bridge Domain to reduce the overall number of MAC addresses required of the core to learn and advertise. B-MACs forwards within the Core Bridge Domain. Also known as MAC-in-MAC encapsulation due to C-MACs being aggregated to a B-MAC.
- EVPN
- Uses MP-BGP control plane protocol to learn and advertise the PE’s B-MACs.
- BGP only learns/advertises B-MACs in the core (i.e., no C-MACs are seen here), whereas traditional EVPN learns all C-MACs in the core.
- Continues to use the existing MPLS network for data plane forwarding. Service providers do not need to modify their core networks to add PBB-EVPN services.
PBB-EVPN Key Components Overview
- I-SID (Instance Service Identifier or also referred to as the Backbone Service Identifier )
- Unique and global on the PBB backbone which identifies service instance (i.e., customers).
- Maps the I-Component to its associated B-Component.
- Uses 24 bits, so can have over 16 million service instances.
- As traditional 802.1ad (Q-in-Q or Provider Bridges) networks used a 12 bit Service VLAN ID (S-VID) as service instance identifier, it was only limited to 4096 service instances. However, with the introduction of the 24 bit I-SID in PBB, it now allows over 16 million service instances to be defined.
- I-Component (Instance Component)
- Known as the “customer side” edge bridge.
- Data plane MAC learning and forwarding.
- Maps customer traffic to I-SID.
- C-MAC to B-MAC mapping and forwarding.
- B-Component (Backbone Component)
- Known as the “backbone side” edge bridge.
- Control plane (BGP) learning and forwarding.
- Forwarding only between B-MACs.
- Maps I-SID to MPLS labels.
- EVI (EVPN Instance)
- Identifies the VPN in the IP/MPLS network and spans on all participating PE routers. Analogous to a VRF used in a L3VPN and sometimes referred to as a L2 VRF.
EVPN BGP Routes
Overview
EVPN introduced many new BGP route types as explained in
this article. However for the purposes of PBB-EVPN, only a
subset of these routes were used.
- New BGP NLRI for PBB-EVPN and will use route types 2 – 4.
- New BGP Subsequent Address Family Identifiers (SAFI) 70 to define BGP EVPN.
EVPN BGP Route Types
- Type 1: EAD routes were technically not required in PBB-EVPN. See RFC 7623 Sec 5.1 for more details.
- Type 2: MAC Advertisement routes were used to advertise the MAC to IP association. However, in PBB-EVPN, B-MACs from all the PEs were advertised as type 2 routes.
- Type 3: Inclusive Multicast routes were used for Broadcast, Unknown Unicast and Multicast (BUM) traffic delivery in EVPN networks. It's also used for PE auto discovery so it could setup a LSP based multicast tunnel (MP2P, P2P, P2MP, or MP2MP) for the I-SID.
- Type 4: ES routes were used in a multi-homing scenario. It was used to identify each “leg” or connection to the different PEs and also used to elect a designated forwarder.
EVPN BGP Extended Communities
Extended communities provided a mechanism to embed additional information into a MP-BGP route. In PBB-EVPN, the following new extended communities were used.
Extended communities provided a mechanism to embed additional information into a MP-BGP route. In PBB-EVPN, the following new extended communities were used.
- The ESI label extended community was not used in PBB-EVPN per RFC 7623 (Section 5.5). It was only relevant with Type 1 EAD routes, which PBB-EVPN didn't use.
- The ES-Import extended community are carried in Type 4 Ethernet Segment routes. It was used in a multi-homing scenario which allowed the importing of routes from all PEs with the same Ethernet Segment Identifier (ESI).
- The MAC Mobility extended community was used to communicate to the PEs that a MAC move from one PE to another took place. It was used to prevent traffic black-holing between PEs when multiple PEs advertised the same MAC route. With PBB-EVPN, the MAC mobility extended community sent from the new PE signaled the original PE to flush all C-MAC addresses associated with the B-MAC in the corresponding I-SID.
- The Default Gateway extended community was not used in PBB-EVPN per RFC 7623 (Section 5.8).
Configurations
Configurations below are from the three new PEs. The MPLS core configurations has not changed.
Configurations below are from the three new PEs. The MPLS core configurations has not changed.
PE_XR01
hostname PE_XR01
logging console debugging
logging buffered debugging
telnet vrf MGMT ipv4 server max-servers 10
telnet vrf default ipv4 server max-servers 10
domain name domain.local
domain lookup disable
vrf MGMT
description MANAGEMENT
vpn id 1:1
address-family ipv4 unicast
!
!
line default
exec-timeout 60 0
transport input telnet ssh
!
interface Loopback0
description RID
ipv4 address 101.101.101.101 255.255.255.255
!
interface MgmtEth0/0/CPU0/0
description MANAGEMENT
vrf MGMT
ipv4 address 10.1.1.209 255.255.255.0
!
interface GigabitEthernet0/0/0/0
bandwidth 100
mtu 9000
!
interface GigabitEthernet0/0/0/0.38
description TO P_R01
bandwidth 100
mtu 9000
ipv4 address 10.1.1.58 255.255.255.252
encapsulation dot1q 38
!
interface GigabitEthernet0/0/0/0.39
description TO P_R03
bandwidth 100
mtu 9000
ipv4 address 10.1.1.62 255.255.255.252
encapsulation dot1q 39
!
interface GigabitEthernet0/0/0/1
description TO CE_R27
!
interface GigabitEthernet0/0/0/1.400 l2transport
description TO CE_R27 - ELAN VL400
encapsulation dot1q 400
rewrite ingress tag pop 1 symmetric
!
interface GigabitEthernet0/0/0/2
shutdown
!
interface GigabitEthernet0/0/0/3
shutdown
!
router static
vrf MGMT
address-family ipv4 unicast
0.0.0.0/0 10.1.1.254
!
!
!
router ospf 100
log adjacency changes detail
router-id 101.101.101.101
passive enable
area 0
interface Loopback0
!
interface GigabitEthernet0/0/0/0.38
cost 2
network point-to-point
passive disable
mtu-ignore enable
!
interface GigabitEthernet0/0/0/0.39
cost 1
network point-to-point
passive disable
mtu-ignore enable
!
!
!
router bgp 2345
timers bgp 7 21
bgp router-id 101.101.101.101
address-family l2vpn evpn
!
neighbor 11.11.11.11
remote-as 2345
description TO ROUTE REFLECTOR - R11
update-source Loopback0
address-family l2vpn evpn
!
!
!
evpn
evi 40
description CUSTOMER_F_ELAN
!
!
l2vpn
pbb
backbone-source-mac 0001.0001.0001
!
bridge group PBB_EVPN_CORE_BG
bridge-domain PBB_EVPN_CORE_BD_EVI40
pbb core
evi 40
!
!
!
!
bridge group PBB_EVPN_EDGE_BG
bridge-domain PBB_EVPN_EDGE_BD_EVI40
interface GigabitEthernet0/0/0/1.400
!
pbb edge i-sid 40400 core-bridge PBB_EVPN_CORE_BD_EVI40
!
!
!
!
mpls ldp
router-id 101.101.101.101
interface GigabitEthernet0/0/0/0.38
!
interface GigabitEthernet0/0/0/0.39
!
!
mpls label range table 0 100100 100199
end
logging console debugging
logging buffered debugging
telnet vrf MGMT ipv4 server max-servers 10
telnet vrf default ipv4 server max-servers 10
domain name domain.local
domain lookup disable
vrf MGMT
description MANAGEMENT
vpn id 1:1
address-family ipv4 unicast
!
!
line default
exec-timeout 60 0
transport input telnet ssh
!
interface Loopback0
description RID
ipv4 address 101.101.101.101 255.255.255.255
!
interface MgmtEth0/0/CPU0/0
description MANAGEMENT
vrf MGMT
ipv4 address 10.1.1.209 255.255.255.0
!
interface GigabitEthernet0/0/0/0
bandwidth 100
mtu 9000
!
interface GigabitEthernet0/0/0/0.38
description TO P_R01
bandwidth 100
mtu 9000
ipv4 address 10.1.1.58 255.255.255.252
encapsulation dot1q 38
!
interface GigabitEthernet0/0/0/0.39
description TO P_R03
bandwidth 100
mtu 9000
ipv4 address 10.1.1.62 255.255.255.252
encapsulation dot1q 39
!
interface GigabitEthernet0/0/0/1
description TO CE_R27
!
interface GigabitEthernet0/0/0/1.400 l2transport
description TO CE_R27 - ELAN VL400
encapsulation dot1q 400
rewrite ingress tag pop 1 symmetric
!
interface GigabitEthernet0/0/0/2
shutdown
!
interface GigabitEthernet0/0/0/3
shutdown
!
router static
vrf MGMT
address-family ipv4 unicast
0.0.0.0/0 10.1.1.254
!
!
!
router ospf 100
log adjacency changes detail
router-id 101.101.101.101
passive enable
area 0
interface Loopback0
!
interface GigabitEthernet0/0/0/0.38
cost 2
network point-to-point
passive disable
mtu-ignore enable
!
interface GigabitEthernet0/0/0/0.39
cost 1
network point-to-point
passive disable
mtu-ignore enable
!
!
!
router bgp 2345
timers bgp 7 21
bgp router-id 101.101.101.101
address-family l2vpn evpn
!
neighbor 11.11.11.11
remote-as 2345
description TO ROUTE REFLECTOR - R11
update-source Loopback0
address-family l2vpn evpn
!
!
!
evpn
evi 40
description CUSTOMER_F_ELAN
!
!
l2vpn
pbb
backbone-source-mac 0001.0001.0001
!
bridge group PBB_EVPN_CORE_BG
bridge-domain PBB_EVPN_CORE_BD_EVI40
pbb core
evi 40
!
!
!
!
bridge group PBB_EVPN_EDGE_BG
bridge-domain PBB_EVPN_EDGE_BD_EVI40
interface GigabitEthernet0/0/0/1.400
!
pbb edge i-sid 40400 core-bridge PBB_EVPN_CORE_BD_EVI40
!
!
!
!
mpls ldp
router-id 101.101.101.101
interface GigabitEthernet0/0/0/0.38
!
interface GigabitEthernet0/0/0/0.39
!
!
mpls label range table 0 100100 100199
end
PE_XR02
hostname PE_XR02
logging console debugging
logging buffered debugging
telnet vrf MGMT ipv4 server max-servers 10
telnet vrf default ipv4 server max-servers 10
domain name domain.local
domain lookup disable
vrf MGMT
description MANAGEMENT
vpn id 1:1
address-family ipv4 unicast
!
!
line default
exec-timeout 60 0
transport input telnet ssh
!
interface Loopback0
description RID
ipv4 address 102.102.102.102 255.255.255.255
!
interface MgmtEth0/0/CPU0/0
description MANAGEMENT
vrf MGMT
ipv4 address 10.1.1.208 255.255.255.0
!
interface GigabitEthernet0/0/0/0
bandwidth 100
mtu 9000
!
interface GigabitEthernet0/0/0/0.40
description TO P_R01
bandwidth 100
mtu 9000
ipv4 address 10.1.1.66 255.255.255.252
encapsulation dot1q 40
!
interface GigabitEthernet0/0/0/0.41
description TO P_R02
bandwidth 100
mtu 9000
ipv4 address 10.1.1.70 255.255.255.252
encapsulation dot1q 41
!
interface GigabitEthernet0/0/0/1
description TO CE_R28
!
interface GigabitEthernet0/0/0/1.400 l2transport
description TO CE_R28 - ELAN VL400
encapsulation dot1q 400
rewrite ingress tag pop 1 symmetric
!
interface GigabitEthernet0/0/0/2
shutdown
!
interface GigabitEthernet0/0/0/3
shutdown
!
router static
vrf MGMT
address-family ipv4 unicast
0.0.0.0/0 10.1.1.254
!
!
!
router ospf 100
log adjacency changes detail
router-id 102.102.102.102
passive enable
area 0
interface Loopback0
!
interface GigabitEthernet0/0/0/0.40
cost 4
network point-to-point
passive disable
mtu-ignore enable
!
interface GigabitEthernet0/0/0/0.41
cost 1
network point-to-point
passive disable
mtu-ignore enable
!
!
!
router bgp 2345
timers bgp 7 21
bgp router-id 102.102.102.102
address-family l2vpn evpn
!
neighbor 11.11.11.11
remote-as 2345
description TO ROUTE REFLECTOR - R11
update-source Loopback0
address-family l2vpn evpn
!
!
!
evpn
evi 40
description CUSTOMER_F_ELAN
!
!
l2vpn
pbb
backbone-source-mac 0002.0002.0002
!
bridge group PBB_EVPN_CORE_BG
bridge-domain PBB_EVPN_CORE_BD_EVI40
pbb core
evi 40
!
!
!
!
bridge group PBB_EVPN_EDGE_BG
bridge-domain PBB_EVPN_EDGE_BD_EVI40
interface GigabitEthernet0/0/0/1.400
!
pbb edge i-sid 40400 core-bridge PBB_EVPN_CORE_BD_EVI40
!
!
!
!
mpls ldp
router-id 102.102.102.102
interface GigabitEthernet0/0/0/0.40
!
interface GigabitEthernet0/0/0/0.41
!
!
mpls label range table 0 100200 100299
end
logging console debugging
logging buffered debugging
telnet vrf MGMT ipv4 server max-servers 10
telnet vrf default ipv4 server max-servers 10
domain name domain.local
domain lookup disable
vrf MGMT
description MANAGEMENT
vpn id 1:1
address-family ipv4 unicast
!
!
line default
exec-timeout 60 0
transport input telnet ssh
!
interface Loopback0
description RID
ipv4 address 102.102.102.102 255.255.255.255
!
interface MgmtEth0/0/CPU0/0
description MANAGEMENT
vrf MGMT
ipv4 address 10.1.1.208 255.255.255.0
!
interface GigabitEthernet0/0/0/0
bandwidth 100
mtu 9000
!
interface GigabitEthernet0/0/0/0.40
description TO P_R01
bandwidth 100
mtu 9000
ipv4 address 10.1.1.66 255.255.255.252
encapsulation dot1q 40
!
interface GigabitEthernet0/0/0/0.41
description TO P_R02
bandwidth 100
mtu 9000
ipv4 address 10.1.1.70 255.255.255.252
encapsulation dot1q 41
!
interface GigabitEthernet0/0/0/1
description TO CE_R28
!
interface GigabitEthernet0/0/0/1.400 l2transport
description TO CE_R28 - ELAN VL400
encapsulation dot1q 400
rewrite ingress tag pop 1 symmetric
!
interface GigabitEthernet0/0/0/2
shutdown
!
interface GigabitEthernet0/0/0/3
shutdown
!
router static
vrf MGMT
address-family ipv4 unicast
0.0.0.0/0 10.1.1.254
!
!
!
router ospf 100
log adjacency changes detail
router-id 102.102.102.102
passive enable
area 0
interface Loopback0
!
interface GigabitEthernet0/0/0/0.40
cost 4
network point-to-point
passive disable
mtu-ignore enable
!
interface GigabitEthernet0/0/0/0.41
cost 1
network point-to-point
passive disable
mtu-ignore enable
!
!
!
router bgp 2345
timers bgp 7 21
bgp router-id 102.102.102.102
address-family l2vpn evpn
!
neighbor 11.11.11.11
remote-as 2345
description TO ROUTE REFLECTOR - R11
update-source Loopback0
address-family l2vpn evpn
!
!
!
evpn
evi 40
description CUSTOMER_F_ELAN
!
!
l2vpn
pbb
backbone-source-mac 0002.0002.0002
!
bridge group PBB_EVPN_CORE_BG
bridge-domain PBB_EVPN_CORE_BD_EVI40
pbb core
evi 40
!
!
!
!
bridge group PBB_EVPN_EDGE_BG
bridge-domain PBB_EVPN_EDGE_BD_EVI40
interface GigabitEthernet0/0/0/1.400
!
pbb edge i-sid 40400 core-bridge PBB_EVPN_CORE_BD_EVI40
!
!
!
!
mpls ldp
router-id 102.102.102.102
interface GigabitEthernet0/0/0/0.40
!
interface GigabitEthernet0/0/0/0.41
!
!
mpls label range table 0 100200 100299
end
PE_XR03
hostname PE_XR03
logging console debugging
logging buffered debugging
telnet vrf MGMT ipv4 server max-servers 10
telnet vrf default ipv4 server max-servers 10
domain name domain.local
domain lookup disable
vrf MGMT
description MANAGEMENT
vpn id 1:1
address-family ipv4 unicast
!
!
line default
exec-timeout 60 0
transport input telnet ssh
!
interface Loopback0
description RID
ipv4 address 103.103.103.103 255.255.255.255
!
interface MgmtEth0/0/CPU0/0
description MANAGEMENT
vrf MGMT
ipv4 address 10.1.1.207 255.255.255.0
!
interface GigabitEthernet0/0/0/0
bandwidth 100
mtu 9000
!
interface GigabitEthernet0/0/0/0.42
description TO P_R02
bandwidth 100
mtu 9000
ipv4 address 10.1.1.74 255.255.255.252
encapsulation dot1q 42
!
interface GigabitEthernet0/0/0/0.43
description TO P_R04
bandwidth 100
mtu 9000
ipv4 address 10.1.1.78 255.255.255.252
encapsulation dot1q 43
!
interface GigabitEthernet0/0/0/1
description TO CE_R29
!
interface GigabitEthernet0/0/0/1.400 l2transport
description TO CE_R29 - ELAN VL400
encapsulation dot1q 400
!
interface GigabitEthernet0/0/0/2
shutdown
!
interface GigabitEthernet0/0/0/3
shutdown
!
router static
vrf MGMT
address-family ipv4 unicast
0.0.0.0/0 10.1.1.254
!
!
!
router ospf 100
log adjacency changes detail
router-id 103.103.103.103
passive enable
area 0
interface Loopback0
!
interface GigabitEthernet0/0/0/0.42
cost 3
network point-to-point
passive disable
mtu-ignore enable
!
interface GigabitEthernet0/0/0/0.43
cost 1
network point-to-point
passive disable
mtu-ignore enable
!
!
!
router bgp 2345
timers bgp 7 21
bgp router-id 103.103.103.103
address-family l2vpn evpn
!
neighbor 11.11.11.11
remote-as 2345
description TO ROUTE REFLECTOR - R11
update-source Loopback0
address-family l2vpn evpn
!
!
!
evpn
evi 40
description CUSTOMER_F_ELAN
!
!
l2vpn
pbb
backbone-source-mac 0003.0003.0003
!
bridge group PBB_EVPN_CORE_BG
bridge-domain PBB_EVPN_CORE_BD_EVI40
pbb core
evi 40
!
!
!
!
bridge group PBB_EVPN_EDGE_BG
bridge-domain PBB_EVPN_EDGE_BD_EVI40
interface GigabitEthernet0/0/0/1.400
!
pbb edge i-sid 40400 core-bridge PBB_EVPN_CORE_BD_EVI40
!
!
!
!
mpls ldp
router-id 103.103.103.103
interface GigabitEthernet0/0/0/0.42
!
interface GigabitEthernet0/0/0/0.43
!
!
mpls label range table 0 100300 100399
end
logging console debugging
logging buffered debugging
telnet vrf MGMT ipv4 server max-servers 10
telnet vrf default ipv4 server max-servers 10
domain name domain.local
domain lookup disable
vrf MGMT
description MANAGEMENT
vpn id 1:1
address-family ipv4 unicast
!
!
line default
exec-timeout 60 0
transport input telnet ssh
!
interface Loopback0
description RID
ipv4 address 103.103.103.103 255.255.255.255
!
interface MgmtEth0/0/CPU0/0
description MANAGEMENT
vrf MGMT
ipv4 address 10.1.1.207 255.255.255.0
!
interface GigabitEthernet0/0/0/0
bandwidth 100
mtu 9000
!
interface GigabitEthernet0/0/0/0.42
description TO P_R02
bandwidth 100
mtu 9000
ipv4 address 10.1.1.74 255.255.255.252
encapsulation dot1q 42
!
interface GigabitEthernet0/0/0/0.43
description TO P_R04
bandwidth 100
mtu 9000
ipv4 address 10.1.1.78 255.255.255.252
encapsulation dot1q 43
!
interface GigabitEthernet0/0/0/1
description TO CE_R29
!
interface GigabitEthernet0/0/0/1.400 l2transport
description TO CE_R29 - ELAN VL400
encapsulation dot1q 400
!
interface GigabitEthernet0/0/0/2
shutdown
!
interface GigabitEthernet0/0/0/3
shutdown
!
router static
vrf MGMT
address-family ipv4 unicast
0.0.0.0/0 10.1.1.254
!
!
!
router ospf 100
log adjacency changes detail
router-id 103.103.103.103
passive enable
area 0
interface Loopback0
!
interface GigabitEthernet0/0/0/0.42
cost 3
network point-to-point
passive disable
mtu-ignore enable
!
interface GigabitEthernet0/0/0/0.43
cost 1
network point-to-point
passive disable
mtu-ignore enable
!
!
!
router bgp 2345
timers bgp 7 21
bgp router-id 103.103.103.103
address-family l2vpn evpn
!
neighbor 11.11.11.11
remote-as 2345
description TO ROUTE REFLECTOR - R11
update-source Loopback0
address-family l2vpn evpn
!
!
!
evpn
evi 40
description CUSTOMER_F_ELAN
!
!
l2vpn
pbb
backbone-source-mac 0003.0003.0003
!
bridge group PBB_EVPN_CORE_BG
bridge-domain PBB_EVPN_CORE_BD_EVI40
pbb core
evi 40
!
!
!
!
bridge group PBB_EVPN_EDGE_BG
bridge-domain PBB_EVPN_EDGE_BD_EVI40
interface GigabitEthernet0/0/0/1.400
!
pbb edge i-sid 40400 core-bridge PBB_EVPN_CORE_BD_EVI40
!
!
!
!
mpls ldp
router-id 103.103.103.103
interface GigabitEthernet0/0/0/0.42
!
interface GigabitEthernet0/0/0/0.43
!
!
mpls label range table 0 100300 100399
end
PBB-EVPN Specific Configurations
Configuration from only PE_XR01 were used since the
other PEs will have similar configurations.
EVPN Instance
The following configuration builds the EVPN instance by defining the EVI ID. The ID value can be an arbitrary number between 1 – 65534.
evpn
evi 40
description CUSTOMER_F_ELAN
|
PBB Bridge
Group/Domain
The following configuration defines the PBB parameters, such as the PE backbone MAC address, core & edge
bridge groups and domains.
Per the PBB architecture, we
created the 2 bridge domains. The core
bridge domain (B-Component) specified the EVPN instance while the edge bridge
domain (I-Component) defined the customer facing attachment circuit and unique backbone identifier (I-SID).
As a side note, many examples I’ve seen used a 2 bridge group configuration, separating the core bridge domain with the edge bridge domain. However, a single bridge group configuration seems to work as well, just as long as we have created 2 different bridge domains. I believe the bridge group was simply a configuration container to make things easier to organize the bridge domains.
As a side note, many examples I’ve seen used a 2 bridge group configuration, separating the core bridge domain with the edge bridge domain. However, a single bridge group configuration seems to work as well, just as long as we have created 2 different bridge domains. I believe the bridge group was simply a configuration container to make things easier to organize the bridge domains.
l2vpn
pbb
backbone-source-mac 0001.0001.0001
!
bridge group PBB_EVPN_CORE_BG
bridge-domain PBB_EVPN_CORE_BD_EVI40
pbb core
evi 40
!
!
!
!
bridge group PBB_EVPN_EDGE_BG
bridge-domain PBB_EVPN_EDGE_BD_EVI40
interface GigabitEthernet0/0/0/1.400
!
pbb edge i-sid 40400 core-bridge PBB_EVPN_CORE_BD_EVI40
|
Attachment Circuit
The attachment circuit that connected the CE was configured
to match VLAN 400 to classify Customer F’s traffic and placed it into the PBB
edge bridge domain. It then popped the tag off as the DOT1q header was no longer required (or relevant) for MPLS forwarding.
interface
GigabitEthernet0/0/0/1
description TO CE_R27
!
interface
GigabitEthernet0/0/0/1.400 l2transport
description TO CE_R27 - ELAN VL400
encapsulation dot1q 400
rewrite ingress tag pop 1 symmetric
|
MP-BGP
MP-BGP peering was configured between the PEs to a Route Reflector (RR) under
AFI 25 (L2VPN) & SAFI 70 (EVPN).
PE_XR01's BGP configuration to RR.
router bgp
2345
timers bgp 7 21
bgp router-id 101.101.101.101
address-family l2vpn evpn
!
neighbor 11.11.11.11
remote-as 2345
description TO ROUTE REFLECTOR - R11
update-source Loopback0
address-family l2vpn evpn
|
RR's BGP configuration to the PEs.
router bgp
2345
bgp log-neighbor-changes
no bgp default ipv4-unicast
neighbor PE_XR01 peer-group
neighbor PE_XR01 remote-as 2345
neighbor PE_XR01 description TO PE XR01
neighbor PE_XR01 update-source Loopback0
neighbor PE_XR01 timers 7 21
neighbor PE_XR02 peer-group
neighbor PE_XR02 remote-as 2345
neighbor PE_XR02 description TO PE XR02
neighbor PE_XR02 update-source Loopback0
neighbor PE_XR02 timers 7 21
neighbor PE_XR03 peer-group
neighbor PE_XR03 remote-as 2345
neighbor PE_XR03 description TO PE XR03
neighbor PE_XR03 update-source Loopback0
neighbor PE_XR03 timers 7 21
neighbor 101.101.101.101 peer-group PE_XR01
neighbor 102.102.102.102 peer-group PE_XR02
neighbor 103.103.103.103 peer-group PE_XR03
!
address-family ipv4
exit-address-family
!
address-family l2vpn evpn
neighbor PE_XR01 send-community both
neighbor PE_XR01 route-reflector-client
neighbor PE_XR02 send-community both
neighbor PE_XR02 route-reflector-client
neighbor PE_XR03 send-community both
neighbor PE_XR03 route-reflector-client
neighbor 101.101.101.101 activate
neighbor 102.102.102.102 activate
neighbor 103.103.103.103 activate
exit-address-family
|
CE Interface
The CE interface was configured to use VLAN 400 as transport
(configuration from CE27).
interface
GigabitEthernet1
description TO PE_XR01
no ip address
negotiation auto
no mop enabled
no mop sysid
!
interface
GigabitEthernet1.400
description TO PE_XR01 - PBB-EVPN ELAN400
encapsulation dot1Q 400
ip address 172.16.4.1 255.255.255.0
|
Testing Results
As noted earlier, due to a lack of IOS XRv data plane
support for L2VPN services, verification using ping tests could not be performed.
CE27 to CE28
CE_R27#ping
172.16.4.2
Type escape
sequence to abort.
Sending 5,
100-byte ICMP Echos to 172.16.4.2, timeout is 2 seconds:
.....
Success rate
is 0 percent (0/5)
|
CE27 to CE29
CE_R27#ping
172.16.4.3
Type escape
sequence to abort.
Sending 5,
100-byte ICMP Echos to 172.16.4.3, timeout is 2 seconds:
.....
Success rate
is 0 percent (0/5)
|
CE27’s ARP Table
CE_R27#sh
arp
Protocol Address Age (min) Hardware Addr Type
Interface
Internet 172.16.4.1 -
000c.299a.09c8 ARPA GigabitEthernet1.400
Internet 172.16.4.2 0 Incomplete ARPA
Internet 172.16.4.3 0 Incomplete ARPA
|
Verification Tasks
The list below outlined commands used to verify PBB-EVPN operation. Outputs were only from PE_XR01 for brevity.
The list below outlined commands used to verify PBB-EVPN operation. Outputs were only from PE_XR01 for brevity.
- OSPF Neighbors to Core
- LDP Neighbors to Core
- PBB Bridge Domains
- PBB Backbone MACs (all PEs)
- PBB Bridge Domain Forwarding
- EVPN EVI
- EVPN EVI MAC
- EVPN EVI Neighbors
- EVPN EVI Inclusive-Multicast
- BGP L2VPN EVPN Summary
- BGP L2VPN EVPN
- BGP L2VPN EVPN NLRI [Type 2 & 3 Routes]
OSPF Neighbors
Verified the OSPF neighbors from PE_XR01 to MPLS core
network (P1 and P3).
RP/0/0/CPU0:PE_XR01#sh
ospf neighbor
Tue Oct 24
05:41:55.026 UTC
* Indicates
MADJ interface
# Indicates
Neighbor awaiting BFD session up
Neighbors for
OSPF 100
Neighbor ID
Pri State Dead Time Address Interface
1.1.1.1
1 FULL/ -
00:00:35 10.1.1.57 GigabitEthernet0/0/0/0.38
Neighbor is up for 1d03h
3.3.3.3
1 FULL/ -
00:00:35 10.1.1.61 GigabitEthernet0/0/0/0.39
Neighbor is up for 1d03h
Total
neighbor count: 2
|
LDP Neighbors
Verified the LDP neighbors from PE_XR01 to MPLS core network
(P1 and P3).
RP/0/0/CPU0:PE_XR01#sh
mpls ldp neighbor
Tue Oct 24
05:42:33.524 UTC
Peer LDP Identifier: 3.3.3.3:0
TCP connection: 3.3.3.3:646 - 101.101.101.101:43929
Graceful Restart: No
Session Holdtime: 180 sec
State: Oper; Msgs sent/rcvd: 1986/1976; Downstream-Unsolicited
Up time: 1d04h
LDP Discovery Sources:
IPv4: (1)
GigabitEthernet0/0/0/0.39
IPv6: (0)
Addresses bound to this peer:
IPv4: (9)
3.3.3.3 10.0.0.6 10.0.0.18 10.0.0.21
10.0.0.101 10.1.1.5 10.1.1.33 10.1.1.41
10.1.1.61
IPv6: (0)
Peer LDP Identifier: 1.1.1.1:0
TCP connection: 1.1.1.1:646 - 101.101.101.101:13052
Graceful Restart: No
Session Holdtime: 180 sec
State: Oper; Msgs sent/rcvd: 1986/1977; Downstream-Unsolicited
Up time: 1d04h
LDP Discovery Sources:
IPv4: (1)
GigabitEthernet0/0/0/0.38
IPv6: (0)
Addresses bound to this peer:
IPv4: (9)
1.1.1.1 10.0.0.1 10.0.0.5 10.0.0.9
10.1.1.1 10.1.1.17 10.1.1.29 10.1.1.57
10.1.1.65
IPv6: (0)
|
PBB Bridge Domains
This command displays detailed information about the PBB bridge domains, such as:
- Bridge Groups
- Bridge Domains
- Bridge Domain Type (core or edge)
- I-SID
- Bridge Domain, EVPN and AC operational status
RP/0/0/CPU0:PE_XR01#sh
l2vpn bridge-domain
Tue Oct 24
05:49:59.893 UTC
Legend: pp =
Partially Programmed.
Bridge group: PBB_EVPN_CORE_BG, bridge-domain: PBB_EVPN_CORE_BD_EVI40, id: 2,
state: up, ShgId: 0,
MSTi: 0
Type: pbb-core
Number of associated pbb-edge BDs: 1
Aging: 300 s, MAC limit: 4000, Action:
none, Notification: syslog
Filter MAC addresses: 0
ACs: 0 (0 up), VFIs: 0, PWs: 0 (0 up),
PBBs: 1 (1 up), VNIs: 0 (0 up)
List of PBBs:
PBB Core, state: up
List of EVPNs:
EVPN, state: up
List of ACs:
List of Access PWs:
List of VFIs:
Bridge group: PBB_EVPN_EDGE_BG, bridge-domain: PBB_EVPN_EDGE_BD_EVI40, id: 3,
state: up, ShgId: 0,
MSTi: 0
Type: pbb-edge, I-SID: 40400
Aging: 300 s, MAC limit: 4000, Action:
none, Notification: syslog
Filter MAC addresses: 0
ACs: 1 (1 up), VFIs: 0, PWs: 0 (0 up),
PBBs: 1 (1 up), VNIs: 0 (0 up)
List of PBBs:
PBB Edge, state: up, Static MAC addresses: 0
List of ACs:
Gi0/0/0/1.400, state: up, Static MAC addresses: 0, MSTi: 9
List of Access PWs:
List of VFIs:
|
PBB Backbone MACs
This command displays the configured PBB Backbone MAC
addresses (from all PEs).
RP/0/0/CPU0:PE_XR01#sh
l2vpn pbb backbone-source-mac
Tue Oct 24
06:23:10.357 UTC
Backbone Source MAC: 0001.0001.0001
Chassis
MAC : 02b4.a7bf.0c05
|
RP/0/0/CPU0:PE_XR02#sh
l2vpn pbb backbone-source-mac
Tue Oct 24
06:24:04.194 UTC
Backbone Source MAC: 0002.0002.0002
Chassis MAC : 0228.89f6.f405
|
RP/0/0/CPU0:PE_XR03#sh
l2vpn pbb backbone-source-mac
Tue Oct 24
06:24:07.007 UTC
Backbone Source MAC: 0003.0003.0003
Chassis
MAC : 024f.54bd.0c05
|
PBB Bridge Domain Forwarding
This command displays the PBB Bridge Domain’s forwarding
table (i.e., PE’s data plane).
Note: Unfortunately my
lab output did not show any C-MAC learning since IOS XRv does not have data
plane support.
RP/0/0/CPU0:PE_XR01#sh
l2vpn forwarding bridge-domain mac-address location 0/0/CPU0
Tue Oct 24
05:57:19.773 UTC
Mac
Address Type Learned from/Filtered on LC learned Age Mapped to
--------------
------- --------------------------- ---------- ----------------------
----------
0002.0002.0002
BMAC BD id: 2 N/A N/A N/A
0003.0003.0003
BMAC BD id: 2 N/A N/A N/A
|
As a reference, the following output was a working
example. Notice the MAC addresses
starting with 2a22 and 2b22 being mapped to a single B-MAC bbbb.bbbb.bbbb.
This command displays EVPN EVI details such as:
- EVI ID
- Bridge Domain name and type
- MPLS labels for Unicast and Multicast (BUM) traffic
- RD’s and RT’s
RP/0/0/CPU0:PE_XR01#sh
evpn evi vpn-id 40 detail
Tue
Oct 24 05:54:32.164 UTC
EVI
Bridge Domain Type
----------
---------------------------- -------
40 PBB_EVPN_CORE_BD_EVI40 PBB
Description : CUSTOMER_F_ELAN
Unicast Label : 100144
Multicast Label: 100145
Flow Label: N
Control-Word: Enabled
Forward-class: 0
RD Config: none
RD Auto :
(auto) 101.101.101.101:40
RT Auto :
2345:40
Route Targets in Use Type
------------------------------
---------------------
2345:40 Import
2345:40 Export
|
EVPN EVI MAC
This command displays B-MACs, next-hop information, ESI and MPLS VPN labels.
RP/0/0/CPU0:PE_XR01#sh
evpn evi vpn-id 40 mac detail
Tue
Oct 24 05:55:05.132 UTC
MAC address Nexthop Label vpn-id
--------------
--------------------------------------- -------- --------
0001.0001.0001 N/A 100144 40
Ether.Segment: 0000.0000.0000.0000.0000
ESI port key : 0x0000
Source : Local
Multi-paths resolved: FALSE
Multi-paths local label: 0
Flush Count : 3
0002.0002.0002 102.102.102.102 100244 40
Ether.Segment: 0000.0000.0000.0000.0000
ESI port key : 0x0000
Source : Remote, MPLS
Multi-paths resolved: FALSE
Multi-paths local label: 0
Flush Count : 1
0003.0003.0003 103.103.103.103 100344 40
Ether.Segment: 0000.0000.0000.0000.0000
ESI port key : 0x0000
Source : Remote, MPLS
Multi-paths resolved: FALSE
Multi-paths local label: 0
Flush Count : 1
|
EVPN EVI Neighbors
This command displays all its neighbors in a particular EVI.
RP/0/0/CPU0:PE_XR01#sh
evpn evi neighbor
Tue
Oct 24 05:54:09.686 UTC
Neighbor
IP
vpn-id
----------------------------------------
--------
102.102.102.102 40
103.103.103.103 40
|
EVPN EVI Inclusive-Multicast
This command displays the endpoints in the multicast flood
list for BUM forwarding. It contains next-hop and forwarding labels.
RP/0/0/CPU0:PE_XR01#show
evpn evi inclusive-multicast detail
Tue
Oct 24 08:06:24.222 UTC
Ethernet
Tag: 40400, Originating IP:
101.101.101.101, vpn-id: 40
Nexthop: ::
Label : 100145
Source : Local
Ethernet
Tag: 40400, Originating
IP: 102.102.102.102, vpn-id: 40
Nexthop: 102.102.102.102
Label : 100245
Source : Remote
Ethernet
Tag: 40400, Originating
IP: 103.103.103.103, vpn-id: 40
Nexthop: 103.103.103.103
Label : 100345
Source : Remote
|
BGP L2VPN EVPN Summary
This command displays the BGP neighbor
peering status.
RP/0/0/CPU0:PE_XR01#sh
bgp l2vpn evpn summary
Tue
Oct 24 06:05:37.699 UTC
BGP
router identifier 101.101.101.101, local AS number 2345
BGP
generic scan interval 60 secs
Non-stop
routing is enabled
BGP
table state: Active
Table
ID: 0x0 RD version: 0
BGP
main routing table version 86
BGP
NSR Initial initsync version 1 (Reached)
BGP
NSR/ISSU Sync-Group versions 0/0
BGP
scan interval 60 secs
BGP
is operating in STANDALONE mode.
Process RcvTblVer bRIB/RIB
LabelVer ImportVer SendTblVer
StandbyVer
Speaker 86 86 86 86 86 0
Neighbor Spk
AS MsgRcvd MsgSent TblVer InQ OutQ
Up/Down St/PfxRcd
11.11.11.11 0
2345 5224 5030
86 0 0 09:48:03 4
|
This was the BGP neighbor peering status from the RR’s
perspective.
Note: Neighbors with
25.25.25.25 and 26.26.26.26 were PEs from the previous EVPN VPWS lab that used
the same AFI/SAFI.
RR_R11#sh bgp
l2vpn evpn summary
BGP router
identifier 11.11.11.11, local AS number 2345
BGP table
version is 100, main routing table version 100
8 network
entries using 2752 bytes of memory
8 path
entries using 1312 bytes of memory
6/6 BGP
path/bestpath attribute entries using 1584 bytes of memory
7 BGP
extended community entries using 668 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
6316 total bytes of memory
BGP activity
33/20 prefixes, 45/32 paths, scan interval 60 secs
Neighbor V AS MsgRcvd MsgSent TblVer
InQ OutQ Up/Down State/PfxRcd
25.25.25.25 4
2345 119786 119839
100 0 0 1w2d 1
26.26.26.26 4
2345 119833 119831
100 0 0 1w2d 1
101.101.101.101 4 2345 5079
5275 100 0
0 09:53:48 2
102.102.102.102 4 2345 5079
5270 100 0
0 09:53:44 2
103.103.103.103 4 2345 5081
5279 100 0
0 09:53:59 2
|
BGP L2VPN EVPN
This command displays the BGP table for the L2VPN
EVPN address family.
This output contained Type 2 and Type 3 routes from each PE (from three different RDs). The routes highlighted were routes only related to PE_XR01’s RD.
This output contained Type 2 and Type 3 routes from each PE (from three different RDs). The routes highlighted were routes only related to PE_XR01’s RD.
RP/0/0/CPU0:PE_XR01#sh
bgp l2vpn evpn
Tue Oct 24
06:05:18.270 UTC
BGP router
identifier 101.101.101.101, local AS number 2345
BGP generic
scan interval 60 secs
Non-stop
routing is enabled
BGP table
state: Active
Table ID:
0x0 RD version: 0
BGP main
routing table version 86
BGP NSR
Initial initsync version 1 (Reached)
BGP NSR/ISSU
Sync-Group versions 0/0
BGP scan
interval 60 secs
Status codes:
s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S
stale, N Nexthop-discard
Origin codes:
i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
Route Distinguisher: 101.101.101.101:40 (default
for vrf PBB_EVPN_CORE_BD_EVI40)
*> [2][0][48][0001.0001.0001][0]/104
0.0.0.0 0 i
*>i[2][0][48][0002.0002.0002][0]/104
102.102.102.102 100 0 i
*>i[2][0][48][0003.0003.0003][0]/104
103.103.103.103 100 0 i
*> [3][40400][32][101.101.101.101]/80
0.0.0.0 0 i
*>i[3][40400][32][102.102.102.102]/80
102.102.102.102 100 0 i
*>i[3][40400][32][103.103.103.103]/80
103.103.103.103 100 0 i
Route
Distinguisher: 102.102.102.102:40
*>i[2][0][48][0002.0002.0002][0]/104
102.102.102.102 100 0 i
*>i[3][40400][32][102.102.102.102]/80
102.102.102.102 100 0 i
Route
Distinguisher: 103.103.103.103:40
*>i[2][0][48][0003.0003.0003][0]/104
103.103.103.103 100 0 i
*>i[3][40400][32][103.103.103.103]/80
103.103.103.103 100 0 i
Processed 10
prefixes, 10 paths
|
The output below was a look at the RR's L2VPN EVPN BGP table.
RR_R11#sh bgp
l2vpn evpn all
BGP table
version is 100, local router ID is 11.11.11.11
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: 101.101.101.101:40
*>i
[2][101.101.101.101:40][00000000000000000000][0][48][000100010001][0][*][100144]/33
101.101.101.101 100 0 i
Route
Distinguisher: 102.102.102.102:40
*>i
[2][102.102.102.102:40][00000000000000000000][0][48][000200020002][0][*][100244]/33
102.102.102.102 100 0
i
Route
Distinguisher: 103.103.103.103:40
*>i
[2][103.103.103.103:40][00000000000000000000][0][48][000300030003][0][*][100344]/33
103.103.103.103 100 0 i
Route
Distinguisher: 101.101.101.101:40
*>i [3][101.101.101.101:40][40400][32][662634496.3060.812b.277f]/17
101.101.101.101 100 0 i
Route
Distinguisher: 102.102.102.102:40
*>i
[3][102.102.102.102:40][40400][32][662634496.3060.812b.277f]/17
102.102.102.102 100 0 i
Route
Distinguisher: 103.103.103.103:40
*>i
[3][103.103.103.103:40][40400][32][662634496.3060.812b.277f]/17
103.103.103.103 100 0 i
|
BGP EVPN NLRI
Here’s a deeper look into the EVPN BGP Type 2 NLRI (MAC Advertisement).
Deciphering the route entry for: [2][0][48][0002.0002.0002][0]/104
- BGP Route Type [2]
- ESI [0]
- MAC Address Length [48]
- MAC Address (B-MAC) [0002.0002.0002]
- IP Address (No IP address) [0]
- Max Bits [/140]
- Route Distinguisher [101.101.101.101:40]
- MPLS VPN Label
- Extended Community
- Route Target
- Ethernet Segment Identifier
RP/0/0/CPU0:PE_XR01#show
bgp l2vpn evpn bdomain PBB_EVPN_CORE_BD_EVI40
[2][0][48][0002.0002.0002][0]/104
Tue Oct 24
06:08:01.089 UTC
BGP routing
table entry for [2][0][48][0002.0002.0002][0]/104, Route Distinguisher:
101.101.101.101:40
Versions:
Process bRIB/RIB SendTblVer
Speaker 85 85
Last
Modified: Oct 23 20:17:42.538 for 09:50:18
Paths: (1
available, best #1)
Not advertised to any peer
Path #1: Received by speaker 0
Not advertised to any peer
Local
102.102.102.102 (metric 6) from
11.11.11.11 (102.102.102.102)
Received Label 100244
Origin IGP, localpref 100, valid,
internal, best, group-best, import-candidate, imported, rib-install
Received Path ID 0, Local Path ID 0,
version 85
Extended community: EVPN MAC Mobility:3 RT:2345:40
Originator: 102.102.102.102, Cluster
list: 11.11.11.11
EVPN ESI: 0000.0000.0000.0000.0000
Source AFI: L2VPN EVPN, Source VRF:
default, Source Route Distinguisher: 102.102.102.102:40
|
Here’s a deeper look into the EVPN BGP Type 3 NLRI (Inclusive-Multicast).
Deciphering the route entry for: [3][40400][32][102.102.102.102]/80
- BGP Route Type [3]
- Backbone Service ID (I-SID) [40400]
- IP Address length [32]
- IP Address of originating router [102.102.102.102]
- Max Bits [/80]
- Route Distinguisher [101.101.101.101:40]
- Extended Community (RT)
- Provider Multicast Service Interface (PMSI) Tunnel attributes:
- Tunnel Type 6 (Ingress Replication)
- MPLS VPN Label
RP/0/0/CPU0:PE_XR01#show
bgp l2vpn evpn bdomain PBB_EVPN_CORE_BD_EVI40 [3][40400][32][102.102.102.102]/80
Tue Oct 24
06:08:42.516 UTC
BGP routing
table entry for [3][40400][32][102.102.102.102]/80, Route Distinguisher:
101.101.101.101:40
Versions:
Process bRIB/RIB SendTblVer
Speaker 86 86
Last
Modified: Oct 23 20:17:42.538 for 09:51:00
Paths: (1
available, best #1)
Not advertised to any peer
Path #1: Received by speaker 0
Not advertised to any peer
Local
102.102.102.102 (metric 6) from
11.11.11.11 (102.102.102.102)
Origin IGP, localpref 100, valid,
internal, best, group-best, import-candidate, imported
Received Path ID 0, Local Path ID 0,
version 86
Extended community: RT:2345:40
Originator: 102.102.102.102, Cluster
list: 11.11.11.11
PMSI: flags 0x00, type 6, label 100245, ID 0x66666666
Source AFI: L2VPN EVPN, Source VRF:
default, Source Route Distinguisher: 102.102.102.102:40
|
MPLS Forwarding Trace
This was an example MPLS forwarding trace from PE_XR01 to
PE_XR02’s B-MAC of 0002.0002.0002.
PE_XR01 performed a lookup of PE_XR02’s Type 2 B-MAC route
and has received VPN label of 100244.
RP/0/0/CPU0:PE_XR01#show
bgp l2vpn evpn bdomain PBB_EVPN_CORE_BD_EVI40
[2][0][48][0002.0002.0002][0]/104
Tue Oct 24
07:45:12.909 UTC
BGP routing
table entry for [2][0][48][0002.0002.0002][0]/104,
Route Distinguisher: 101.101.101.101:40
Versions:
Process bRIB/RIB SendTblVer
Speaker 85 85
Last
Modified: Oct 23 20:17:42.538 for 11:27:30
Paths: (1
available, best #1)
Not advertised to any peer
Path #1: Received by speaker 0
Not advertised to any peer
Local
102.102.102.102 (metric 6) from
11.11.11.11 (102.102.102.102)
Received Label 100244
Origin IGP, localpref 100, valid,
internal, best, group-best, import-candidate, imported, rib-install
Received Path ID 0, Local Path ID 0,
version 85
Extended community: EVPN MAC Mobility:3
RT:2345:40
Originator: 102.102.102.102, Cluster
list: 11.11.11.11
EVPN ESI: 0000.0000.0000.0000.0000
Source AFI: L2VPN EVPN, Source VRF:
default, Source Route Distinguisher: 102.102.102.102:40
|
PE_XR01 performed a MPLS forwarding prefix lookup for 102.102.102.102,
then imposed an inner VPN label of 100244 and an outer LSP label of 334 then
forwarded to P3.
RP/0/0/CPU0:PE_XR01#sh
mpls forwarding prefix 102.102.102.102/32 detail
Tue Oct 24
07:46:03.626 UTC
Local Outgoing Prefix Outgoing Next Hop
Bytes
Label Label or ID Interface Switched
------ -----------
------------------ ------------ --------------- ------------
100143 334 102.102.102.102/32 Gi0/0/0/0.39 10.1.1.61 974625
Updated: Oct 23 02:36:45.216
Version: 142, Priority: 3
Label Stack (Top -> Bottom): { 334 }
NHID: 0x0, Encap-ID: N/A, Path idx: 0,
Backup path idx: 0, Weight: 0
MAC/Encaps: 18/22, MTU: 8982
Packets Switched: 18184
|
P3 swapped label 334 with 235 and forwarded to P2.
P_R03#sh mpls
forwarding-table labels 334 detail
Local Outgoing Prefix Bytes Label Outgoing
Next Hop
Label Label or Tunnel Id Switched interface
334 235 102.102.102.102/32 \
1301588 Gi1.14 10.0.0.17
MAC/Encaps=18/22, MRU=9216, Label
Stack{235}
000C294A72B4000C291EB42A8100000E8847
000EB000
No output feature configured
|
P2 popped label 235, then forwarded to PE_XR02.
P_R02#sh mpls
forwarding-table labels 235 detail
Local Outgoing Prefix Bytes Label Outgoing
Next Hop
Label Label or Tunnel Id Switched interface
235 Pop Label 102.102.102.102/32 \
2278385 Gi1.41 10.1.1.70
MAC/Encaps=18/18, MRU=9220, Label
Stack{}
000C29692DBA000C294A72B4810000298847
No output feature configured
|
PE_XR02 looked up the VPN label of 100244 and forwarded out its configured AC interface.
RP/0/0/CPU0:PE_XR02#sh
mpls forwarding labels 100244 detail
Tue Oct 24
07:51:21.145 UTC
Local Outgoing Prefix Outgoing Next Hop
Bytes
Label Label or ID Interface Switched
------
----------- ------------------ ------------ --------------- ------------
100244 Pop
EVPN:0xc0000028 BD=2 PE point2point
0
Updated: Oct 23 02:02:18.209
PW Flow Label : Enabled
PW Flow Label: Enabled
Label Stack (Top -> Bottom): { }
MAC/Encaps: 0/0, MTU: 0
Packets Switched: 0
|
References
Provider Backbone Bridging (PBB):
BGP/MPLS EVPN:
PBB-EVPN:
Cisco Live Sessions and Other Presentations
Other Blogs and Labs
(Personal thanks for all who posted and shared their lab experience and knowledge.)