Thursday, December 20, 2018

CCIE SPv4 MPLS Multicast VPN - Profile 1 Default MDT - MLDP - MP2MP - PIM C-mcast Signaling

In this post we will leave the GRE encapsulated multicast traffic profiles in the rear view mirror and move over to the NG MVPN profiles. We will be leveraging multipoint LDP to provide the connectivity between the PE routers. Profiles 0, 3 and 11 use GRE encapsulation over the SP backbone. Profiles 1, 9 and 13 in this section use LDP encapsulation over the SP backbone.

There is also no PIM connectivity in the backbone, PIM is disabled in the backbone using only LDP. The Default MDT is replaced with the MP2MP trees and the Data MDT is replaced with the P2MP tree. The signaling from the customer to the provider is still PIM, an MPLS Label is allocated to forward the traffic over the backbone.

The root is configured on all of the PE routers which points to a router in the core. Multiple roots can be configured, for redundancy, any particular device can be the root(s). There is a label mapping message sent towards the root based on the shortest IGP path as soon as the root is defined on the PE. The BGP IPv4 MVPN is configured on the PEs and RRs, just like the GRE based profiles for Profile 3 and 11, this is as much BGP that is needed for this profile.

As soon as the PEs converge, they build the MP2MP Default MDT. The P2MP Data MDT is also supported. The IOS and XR configurations are below.



R1, R3 and R7
vrf definition MVPN
 vpn id 100:100
 !
 address-family ipv4
  mdt preference mldp 
  mdt default mpls mldp 192.0.2.22
  mdt data mpls mldp 10 immediate-switch


XR1
vrf CORE
 vpn id 100:100
!
route-policy RPL_MLDP_CORE
  set core-tree mldp-default
end-policy
!
mpls ldp
 mldp
  logging notifications
  address-family ipv4
!
multicast-routing
 address-family ipv4
  mdt source Loopback0
  interface all enable
 !
 vrf CORE
  address-family ipv4
   rate-per-route
   interface all enable
   accounting per-prefix
   mdt default mldp ipv4 192.0.2.22
   mdt data mldp 10 immediate-switch
!
router pim
 vrf CORE
  address-family ipv4
   rpf topology route-policy RPL_MLDP_CORE
   interface GigabitEthernet0/0/0/0.204

Let's take a look at the verification.

R1#show mpls mldp root 192.0.2.22

 Root node    : 192.0.2.22 
  Metric      : 4
  Distance    : 110
  Interface   : GigabitEthernet1.14 (via unicast RT)
  FEC count   : 1
  Path count  : 2
  Path(s)     : 100.64.14.4      LDP nbr: 192.0.2.4:0       GigabitEthernet1.14
              : 100.64.12.2      LDP nbr: 192.0.2.2:0       GigabitEthernet1.12


RP/0/0/CPU0:XR1#show mpls mldp root 192.0.2.22
Thu Dec 20 23:32:42.859 UTC
mLDP root database
 Root node    : 192.0.2.22 
  Metric      : 2
  Distance    : 110
  FEC count   : 1
  Path count  : 1

  Path(s)     : 100.64.112.120   LDP nbr: 192.0.2.22:0     

R1 and XR1 have defined roots.

To understand the background process, we can take a look at the debug, "debug mpls mldp all". As soon as the root is defined, the below outputs are kicked out.

MLDP-MFI: Enabled MLDP MFI client on Lspvif0; status =  ok
MLDP: Reclaimed success lsp vif: Lspvif0 address: 0.0.0.0 application: MDT vrf_id: 1
MLDP: Enabled IPv4 on Lspvif0 unnumbered with Loopback0
MLDP: Enable pim on lsp vif: Lspvif0
MLDP: Add success lsp vif: Lspvif0 address: 0.0.0.0 application: MDT vrf_id: 1
MLDP-MDT: [mdt 100:100 0] wavl insert success
MLDP: LDP root 192.0.2.22 added

A new interface, the LSPvif0 is created, the LSPvif is the Label Switch Path virtual interface and is the source of all the traffic over the backbone. PIM is enabled on the interface and PIM neighbors are formed between all of the PE routers, forming the MP2MP MDT. The MP2MP MDT is always given the value of "0".

