Monday, March 5, 2018

IOS and XR Multicast VPN with Profile 1 - MLDP MP2MP PIM Default MDT with BSR and AutoRP


Multipoint GRE tunnels between the PEs was the first flavor of mVPN. Since LDP is deployed in the SP core, we can leverage the LSPs that have been built in the core. The default MDT uses LDP for transport and not GRE tunnels between the PEs. The idea is to enable mLDP as the transport. Default MDT-mLDP, also referred to as Multi-Directional Inclusive - Provider Multicast Service Interface (MI-PMSI) or Profile 1. The end result is MP2MP bidirectional LDP adjacencies that allow the PEs to exchange PIM communication from the customers, instead of the traffic being forwarded over mGRE.

BSR is used in the customer network and Auto RP is used in the SP network.



This is configured on all the IOS XE routers. This is used to inform the SP routers that LDP is used for PIM transport.

ip pim mpls source Loopback0

One device in the SP core needs to be configured as the root of the MP2MP tree. This is configured under the VRF process for the address families that mLDP applies to. Specify the VPN ID at this point as well.

IOS-XE
mdt default mpls mldp x.x.x.x 

IOS-XR
mdt default mldp ipv4 x.x.x.x


IOS XE PE routers
vrf definition MCAST
 rd 1:1
 vpn id 1:1
 !
 address-family ipv4
  mdt default mpls mldp 172.16.100.1


*Mar  5 23:49:35.292: MLDP: Reevaluating peers for nhop: 10.1.9.1
*Mar  5 23:49:36.239: %LINEPROTO-5-UPDOWN: Line protocol on Interface Lspvif1, changed state to up
*Mar  5 23:49:36.703: %PIM-5-DRCHG: VRF MCAST: DR change from neighbor 0.0.0.0 to 172.16.100.9 on interface Lspvif1
*Mar  5 23:49:56.565: %PIM-5-NBRCHG: VRF MCAST: neighbor 172.16.100.3 UP on interface Lspvif1 

*Mar  5 23:50:26.520: %PIM-5-NBRCHG: VRF MCAST: neighbor 172.16.100.110 UP on interface Lspvif1 



R9#sh mpls mldp neighbors

 MLDP peer ID    : 172.16.100.1:0, uptime 1d07h Up,
  Target Adj     : No
  Session hndl   : 1
  Upstream count : 1
  Branch count   : 0
  Path count     : 1
  Path(s)        : 10.1.9.1          LDP GigabitEthernet1.19
  Nhop count     : 1
  Nhop list      : 10.1.9.1


R9#sh mpls mldp root

 Root node    : 172.16.100.1
  Metric      : 20
  Distance    : 115
  Interface   : GigabitEthernet1.19 (via unicast RT)
  FEC count   : 1
  Path count  : 1
  Path(s)     : 10.1.9.1         LDP nbr: 172.16.100.1:0    GigabitEthernet1.19


R9#sh mpls mldp bindings
System ID: 1
Type: MP2MP, Root Node: 172.16.100.1, Opaque Len: 14
Opaque value: [mdt 1:1 0]
lsr: 172.16.100.1:0, remote binding[U]: 37, local binding[D]: 44 active


R9#show mpls  forwarding-table labels 44 detail
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop 
Label      Label      or Tunnel Id     Switched      interface           
44         No Label   [mdt 1:1 0][V]   244           aggregate/MCAST
        MAC/Encaps=0/0, MRU=0, Label Stack{}, via Ls1
        VPN route: MCAST
        No output feature configured
    Broadcast

As you can see on R9, the label value of 44 is bound to the mLDP configuration and after pinging 224.1.1.1 from R5, we see that 244 bytes of traffic were label switched. This indicates that traffic is supported and forwarded.


IOS XR PE routers
mpls ldp
 mldp
 !
vrf MCAST
 vpn id 1:1
 address-fammily ipv4 unicast
 !
route-policy MDT_mLDP
  set core-tree mldp
end-policy
!
multicast-routing
 vrf MCAST
  address-family ipv4
   mdt default mldp ipv4 172.16.100.1
   !
router pim
 vrf MCAST
  address-family ipv4
   rpf topology route-policy MDT_mLDP


RP/0/0/CPU0:XR9#sh mpls mldp root        
Tue Mar  6 00:13:47.947 UTC
mLDP root database
 Root node    : 172.16.100.1 
  Metric      : 30
  Distance    : 115
  FEC count   : 1
  Path count  : 1

  Path(s)     : 10.11.19.11      LDP nbr: 172.16.100.11:0  



RP/0/0/CPU0:XR9#sh mpls mldp bindings 
Tue Mar  6 00:14:00.916 UTC
mLDP MPLS Bindings database

LSP-ID: 0x00001 Paths: 2 Flags: Pk
 0x00001 MP2MP  172.16.100.1 [mdt 1:1 0]
   Local Label: 24025 Remote: 24021 NH: 10.11.19.11 Inft: GigabitEthernet0/0/0/0.1119 Active

   Local Label: 24024 Remote: 1048577 Inft: LmdtMCAST RPF-ID: 3 TIDv4/v6: 0xE0000011/0xE0800011


Even though IOS XR PEs are configured, it doesn't appear that Profile 1 is supported in the data plane on IOS XRv for either XRv 5.3 or XRv 6.0. As I added the configuration to XR9 and XR8 and tested R5 multicast group pings, neither R13 or R14 interface addresses responded. 

I received this message from the console after enabling "debug mpls mldp all"

RP/0/0/CPU0:Mar  6 00:28:18.084 : mpls_ldp[1049]: %ROUTING-MLDP-5-BRANCH_ADD : 0x00001 [mdt 1:1 0] MP2MP 172.16.100.1, Add PIM MDT branch remote label no_label, local label no_label
RP/0/0/CPU0:Mar  6 00:28:20.153 : config[65738]: %MGBL-CONFIG-6-DB_COMMIT : Configuration committed by user 'Rob'. Use 'show configuration commit changes 1000000028' to view the changes.


RP/0/0/CPU0:XR8(config-pim-MCAST-ipv4)#RP/0/0/CPU0:Mar  6 00:28:28.453 : netio[312]: %PKT_INFRA-PAK-3-OWNERSHIP_PROCESS_FREE : Client with pid 434260 tried to access freed packet b0c08a0c (pak pid -434260)  : pkg/bin/netio : (PID=434260) :  -Traceback= e7de732 f7f6997 e7d18b4 f475f26 4225597 422265e d17d445 d17b518 42219ee d1c7050

This indicates to me either there is an issue on the device or other problem that inhibits XR from forwarding the traffic. IOSXR 9ks do this as well for L2VPN data plane forwarding. This tells me that data plane support is not available for this profile.

No comments:

Post a Comment