IOS XR mVPN Profile 14

circle-info

Make sure your software version supports mVPN Profile 14.

Topology

  1. C-RP is configured on PE2: 21.21.21.21. All other router have C-RP statically defined.

Configuration

mVPN configuration is identical for all PEs.

circle-info

Only mVPN relevant configuration is listed below.

circle-info

RP configuration is required for ASM case only.

How to start the multicast streams

SSM stream

ASM stream

PE-CE used SSM

In short it means that first hop routers (CE1 and CE3) receive IGMPv3 join where both source address and multicast group are specified. mVPN involves routes Type 1, 3 and 7 in this case.

Route types

Type

Name

Type

Definition

Type 1

Intra-AS I-PMSI A-D route

AD

Type 2

Inter-AS I-PMSI A-D route

AD

Type 3

S-PMSI A-D route

AD

Type 4

Leaf A-D route

AD

Type 5

Source Active A-D route

AD

Type 6

Shared Tree Join route

C-multicast

Type 7

Source Tree Join route

C-multicast

1. No receivers, no active sources

All PEs are announcing Type 1 and Type 3.

2. Active receiver, no active sources

When egress PEs receive PIM Join (C-S, C-G) they generate Type 7 to express the presence of receiver behind. As you can see from PE2 output (ingress PE) it gets Type 7 routes from both egress PEs.

IGMP state on CE routers

PIM state on PE routers

PE1 and PE3 have received PIM Joins from respective CE routers.

MRIB state on PE routers

BGP state

Type 7 in more details

Let's look at IPv4 unicast route:. There's an extended community called VRF Route Import with the value 2.2.2.2:16.

MLDP

Let's follow the data-plane for group 232.1.1.1 starting from ingress PE2 to P and lastly to PE1 and PE3. Most interesting output is from P. As you can see P router replicates traffic which arrives with label 24003 to both PE1 and PE3. That's the heart of mVPN MLDP data-plane behaviour.

Following output show what happens on P router when there's only one receiver behind PE1. CE3 is not requesting 232.1.1.1. So now P router does not replicate traffic ingressing the router with label 24003.

3. No receivers, there's an active source

Actually there's nothing interesting in this case. Ingress PE has no parties interested in receiving 232.1.1.1. Thus it just drops incoming stream.

4. Active receivers and active source

PE-CE uses ASM

No receivers, no active sources

Active receiver, no active sources

No receivers, there's an active source

mVPN interoperability issues

Several vendors depending on a software version are using pre-RFC encoding for C-Mcast Import RT. In this case you won't find a correct extended community in VPNv4 updates. Instead there will be community which Cisco interprets as L2VPN AGI.

Nokia: wrong extended community encoding

Below you can find CLI to switch to RFC encoding.

A screenshot from Nokia's documentation

After you apply it the encoding for extended community looks like the one below:

Juniper: mVPN Wildcard Type 3 wrong encoding

RFC6625arrow-up-right defines a new zero-length source and group addresses for mVPN Type 3 BGP Update.

Direct iBGP between two Cisco NCS5500

172.16.1.44 (NCS5500) originates mVPN Type 3 and advertises it directly to 172.16.1.44 (NCS5500).

Raw BGP message:

Decoded message:

iBGP with Juniper RR

172.16.1.44 (NCS5500) originates mVPN Type 3 and advertises it to a route-reflector 172.16.1.41 (Juniper). RR then reflects the route to 172.16.1.43 (NCS5500).

Raw BGP message:

Decoded message:

Key findings

  1. Juniper RR receives the correct mVPN Type 3 Wildcard update with Multicast Source Length and Multicast Group Length set to 0x00. Multicast Source Address and Multicast Group Address are omitted.

  2. Juniper reflects a modified update with Multicast Source Address and Multicast Group Address fields set to 0.0.0.0.

  3. To reflect the changed NRLI length Juniper adjusts the ATTRIBUTE LENGTH and NLRI Length fields accordingly.

  4. NCS5500 receives the corrupted update and reads it based on RFC6625 encoding.

Workaround on Juniper

Last updated