MLDP: nhop 100.64.14.4 added
MLDP-NBR: 192.0.2.4:0 mapped to next_hop: 100.64.14.4
MLDP: nhop 100.64.12.2 added
MLDP-NBR: 192.0.2.2:0 mapped to next_hop: 100.64.12.2
MLDP: Root 192.0.2.22 old paths: 0 new paths: 2
MLDP-DB: [mdt 100:100 0] Changing peer from none to 192.0.2.4:0
MLDP-DB: [mdt 100:100 0] Add accepting element nbr: 192.0.2.4:0
MLDP-MFI: For accepting element nbr: 192.0.2.4:0, [mdt 100:100 0] MFI allocated label 1021
MLDP: [mdt 100:100 0] label mappping msg sent to 192.0.2.4:0 success
MLDP-DB: [mdt 100:100 0] path to peer: 192.0.2.4:0 changed None:0.0.0.0 to GigabitEthernet1.14:100.64.14.4
MLDP-MFI: After the MFI call For accepting element nbr: 192.0.2.4:0, Bind local label 1021 to PSM ID: 8, returned: 1021
MLDP-DB: [mdt 100:100 0] Activate accepting element nbr: 192.0.2.4:0

The leaf (PE) now needs to signal to the root that is a leaf of the tree by sending a label mapping message towards the root via the IGP shortest path. The label allocated is label 1021. 

MLDP-LDP: [mdt 100:100 0] label mapping from: 192.0.2.4:0 label: 4018 root: 192.0.2.22 Opaque_len: 14 sess_hndl: 0x6
MLDP-DB: [mdt 100:100 0] Set upstream label from no_label to 4018

In order to reach the root a label value has to be allocated to reach the root, this is the upstream label, label 4018 is allocated.

%LINEPROTO-5-UPDOWN: Line protocol on Interface Lspvif0, changed state to up
%PIM-5-NBRCHG: VRF MVPN: neighbor 192.0.2.7 UP on interface Lspvif0 
%PIM-5-DRCHG: VRF MVPN: DR change from neighbor 0.0.0.0 to 192.0.2.7 on interface Lspvif0
%PIM-5-NBRCHG: VRF MVPN: neighbor 192.0.2.3 UP on interface Lspvif0 
%PIM-5-NBRCHG: VRF MVPN: neighbor 192.0.2.21 UP on interface Lspvif0 

%PIM-5-DRCHG: VRF MVPN: DR change from neighbor 192.0.2.7 to 192.0.2.21 on interface Lspvif0

The PIM neighbors are up inside the VRF to the other PE routers.

R1#sh ip pim vrf MVPN neighbor 
PIM Neighbor Table
Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority,
      P - Proxy Capable, S - State Refresh Capable, G - GenID Capable,
      L - DR Load-balancing Capable
Neighbor          Interface                Uptime/Expires    Ver   DR
Address                                                            Prio/Mode
100.64.201.15     GigabitEthernet1.201     23:50:08/00:01:28 v2    1 / DR S P G
192.0.2.21        Lspvif0                  00:29:06/00:01:19 v2    1 / DR G
192.0.2.3         Lspvif0                  00:29:08/00:01:38 v2    1 / S P G

192.0.2.7         Lspvif0                  00:29:08/00:01:39 v2    1 / S P G


R3#sh ip pim vrf MVPN neighbor 
PIM Neighbor Table
Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority,
      P - Proxy Capable, S - State Refresh Capable, G - GenID Capable,
      L - DR Load-balancing Capable
Neighbor          Interface                Uptime/Expires    Ver   DR
Address                                                            Prio/Mode
100.64.211.17     GigabitEthernet1.211     23:50:20/00:01:26 v2    1 / DR S P G
192.0.2.21        Lspvif0                  06:35:44/00:01:30 v2    1 / DR G
192.0.2.1         Lspvif0                  00:29:27/00:01:21 v2    1 / S P G

192.0.2.7         Lspvif0                  07:02:22/00:01:20 v2    1 / S P G


R7#sh ip pim vrf MVPN neighbor 
PIM Neighbor Table
Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority,
      P - Proxy Capable, S - State Refresh Capable, G - GenID Capable,
      L - DR Load-balancing Capable
Neighbor          Interface                Uptime/Expires    Ver   DR
Address                                                            Prio/Mode
100.64.214.18     GigabitEthernet1.214     23:50:38/00:01:40 v2    1 / DR S P G
192.0.2.21        Lspvif0                  06:36:05/00:01:40 v2    1 / DR G
192.0.2.1         Lspvif0                  00:29:48/00:01:31 v2    1 / S P G
192.0.2.3         Lspvif0                  07:02:43/00:01:28 v2    1 / S P G


RP/0/0/CPU0:XR1#sh pim vrf CORE neighbor 
Thu Dec 20 23:21:06.626 UTC

PIM neighbors in VRF CORE
Flag: B - Bidir capable, P - Proxy capable, DR - Designated Router,
      E - ECMP Redirect capable
      * indicates the neighbor created for this router

Neighbor Address             Interface              Uptime    Expires  DR pri   Flags

100.64.204.11*               GigabitEthernet0/0/0/0.204 23:06:13  00:01:16 1      B E
100.64.204.16                GigabitEthernet0/0/0/0.204 23:06:09  00:01:25 1 (DR) P
192.0.2.1                    LmdtCORE               06:36:29  00:01:38 1      P
192.0.2.3                    LmdtCORE               06:36:29  00:01:36 1      P
192.0.2.7                    LmdtCORE               06:36:29  00:01:37 1      P
192.0.2.21*                  LmdtCORE               06:40:56  00:01:17 1 (DR)

The above outputs show the VRF only PIM neighbors, there are no SP core PIM neighbors, they are no longer needed since the traffic is forwarded via MPLS Labels.

R1#show mpls mldp database opaque_type mdt 100:100 0
LSM ID : 8 (RNR LSM ID: 9)   Type: MP2MP   Uptime : 00:33:02
  FEC Root           : 192.0.2.22 
  Opaque decoded     : [mdt 100:100 0] 
  Opaque length      : 11 bytes
  Opaque value       : 02 000B 0001000000010000000000
  RNR active LSP     : (this entry)
  Upstream client(s) :
    192.0.2.4:0    [Active]
      Expires        : Never         Path Set ID  : 8
      Out Label (U)  : 4018          Interface    : GigabitEthernet1.14*
      Local Label (D): 1021          Next Hop     : 100.64.14.4
  Replication client(s): 
    MDT  (VRF MVPN)
      Uptime         : 00:33:02      Path Set ID  : 9
      Interface      : Lspvif0       

The MPLS MLDP data above shows the local label 1021 and the out label 4018.

R1#show mpls forwarding-table labels 1021 detail 
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop    
Label      Label      or Tunnel Id     Switched      interface              
1021       No Label   [mdt 100:100 0][V]   \
                                       0             aggregate/MVPN 
        MAC/Encaps=0/0, MRU=0, Label Stack{}, via Ls0
        VPN route: MVPN
        No output feature configured
    Broadcast

Looking at the forwarding table we see the local label 1021, you'll notice that there is no "No Label", this is the label that will be used to send over the SP backbone. There is no PHP process in mLDP, rather there is a different label, the [mdt 100:100 0][v], indicates multicast traffic. All other unicast traffic is forwarded by other labels.

R4#sh mpls forwarding-table labels 4018 detail 
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop    
Label      Label      or Tunnel Id     Switched      interface              
4018       91011      [mdt 100:100 0]  10970         Gi1.114    100.64.114.111
        MAC/Encaps=18/22, MRU=1500, Label Stack{91011}
        000C293B3AE6000C29565354810000728847 16383000
        No output feature configured
    Broadcast

To prove that label 4018 is received by R4 is then switched to label 91011 towards XR1 for MDT traffic.

RP/0/0/CPU0:XR1#show mpls mldp database mp2mp 
Thu Dec 20 23:27:27.080 UTC
mLDP database
LSM-ID: 0x00001  (RNR LSM-ID: 0x00002)  Type: MP2MP  Uptime: 06:44:21
  FEC Root           : 192.0.2.22 
  Opaque decoded     : [mdt 100:100 0]
  RNR active LSP     : (this entry)
  Candidate RNR ID(s): 
  Upstream neighbor(s) :
    192.0.2.22:0 [Active] Uptime: 06:44:21  
      Next Hop        : 100.64.112.120
      Interface       : GigabitEthernet0/0/0/0.112
      Local Label (D) : 91012             Remote Label (U): 92019
  Downstream  client(s): 
    LDP 192.0.2.4:0    Uptime: 00:36:32
      Next Hop         : 100.64.114.4
      Interface        : GigabitEthernet0/0/0/0.114 
      Remote label (D) : 4009              Local label (U) : 91011
    PIM MDT            Uptime: 06:44:21
      Egress intf     : LmdtCORE
      Table ID        : IPv4: 0xe0000011 IPv6: 0xe0800011
      HLI             : 0x00002
      RPF ID          : 3

      Local Label     : 91010 (internal)

IOS XR has similar outputs, labels 91010 through 91012 are allocated for MDT traffic and label 4019 is the remote label towards R4.

RP/0/0/CPU0:XR1#show mpls forwarding labels 91010 91012        
Thu Dec 20 23:29:15.113 UTC
Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes       
Label  Label       or ID              Interface                    Switched    
------ ----------- ------------------ ------------ --------------- ------------
91010  92019       MLDP: 0x00001      Gi0/0/0/0.112 100.64.112.120  0           
       4009        MLDP: 0x00001      Gi0/0/0/0.114 100.64.114.4    0           
91011  92019       MLDP: 0x00001      Gi0/0/0/0.112 100.64.112.120  0           

91012  4009        MLDP: 0x00001      Gi0/0/0/0.114 100.64.114.4    0           

Labels 91010 to 91012 are the local labels, label 92019 and 4009 are the out label. These labels are for the multicast traffic.

Now that we have verified everything, we can now begin testing ASM and SSM traffic.

R17
interface Loopback0
 ip address 192.0.2.17 255.255.255.255
 ip pim sparse-mode
 ip igmp join-group 232.15.15.15 source 192.0.2.15
 ip igmp join-group 227.1.2.3
 ip igmp version 3

R18
interface Loopback0
 ip address 192.0.2.18 255.255.255.255
 ip pim sparse-mode
 ip igmp join-group 232.16.16.16 source 192.0.2.16
 ip igmp join-group 227.1.2.3

Now that we have have configured the customer side, we need to verify the MRIBs have been built.

R1#sh ip mroute vrf MVPN sparse 
(*, 224.21.21.21), 07:11:47/00:03:25, RP 192.0.2.15, flags: S
  Incoming interface: GigabitEthernet1.201, RPF nbr 100.64.201.15
  Outgoing interface list:
    Lspvif0, Forward/Sparse, 01:06:05/00:03:25

(*, 227.1.2.3), 07:11:47/00:02:57, RP 192.0.2.15, flags: S
  Incoming interface: GigabitEthernet1.201, RPF nbr 100.64.201.15
  Outgoing interface list:
    Lspvif0, Forward/Sparse, 01:06:06/00:02:57


R1#sh ip mroute vrf MVPN ssm    
(192.0.2.15, 232.15.15.15), 06:36:12/00:03:11, flags: sT
  Incoming interface: GigabitEthernet1.201, RPF nbr 100.64.201.15
  Outgoing interface list:

    Lspvif0, Forward/Sparse, 01:06:10/00:03:11



R3#sh ip mroute vrf MVPN sparse 
(*, 227.1.2.3), 07:10:28/00:02:47, RP 192.0.2.15, flags: S
  Incoming interface: Lspvif0, RPF nbr 192.0.2.1
  Outgoing interface list:
    GigabitEthernet1.211, Forward/Sparse, 07:10:28/00:02:47

R3#sh ip mroute vrf MVPN ssm    
(192.0.2.15, 232.15.15.15), 06:35:53/00:03:21, flags: sT
  Incoming interface: Lspvif0, RPF nbr 192.0.2.1
  Outgoing interface list:

    GigabitEthernet1.211, Forward/Sparse, 06:35:53/00:03:21



R7#sh ip mroute vrf MVPN sparse 
(*, 227.1.2.3), 07:12:44/00:03:01, RP 192.0.2.15, flags: S
  Incoming interface: Lspvif0, RPF nbr 192.0.2.1
  Outgoing interface list:
    GigabitEthernet1.214, Forward/Sparse, 07:12:44/00:03:01

R7#sh ip mroute vrf MVPN ssm    
(192.0.2.16, 232.16.16.16), 06:36:27/00:03:24, flags: sT
  Incoming interface: Lspvif0, RPF nbr 192.0.2.21
  Outgoing interface list:

    GigabitEthernet1.214, Forward/Sparse, 06:36:27/00:03:24

IOS has a couple keywords that allow us to breakdown the ASM signaled traffic from the SSM signaled traffic. 

RP/0/0/CPU0:XR1#show mrib vrf CORE route 
Fri Dec 21 00:00:28.725 UTC

(*,224.21.21.21) RPF nbr: 192.0.2.1 Flags: C RPF
  Up: 07:15:13
  Incoming Interface List
    LmdtCORE Flags: A LMI, Up: 07:15:13
  Outgoing Interface List
    GigabitEthernet0/0/0/0.204 Flags: F NS, Up: 07:15:13

(*,232.0.0.0/8) Flags: D P
  Up: 23:45:44

(192.0.2.16,232.16.16.16) RPF nbr: 100.64.204.16 Flags: RPF
  Up: 06:38:54
  Incoming Interface List
    GigabitEthernet0/0/0/0.204 Flags: A, Up: 06:38:54
  Outgoing Interface List

    LmdtCORE Flags: F NS LMI, Up: 06:38:54

XR doesn't have the nifty keywords that IOS has but it is easy to differentiate the ASM (*, G) from the SSM (S, G) traffic.

We need to make sure that the customers know about the C-RP, which is R15 in this case.

R17#sh ip pim rp map
PIM Group-to-RP Mappings

Group(s) 224.0.0.0/4
  RP 192.0.2.15 (?), v2
    Info source: 192.0.2.15 (?), via bootstrap, priority 0, holdtime 150

         Uptime: 07:13:16, expires: 00:01:51


R1#sh ip pim vrf MVPN rp map
PIM Group-to-RP Mappings

Group(s) 224.0.0.0/4
  RP 192.0.2.15 (?), v2
    Info source: 192.0.2.15 (?), via bootstrap, priority 0, holdtime 150

         Uptime: 1d00h, expires: 00:02:02


RP/0/0/CPU0:XR1#sh pim vrf CORE rp map
Fri Dec 21 00:00:01.217 UTC
PIM Group-to-RP Mappings
Group(s) 224.0.0.0/4
  RP 192.0.2.15 (?), v2
    Info source: 192.0.2.1 (?), elected via bsr, priority 0, holdtime 150

      Uptime: 07:14:45, expires: 00:02:28

We see that R15 is the RP and it advertised via BSR.

Now we need to test that multicast traffic is working.

R15#ping 227.1.2.3 repeat 2
Type escape sequence to abort.
Sending 2, 100-byte ICMP Echos to 227.1.2.3, timeout is 2 seconds:

Reply to request 0 from 100.64.211.17, 40 ms
Reply to request 0 from 100.64.214.18, 43 ms
Reply to request 0 from 192.0.2.17, 42 ms
Reply to request 0 from 192.0.2.18, 41 ms
Reply to request 1 from 192.0.2.18, 11 ms
Reply to request 1 from 192.0.2.18, 16 ms
Reply to request 1 from 192.0.2.17, 13 ms
Reply to request 1 from 100.64.211.17, 13 ms
Reply to request 1 from 192.0.2.17, 13 ms

Reply to request 1 from 100.64.214.18, 11 ms

We'll first ping the ASM group that both R18 and R17 have signaled to join. We'll need to check the FHR, First Hop Router, R1 and XR1, to see that the ASM (*, G) has a (S, G) binding.

R1#sh ip mroute vrf MVPN
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
       L - Local, P - Pruned, R - RP-bit set, F - Register flag,
       T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet,
       X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
       U - URD, I - Received Source Specific Host Report, 
       Z - Multicast Tunnel, z - MDT-data group sender, 
       Y - Joined MDT-data group, y - Sending to MDT-data group, 
       G - Received BGP C-Mroute, g - Sent BGP C-Mroute, 
       N - Received BGP Shared-Tree Prune, n - BGP C-Mroute suppressed, 
       Q - Received BGP S-A Route, q - Sent BGP S-A Route, 
       V - RD & Vector, v - Vector, p - PIM Joins on route, 
       x - VxLAN group
Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join
 Timers: Uptime/Expires
 Interface state: Interface, Next-Hop or VCD, State/Mode

(192.0.2.15, 232.15.15.15), 06:42:26/00:02:53, flags: sT
  Incoming interface: GigabitEthernet1.201, RPF nbr 100.64.201.15
  Outgoing interface list:
    Lspvif0, Forward/Sparse, 01:12:25/00:02:53

(*, 224.21.21.21), 07:18:05/00:03:07, RP 192.0.2.15, flags: S
  Incoming interface: GigabitEthernet1.201, RPF nbr 100.64.201.15
  Outgoing interface list:
    Lspvif0, Forward/Sparse, 01:12:23/00:03:07

(*, 227.1.2.3), 07:18:05/stopped, RP 192.0.2.15, flags: S
  Incoming interface: GigabitEthernet1.201, RPF nbr 100.64.201.15
  Outgoing interface list:
    Lspvif0, Forward/Sparse, 01:12:24/00:02:33

(192.0.2.15, 227.1.2.3), 00:00:37/00:02:22, flags: T
  Incoming interface: GigabitEthernet1.201, RPF nbr 100.64.201.15
  Outgoing interface list:
    Lspvif0, Forward/Sparse, 00:00:37/00:02:52

(100.64.201.15, 227.1.2.3), 00:00:39/00:02:20, flags: T
  Incoming interface: GigabitEthernet1.201, RPF nbr 100.64.201.15
  Outgoing interface list:

    Lspvif0, Forward/Sparse, 00:00:39/00:02:50



R16#ping 227.1.2.3 repeat 2
Type escape sequence to abort.
Sending 2, 100-byte ICMP Echos to 227.1.2.3, timeout is 2 seconds:

Reply to request 0 from 100.64.214.18, 41 ms
Reply to request 0 from 192.0.2.17, 43 ms
Reply to request 0 from 100.64.211.17, 42 ms
Reply to request 0 from 192.0.2.18, 42 ms
Reply to request 1 from 192.0.2.17, 13 ms
Reply to request 1 from 192.0.2.18, 19 ms
Reply to request 1 from 192.0.2.17, 18 ms
Reply to request 1 from 100.64.211.17, 18 ms
Reply to request 1 from 100.64.214.18, 18 ms

Reply to request 1 from 192.0.2.18, 16 ms



RP/0/0/CPU0:XR1#show mrib vrf CORE route 
Fri Dec 21 00:04:12.609 UTC

IP Multicast Routing Information Base
Entry flags: L - Domain-Local Source, E - External Source to the Domain,
    C - Directly-Connected Check, S - Signal, IA - Inherit Accept,
    IF - Inherit From, D - Drop, ME - MDT Encap, EID - Encap ID,
    MD - MDT Decap, MT - MDT Threshold Crossed, MH - MDT interface handle
    CD - Conditional Decap, MPLS - MPLS Decap, EX - Extranet
    MoFE - MoFRR Enabled, MoFS - MoFRR State, MoFP - MoFRR Primary
    MoFB - MoFRR Backup, RPFID - RPF ID Set, X - VXLAN
Interface flags: F - Forward, A - Accept, IC - Internal Copy,
    NS - Negate Signal, DP - Don't Preserve, SP - Signal Present,
    II - Internal Interest, ID - Internal Disinterest, LI - Local Interest,
    LD - Local Disinterest, DI - Decapsulation Interface
    EI - Encapsulation Interface, MI - MDT Interface, LVIF - MPLS Encap,
    EX - Extranet, A2 - Secondary Accept, MT - MDT Threshold Crossed,
    MA - Data MDT Assigned, LMI - mLDP MDT Interface, TMI - P2MP-TE MDT Interface
    IRMI - IR MDT Interface


(*,224.21.21.21) RPF nbr: 192.0.2.1 Flags: C RPF
  Up: 07:18:57
  Incoming Interface List
    LmdtCORE Flags: A LMI, Up: 07:18:57
  Outgoing Interface List
    GigabitEthernet0/0/0/0.204 Flags: F NS, Up: 07:18:57

(100.64.204.16,227.1.2.3) RPF nbr: 100.64.204.16 Flags: RPF
  Up: 00:00:26
  Incoming Interface List
    GigabitEthernet0/0/0/0.204 Flags: A, Up: 00:00:26
  Outgoing Interface List
    LmdtCORE Flags: F NS LMI, Up: 00:00:26

(192.0.2.16,227.1.2.3) RPF nbr: 100.64.204.16 Flags: RPF
  Up: 00:00:24
  Incoming Interface List
    GigabitEthernet0/0/0/0.204 Flags: A, Up: 00:00:24
  Outgoing Interface List
    LmdtCORE Flags: F NS LMI, Up: 00:00:24

(*,232.0.0.0/8) Flags: D P
  Up: 23:49:28

(192.0.2.16,232.16.16.16) RPF nbr: 100.64.204.16 Flags: RPF
  Up: 06:42:38
  Incoming Interface List
    GigabitEthernet0/0/0/0.204 Flags: A, Up: 06:42:38
  Outgoing Interface List

    LmdtCORE Flags: F NS LMI, Up: 06:42:38

We see that XR1 also has a (S, G) entry for the (*, 227.1.2.3) entry. 

R7#sh ip mroute vrf MVPN sparse 
(*, 227.1.2.3), 07:21:10/00:03:27, RP 192.0.2.15, flags: S
  Incoming interface: Lspvif0, RPF nbr 192.0.2.1
  Outgoing interface list:
    GigabitEthernet1.214, Forward/Sparse, 07:21:10/00:03:27

(192.0.2.15, 227.1.2.3), 00:00:06/00:02:53, flags: T
  Incoming interface: Lspvif0, RPF nbr 192.0.2.1
  Outgoing interface list:
    GigabitEthernet1.214, Forward/Sparse, 00:00:06/00:03:27

(100.64.201.15, 227.1.2.3), 00:00:08/00:02:51, flags: T
  Incoming interface: Lspvif0, RPF nbr 192.0.2.1
  Outgoing interface list:
    GigabitEthernet1.214, Forward/Sparse, 00:00:08/00:03:27

(192.0.2.16, 227.1.2.3), 00:02:37/00:00:22, flags: T
  Incoming interface: Lspvif0, RPF nbr 192.0.2.21
  Outgoing interface list:
    GigabitEthernet1.214, Forward/Sparse, 00:02:37/00:03:27

(100.64.204.16, 227.1.2.3), 00:02:39/00:00:20, flags: T
  Incoming interface: Lspvif0, RPF nbr 192.0.2.21
  Outgoing interface list:

    GigabitEthernet1.214, Forward/Sparse, 00:02:39/00:03:27


R3#sh ip mroute vrf MVPN sparse 
(*, 227.1.2.3), 07:22:14/00:02:51, RP 192.0.2.15, flags: S
  Incoming interface: Lspvif0, RPF nbr 192.0.2.1
  Outgoing interface list:
    GigabitEthernet1.211, Forward/Sparse, 07:22:14/00:02:51

(192.0.2.16, 227.1.2.3), 00:00:05/00:02:54, flags: T
  Incoming interface: Lspvif0, RPF nbr 192.0.2.21
  Outgoing interface list:
    GigabitEthernet1.211, Forward/Sparse, 00:00:05/00:03:26

(100.64.204.16, 227.1.2.3), 00:00:05/00:02:54, flags: T
  Incoming interface: Lspvif0, RPF nbr 192.0.2.21
  Outgoing interface list:
    GigabitEthernet1.211, Forward/Sparse, 00:00:05/00:03:24

(192.0.2.15, 227.1.2.3), 00:01:09/00:01:50, flags: T
  Incoming interface: Lspvif0, RPF nbr 192.0.2.1
  Outgoing interface list:
    GigabitEthernet1.211, Forward/Sparse, 00:01:09/00:03:19

(100.64.201.15, 227.1.2.3), 00:01:11/00:01:48, flags: T
  Incoming interface: Lspvif0, RPF nbr 192.0.2.1
  Outgoing interface list:

    GigabitEthernet1.211, Forward/Sparse, 00:01:11/00:03:16

We check R3 and R7 to see there are (S, G) entries for the (*, 227.1.2.3) that was signaled. We see this for both R15 and R16.

R15#ping 232.15.15.15 source lo0 repeat 2
Type escape sequence to abort.
Sending 2, 100-byte ICMP Echos to 232.15.15.15, timeout is 2 seconds:
Packet sent with a source address of 192.0.2.15 

Reply to request 0 from 192.0.2.17, 6 ms
Reply to request 0 from 192.0.2.17, 6 ms
Reply to request 1 from 192.0.2.17, 6 ms

Reply to request 1 from 192.0.2.17, 6 ms

We ping the SSM group sourcing it from the loopback and get replies back from R17.

R3#sh ip mroute vrf MVPN ssm    
(192.0.2.15, 232.15.15.15), 06:48:52/00:03:09, flags: sT
  Incoming interface: Lspvif0, RPF nbr 192.0.2.1
  Outgoing interface list:

    GigabitEthernet1.211, Forward/Sparse, 06:48:52/00:03:09

Checking R3 we see an entry in the VRF MRIB that is an (S, G) entry.

R16#ping 232.16.16.16 source lo0 repeat 2
Type escape sequence to abort.
Sending 2, 100-byte ICMP Echos to 232.16.16.16, timeout is 2 seconds:
Packet sent with a source address of 192.0.2.16 

Reply to request 0 from 192.0.2.18, 13 ms
Reply to request 0 from 192.0.2.18, 15 ms
Reply to request 1 from 192.0.2.18, 6 ms

Reply to request 1 from 192.0.2.18, 6 ms


R7#sh ip mroute vrf MVPN ssm    
(192.0.2.16, 232.16.16.16), 06:47:49/00:02:51, flags: sT
  Incoming interface: Lspvif0, RPF nbr 192.0.2.21
  Outgoing interface list:

    GigabitEthernet1.214, Forward/Sparse, 06:47:49/00:02:51

The same thing is true for R16.

Now that we have tested there is reachability, let's take a look at the MLDP database summaries and the forwarding tables to make sure traffic has been signaled correctly and the flows are working correctly.

R1#show mpls mldp database | in Label
      Out Label (U)  : 4018          Interface    : GigabitEthernet1.14*
      Local Label (D): 1021          Next Hop     : 100.64.14.4


R1#show mpls forwarding-table labels 1021
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop    
Label      Label      or Tunnel Id     Switched      interface              
1021  [T]  No Label   [mdt 100:100 0][V]   \
                                       610           aggregate/MVPN 

[T]     Forwarding through a LSP tunnel.
        View additional labelling info with the 'detail' option


RP/0/0/CPU0:XR1#sh mpls mldp database | in Label         
Fri Dec 21 01:07:56.347 UTC
      Local Label     : 91013 (internal)
      Local Label     : 91014 (internal)
      Local Label     : 91015 (internal)
      Local Label (D) : 91012             Remote Label (U): 92019
      Local Label     : 91010 (internal)

RP/0/0/CPU0:XR1#show mpls forwarding labels 91010  91015
Fri Dec 21 01:07:58.297 UTC
Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes       
Label  Label       or ID              Interface                    Switched    
------ ----------- ------------------ ------------ --------------- ------------
91010  92019       MLDP: 0x00001      Gi0/0/0/0.112 100.64.112.120  0           
       4009        MLDP: 0x00001      Gi0/0/0/0.114 100.64.114.4    0           
91011  92019       MLDP: 0x00001      Gi0/0/0/0.112 100.64.112.120  0           
91012  4009        MLDP: 0x00001      Gi0/0/0/0.114 100.64.114.4    0           
91013  92020       MLDP: 0x00003      Gi0/0/0/0.112 100.64.112.120  0           
91014  92021       MLDP: 0x00004      Gi0/0/0/0.112 100.64.112.120  0           
91015  92022       MLDP: 0x00005      Gi0/0/0/0.112 100.64.112.120  0         

The first hop routers signal a label for every MDT that is signaled for. The MP2MP and P2MP each have a label allocated. 

R3#show mpls mldp database | in Label 
      Out Label (U)  : None          Interface    : GigabitEthernet1.23*
      Local Label (D): 3021          Next Hop     : 100.64.23.2
      Out Label (U)  : None          Interface    : GigabitEthernet1.23*
      Local Label (D): 3024          Next Hop     : 100.64.23.2
      Out Label (U)  : None          Interface    : GigabitEthernet1.23*
      Local Label (D): 3022          Next Hop     : 100.64.23.2
      Out Label (U)  : None          Interface    : GigabitEthernet1.23*
      Local Label (D): 3025          Next Hop     : 100.64.23.2
      Out Label (U)  : None          Interface    : GigabitEthernet1.36*
      Local Label (D): 3023          Next Hop     : 100.64.36.6
      Out Label (U)  : 2009          Interface    : GigabitEthernet1.23*
      Local Label (D): 3020          Next Hop     : 100.64.23.2


R3#show mpls forwarding-table labels 3020 - 3025 
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop    
Label      Label      or Tunnel Id     Switched      interface              
3020  [T]  No Label   [mdt 100:100 0][V]   \
                                       7686          aggregate/MVPN 
3021  [T]  No Label   [mdt 100:100 1][V]   \
                                       1464          aggregate/MVPN 
3022  [T]  No Label   [mdt 100:100 2][V]   \
                                       488           aggregate/MVPN 
3023  [T]  No Label   [mdt 100:100 3][V]   \
                                       366           aggregate/MVPN 
3024  [T]  No Label   [mdt 100:100 2][V]   \
                                       0             aggregate/MVPN 
           6018       [mdt 100:100 2][V]   \
                                       0             Gi1.36     100.64.36.6 
3025  [T]  No Label   [mdt 100:100 3][V]   \
                                       0             aggregate/MVPN 

[T]     Forwarding through a LSP tunnel.
        View additional labelling info with the 'detail' option


R7#sh mpls mldp database | in Label             
      Out Label (U)  : None          Interface    : GigabitEthernet1.127*
      Local Label (D): 7021          Next Hop     : 100.64.127.12
      Out Label (U)  : None          Interface    : GigabitEthernet1.127*
      Local Label (D): 7022          Next Hop     : 100.64.127.12
      Out Label (U)  : None          Interface    : GigabitEthernet1.127*
      Local Label (D): 7023          Next Hop     : 100.64.127.12
      Out Label (U)  : 92018         Interface    : GigabitEthernet1.127*
      Local Label (D): 7020          Next Hop     : 100.64.127.12


R7#show mpls forwarding-table labels 7020 - 7023
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop    
Label      Label      or Tunnel Id     Switched      interface              
7020  [T]  No Label   [mdt 100:100 0][V]   \
                                       6832          aggregate/MVPN 
7021  [T]  No Label   [mdt 100:100 1][V]   \
                                       1464          aggregate/MVPN 
7022  [T]  No Label   [mdt 100:100 2][V]   \
                                       488           aggregate/MVPN 
7023  [T]  No Label   [mdt 100:100 3][V]   \
                                       366           aggregate/MVPN 
           6009       [mdt 100:100 3][V]   \
                                       366           Gi1.67     100.64.67.6 

[T]     Forwarding through a LSP tunnel.
        View additional labelling info with the 'detail' option

Once the multicast traffic is signaled, the MP2MP and P2MP labels are signaled and used to forward the traffic. The key thing to remember here is that Profile 1 is a direct replacement for Profile 0, leveraging MPLS LDP to encapsulate the traffic. Now both unicast and multicast traffic is LDP encapsulated. This is the easiest barrier to entry into Next Generation MVPN.

Thanks for stopping by!
Rob Riker, CCIE #50693

No comments:

Post a Comment