Sie sind auf Seite 1von 57

JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc.

1

BGP MVPN RPT-SPT Mode
Aditya Mahale (JTAC)
!"#$% '( )'*+%*+,
BGP MVPN RPT-SPT Mode .................................................................................................................................................. 1
Overview ................................................................................................................................................................................ 2
References ............................................................................................................................................................................. 2
spt-only Vs rpt-spt mode ........................................................................................................................................................ 2
Test Setup .............................................................................................................................................................................. 2
Different States in RPT-SPT Mode ........................................................................................................................................ 4
Initial State .............................................................................................................................................................................. 4
Receiver sends (*,G), No active source ................................................................................................................................. 6
State on PE-RECV ............................................................................................................................................................. 8
State on PE-RP ................................................................................................................................................................ 11
Source becomes Active, First Packet ................................................................................................................................... 18
State on CE-SRC and CE-RP .......................................................................................................................................... 20
State on PE-RP ................................................................................................................................................................ 21
State on PE-SRC .............................................................................................................................................................. 25
State on PE-RECV ........................................................................................................................................................... 28
Second Data packet onwards .............................................................................................................................................. 32
Source Stops:SPT to RPT Switch ........................................................................................................................................ 32
State on PE-SRC .............................................................................................................................................................. 34
State on PE-RP ................................................................................................................................................................ 36
State on PE-RECV ........................................................................................................................................................... 39
Directly connected Sources and Receivers .......................................................................................................................... 39
Directly connected Sources .............................................................................................................................................. 39
Directly connected Receivers ........................................................................................................................................... 39
Appendix I: Configurations ................................................................................................................................................... 39
Appendix II: Debug Commands ........................................................................................................................................... 57





JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 2


Overview
This document tries to capture state transitions for PIM and MVPN on PEs playing different roles in BGP (NGEN) MVPN
network. Usually while troubleshooting I we get cases like Type 5 not generated or Type 7 route not generated. Once we
know what is the trigger for these routes to be generated and who is supposed to create these routes we would know
what to look for when issue happens. Also the document gives the working state of RPT-SPT mode, which we can
compare, against a broken state.
References
Before reading this document, familiarize yourself with configurations, theory and troubleshooting for default MVPN mode
that is spt-only mode. Also read up on how MVPN routes are encoded. I have given some references for spt-only mode
and route encodings below
http://www.juniper.net/us/en/local/pdf/app-notes/3500142-en.pdf
http://forums.juniper.net/jnet/attachments/jnet/Day1Books/87/3/TW_BGP_MVPNs.pdf
https://matrix.juniper.net/docs/DOC-154076
http://cvs.juniper.net/cgi-bin/viewcvs.cgi/sw-projects/mpls/l3-vpn/ngen-mvpn/great-mvpn-doc.doc?rev=1.3&view=log

spt-only Vs rpt-spt mode
In spt-only mode as name suggests there is no shared tree in the mvpn core. The data is forwarded directly from the
source to the receivers. The way this is achieved with ASM running in customer network is that when receiver PE gets the
(*,G) it doesnt advertise the Type-6 shared tree c-multicast route, instead it waits for the source to be active. When the
source becomes active, it will generate Type-5 source active route. When receiver PE gets Type-5, it will generate Type-
7, source tree c-multicast route. In order for PEs to learn about the source, there is restriction in spt-only mode that at
least one of the PEs should either be a RP or should be running MSDP with C-RP.
For some customers this limitation is undesirable, they dont want to co-ordinate the RPs with providers in that case rpt-
spt mode has to be configured. This mode comes with some of its own limitations like traffic patterns are a little
unpredictable since in shared tree mode, there is a RPT to SPT switchover. Also there is a possibility of duplicate traffic
during this switch period. From troubleshooting perspective, rpt-spt mode brings added state transtions that we need to
track.
Test Setup
I shall be using following test setup to demonstrate different steps in rpt-spt mode, the configurations for the routers is
given in the last section for configurations.


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 3



JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 4

Roles of the PEs and CEs are as follows:
PE-SRC: PE connected to the CE-SRC
CE-SRC:Customer box directly connected to SRC
PE-RP:PE connected to CE-RP
CE-RP:CE acting as RP in this MVPN
PE-RECV:PE connected to CE-RECV
CE-RECV:Customer box directly connected to hosts acting as receivers
Different interfaces and loopback ips are shown in the diagram. The RP address is 50.50.50.1. The (S,G) is
(41.41.41.2,224.1.1.1)
The JUNOS used on PE boxes:
lab@zenith-re0> show version
Hostname: zenith-re0
Model: mx480
JUNOS Base OS boot [12.3-20131211.0]
JUNOS Base OS Software Suite [12.3-20131211.0]
JUNOS Kernel Software Suite [12.3-20131211.0]
JUNOS Crypto Software Suite [12.3-20131211.0]
Different States in RPT-SPT Mode
Initial State
In the initial state, we have configured ip network, MPLS network, BGP with inet-vpn unicast and inet-mvpn signaling
families, L3VPN and P2MP LSPs. PEs have sent Type-1 AD routes to discover each other. All I-PMSIs have been
established and are up.
lab@zenith-re0# run show route table ngen.mvpn
ngen.mvpn.0: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
1:1.1.1.1:3:1.1.1.1/240
*[MVPN/70] 4d 05:35:25, metric2 1
Indirect
1:6.6.6.6:3:6.6.6.6/240
*[BGP/170] 4d 05:28:36, localpref 100, from 2.2.2.2


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 5
AS path: I, validation-state: unverified
> to 192.169.1.2 via xe-3/0/0.0, label-switched-path zen-to-ear
1:7.7.7.7:3:7.7.7.7/240
*[BGP/170] 4d 05:28:36, localpref 100, from 2.2.2.2
AS path: I, validation-state: unverified
> to 192.169.1.2 via xe-3/0/0.0, label-switched-path zen-to-raj
[edit]
lab@Rajini# run show route table ngen.mvpn

ngen.mvpn.0: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
1:1.1.1.1:3:1.1.1.1/240
*[BGP/170] 4d 05:29:07, localpref 100, from 2.2.2.2
AS path: I, validation-state: unverified
> to 192.169.7.1 via xe-0/0/1.0, label-switched-path raj-to-zen
1:6.6.6.6:3:6.6.6.6/240
*[BGP/170] 4d 05:31:03, localpref 100, from 2.2.2.2
AS path: I, validation-state: unverified
> to 192.169.8.1 via xe-0/0/0.0, label-switched-path raj-to-ear
1:7.7.7.7:3:7.7.7.7/240
*[MVPN/70] 4d 05:35:22, metric2 1
Indirect

lab@Earth# run show route table ngen.mvpn
ngen.mvpn.0: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
1:1.1.1.1:3:1.1.1.1/240
*[BGP/170] 4d 05:29:28, localpref 100, from 2.2.2.2
AS path: I, validation-state: unverified
> to 192.169.8.2 via xe-0/0/3.0, label-switched-path ear-to-zen
1:6.6.6.6:3:6.6.6.6/240
*[MVPN/70] 4d 05:35:58, metric2 1


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 6
Indirect
1:7.7.7.7:3:7.7.7.7/240
*[BGP/170] 4d 05:31:27, localpref 100, from 2.2.2.2
AS path: I, validation-state: unverified
> to 192.169.6.1 via xe-0/0/2.0


No PIM state anywhere:

lab@zenith-re0# run show pim join instance ngen
Instance: PIM.ngen Family: INET
R = Rendezvous Point Tree, S = Sparse, W = Wildcard

Instance: PIM.ngen Family: INET6
R = Rendezvous Point Tree, S = Sparse, W = Wildcard

Receiver sends (*,G), No active source
Steps in the diagram are simplified ones and do not match the detailed steps given in the text.


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 7




JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 8
State on PE-RECV
1. PE-RECV gets (*,G) join from CE-RECV
2. (*,G) triggers creation of Type-6 shared tree c-multicast route
3. Create PIM state as (*,G) with RP as upstream neighbor
4. Create a multicast forwarding entry based on *,G state
5. Become a leaf to I-PMSI(since we are using Inclusive) rooted at PE-RP
6. Send Type-6 to RR/all neighbors with rt-import community with matches the rt-import in unicast route to RP
address
1:6.6.6.6:3:6.6.6.6/240 (1 entry, 1 announced)
*BGP Preference: 170/-101
PMSI: Flags 0x0: Label 0: RSVP-TE: Session_13[6.6.6.6:0:40562:6.6.6.6]
Next hop type: Indirect
Address: 0x92af1a4
Next-hop reference count: 4
Source: 2.2.2.2
Protocol next hop: 6.6.6.6
Indirect next hop: 2 no-forward INH Session ID: 0x0
State: <Secondary Active Int Ext>
Local AS: 100 Peer AS: 100



lab@zenith-re0> show route advertising-protocol bgp 2.2.2.2 table ngen.mvpn detail

ngen.mvpn.0: 4 destinations, 4 routes (4 active, 0 holddown, 0 hidden)
* 1:1.1.1.1:3:1.1.1.1/240 (1 entry, 1 announced)
BGP group ibgp type Internal
Route Distinguisher: 1.1.1.1:3
Nexthop: Self
Flags: Nexthop Change
Localpref: 100
AS path: [100] I
Communities: target:100:3
PMSI: Flags 0x1: Label 0: RSVP-TE: Session_13[1.1.1.1:0:29168:1.1.1.1]


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 9

* 6:6.6.6.6:3:100:32:50.50.50.1:32:224.1.1.1/240 (1 entry, 1 announced)
BGP group ibgp type Internal
Route Distinguisher: 6.6.6.6:3
Nexthop: Self
Flags: Nexthop Change
Localpref: 100
AS path: [100] I
Communities: target:6.6.6.6:7<<<<<This matches rt-import of unicast route to RP
[edit]
lab@zenith-re0# run show route forwarding-table multicast vpn ngen
Routing table: ngen.inet
Internet:
Destination Type RtRef Next hop Type Index NhRef Netif
224.0.0.0/4 user 0 rslv 788 1
224.0.0.0/4 perm 0 mdsc 700 2
224.0.0.0/24 user 1 mdsc 700 2
224.0.0.1/32 perm 0 224.0.0.1 mcst 696 9
224.0.0.2/32 user 1 224.0.0.2 mcst 696 9
224.0.0.5/32 user 1 224.0.0.5 mcst 696 9
224.0.0.13/32 user 1 224.0.0.13 mcst 696 9
224.0.0.22/32 user 1 224.0.0.22 mcst 696 9
224.1.1.1/32 user 0 indr 1048597 2
comp 1009 1

Destination: 224.1.1.1/32
Route type: user
Route reference: 0 Route interface-index: 381
Flags: cached, check incoming interface , accounting, sent to PFE, rt nh decoupled
Next-hop type: indirect Index: 1048597 Reference: 2
Nexthop:
Next-hop type: composite Index: 1009 Reference: 1


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 10
Next-hop type: unicast Index: 1048596 Reference: 2
Next-hop interface: ge-0/0/1.0

<-----forwarding entry based on *,G
[edit]
lab@zenith-re0# run show multicast route instance ngen extensive
Instance: ngen Family: INET
Group: 224.1.1.1/32
Source: *
Upstream interface: vt-3/3/0.2
Downstream interface list:
ge-0/0/1.0
Number of outgoing interfaces: 1
Session description: NOB Cross media facilities
Statistics: 0 kBps, 0 pps, 0 packets
Next-hop ID: 1048597
Upstream protocol: MVPN
Route state: Active
Forwarding state: Forwarding
Cache lifetime/timeout: forever
Wrong incoming interface notifications: 0
Uptime: 18:33:02
Instance:ngen Family: INET6
[edit]
lab@zenith-re0# run show pim join instance ngen extensive
Instance: PIM.ngen Family: INET
R = Rendezvous Point Tree, S = Sparse, W = Wildcard

Group: 224.1.1.1
Source: *
RP: 50.50.50.1
Flags: sparse,rptree,wildcard


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 11
Upstream protocol: BGP
Upstream interface: Through BGP
Upstream neighbor: Through MVPN
Upstream state: Join to RP
Uptime: 18:33:08
Downstream neighbors:
Interface: ge-0/0/1.0
40.40.1.2 State: Join Flags: SRW Timeout: 201
Uptime: 18:33:08 Time since last Join: 00:00:08
Number of downstream interfaces: 1

State on PE-RP
When the source is reachable through remote PE(route is coming from core BGP), then this type of PE-RP is called
Turnaround PE.Turnaround PE is responsible for forwarding traffic from source to the receivers, as well as sending Type-
7 route to PE-SRC when source becomes active.
1. Receive Type-6 from PE-RECV, this is imported only on PE-RP since the rt-import matches internal policies only
on PE-RP
2. Type-6 triggers (*,G,RPT) join towards CE-RP
3. Type 6 also triggets addition of the multicast forwarding route with I-PMSI as downstream and interface towards
CE-RP as upstream
lab@Earth# run show pim join instance ngen extensive
Instance: PIM.ngen Family: INET
R = Rendezvous Point Tree, S = Sparse, W = Wildcard
Group: 224.1.1.1
Source: *
RP: 50.50.50.1
Flags: sparse,rptree,wildcard
Upstream interface: xe-1/3/0.3
Upstream neighbor: 40.40.2.2
Upstream state: Join to RP
Uptime: 18:45:56
Downstream neighbors:
Interface: Pseudo-MVPN
Uptime: 18:45:56 Time since last Join: 18:45:56


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 12
Number of downstream interfaces: 1

Instance: PIM.ngen Family: INET6
R = Rendezvous Point Tree, S = Sparse, W = Wildcard

[edit]
lab@Earth# run show multicast route instance ngen extensive
Instance: ngen Family: INET

Group: 224.1.1.1/32
Source: *
Upstream interface: xe-1/3/0.3
Downstream interface list:
xe-0/0/2.0
Session description: NOB Cross media facilities
Statistics: 0 kBps, 0 pps, 0 packets
Next-hop ID: 1048597
Upstream protocol: MVPN
Route state: Active
Forwarding state: Forwarding
Cache lifetime/timeout: forever
Wrong incoming interface notifications: 0
Uptime: 18:46:04

Instance: ngen Family: INET6



lab@Earth# run show route forwarding-table multicast vpn ngen
Routing table: ngen.inet
Internet:
Destination Type RtRef Next hop Type Index NhRef Netif


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 13
224.0.0.0/4 user 0 rslv 686 1
224.0.0.0/4 perm 0 mdsc 548 2
224.0.0.0/24 user 1 mdsc 548 2
224.0.0.1/32 perm 0 224.0.0.1 mcst 544 9
224.0.0.2/32 user 1 224.0.0.2 mcst 544 9
224.0.0.5/32 user 1 224.0.0.5 mcst 544 9
224.0.0.13/32 user 1 224.0.0.13 mcst 544 9
224.0.0.22/32 user 1 224.0.0.22 mcst 544 9
224.1.1.1/32 user 0 indr 1048597 2
comp 823 1
232.0.0.0/8 user 0 rslv 669 1


TAZ-TBB-0(Earth vty)# show nhdb id 1048597 recursive
1048597(Indirect, IPv4, ifl:0:-, pfe-id:0, i-ifl:0:-)
823(Compst, IPv4, ifl:0:-, pfe-id:0, comp-fn:P2MP)
822(Unicast, IPv4->MPLS, ifl:353:xe-0/0/2.0, pfe-id:0)

TAZ-TBB-0(Earth vty)# show nhdb id 822 extensive
ID Type Interface Next Hop Addr Protocol Encap MTU Flags PFE
internal Flags
----- -------- ------------- --------------- ---------- ------------ ---- ---------- ------
--------------
822 Unicast xe-0/0/2.0 - IPv4->MPLS Ethernet 1500 0x00000001
0x00000002

BFD Session Id: 8

Flags: 0x00000001
PFE internal flags: 0x00000002
Interface: 353

Dram Bytes : 308
Flags : 0x1


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 14
Parent NHID : 768
PreComputed MTU: 0
Tunnel Self ID : 0xb0000002
Tunnel Parent ID : 0x0
Parent NHID : 768
Feature List: NH
[pfe-0]: 0x0894aaa800020000;
f_mask:0x02110000; c_mask:0xe0000000; f_num:17; c_num:3, inst:0
Idx#6 labels:
[pfe-0]: 0x0894b08800000000

Idx#11 counter:
[pfe-0]: 0x2ffffffc0006a200

Idx#15 ucast:
[pfe-0]: 0x12b02bd8e00088d1




[edit]
lab@Earth# run show rsvp session ingress p2mp

Ingress RSVP: 3 sessions
P2MP name: 6.6.6.6:3:mvpn:ngen, P2MP branch count: 2
To From State Rt Style Labelin Labelout LSPname
7.7.7.7 6.6.6.6 Up 0 1 SE - 299888 7.7.7.7:6.6.6.6:3:mvpn:ngen
1.1.1.1 6.6.6.6 Up 0 1 SE - 299888 1.1.1.1:6.6.6.6:3:mvpn:ngen


<-----Type 6 is imported only by PE-RP not PE-SRC since Ttpe-6 is sent with rt-import community
attached to PE-RP



JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 15
<------no type-6 in PE-SRC

[edit]
lab@Rajini# run show route table ngen.mvpn

ngen.mvpn.0: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

1:1.1.1.1:3:1.1.1.1/240
*[BGP/170] 5d 00:27:57, localpref 100, from 2.2.2.2
AS path: I, validation-state: unverified
> to 192.169.7.1 via xe-0/0/1.0, label-switched-path raj-to-zen
1:6.6.6.6:3:6.6.6.6/240
*[BGP/170] 5d 00:29:53, localpref 100, from 2.2.2.2
AS path: I, validation-state: unverified
> to 192.169.8.1 via xe-0/0/0.0, label-switched-path raj-to-ear
1:7.7.7.7:3:7.7.7.7/240
*[MVPN/70] 5d 00:34:12, metric2 1
Indirect

<-----PE-RECV picks up rt-import community from unicast rt to RP

[edit]
lab@zenith-re0# run show route 50.50.50.1 table ngen extensive | match rt-im
Communities: target:100:3 src-as:100:0 rt-import:6.6.6.6:7 rte-type:0.0.0.0:1:0

[edit]
lab@zenith-re0# run show route advertising-protocol bgp 2.2.2.2 table ngen.mvpn extensive

ngen.mvpn.0: 4 destinations, 4 routes (4 active, 0 holddown, 0 hidden)
* 1:1.1.1.1:3:1.1.1.1/240 (1 entry, 1 announced)
BGP group ibgp type Internal


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 16
Route Distinguisher: 1.1.1.1:3
Nexthop: Self
Flags: Nexthop Change
Localpref: 100
AS path: [100] I
Communities: target:100:3
PMSI: Flags 0x1: Label 0: RSVP-TE: Session_13[1.1.1.1:0:10504:1.1.1.1]

* 6:6.6.6.6:3:100:32:50.50.50.1:32:224.1.1.1/240 (1 entry, 1 announced)
BGP group ibgp type Internal
Route Distinguisher: 6.6.6.6:3
Nexthop: Self
Flags: Nexthop Change
Localpref: 100
AS path: [100] I
Communities: target:6.6.6.6:7

<-----default import policy on PE-RP does the rest for importing the route

[edit]
lab@Earth# run show policy __vrf-mvpn-import-cmcast-ngen-internal__
Policy __vrf-mvpn-import-cmcast-ngen-internal__:
Term unnamed:
from community __vrf-mvpn-community-rt_import-target-ngen-internal__ [target:6.6.6.6:7 ]
then accept
Term unnamed:
then reject




[edit]


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 17
lab@Earth# run show route table ngen.mvpn

ngen.mvpn.0: 4 destinations, 5 routes (4 active, 1 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

1:1.1.1.1:3:1.1.1.1/240
*[BGP/170] 5d 01:53:43, localpref 100, from 2.2.2.2
AS path: I, validation-state: unverified
> to 192.169.8.2 via xe-0/0/3.0, label-switched-path ear-to-zen
1:6.6.6.6:3:6.6.6.6/240
*[MVPN/70] 5d 02:00:13, metric2 1
Indirect
1:7.7.7.7:3:7.7.7.7/240
*[BGP/170] 5d 01:55:42, localpref 100, from 2.2.2.2
AS path: I, validation-state: unverified
> to 192.169.6.1 via xe-0/0/2.0
6:6.6.6.6:3:100:32:50.50.50.1:32:224.1.1.1/240
*[PIM/105] 20:17:30
Multicast (IPv4) Composite
[BGP/170] 20:17:30, localpref 100, from 2.2.2.2
AS path: I, validation-state: unverified
> to 192.169.6.1 via xe-0/0/2.0


<---state on RP

[edit]
lab@M7i-Aditya# run show pim join logical-system ce-rp extensive
Instance: PIM.master Family: INET
R = Rendezvous Point Tree, S = Sparse, W = Wildcard

Group: 224.1.1.1


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 18
Source: *
RP: 50.50.50.1
Flags: sparse,rptree,wildcard
Upstream interface: Local
Upstream neighbor: Local
Upstream state: Local RP
Uptime: 00:00:39
Downstream neighbors:
Interface: ge-0/2/0.0
40.40.2.1 State: Join Flags: SRW Timeout: 170
Uptime: 00:00:39 Time since last Join: 00:00:39

Instance: PIM.master Family: INET6
R = Rendezvous Point Tree, S = Sparse, W = Wildcard
Source becomes Active, First Packet

This section becomes a bit complicated since the first packet is good enough in RPT-SPT mode to make a switch, unlike
vanilla pim where it happens when native multicast traffic starts flowing. Since there are lot of interdependent state
changes, I have given pointers to the steps in other PEs/CEs. The digram is simplified representation and steps in
diagram are different from the ones given in text


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 19



JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 20
State on CE-SRC and CE-RP
1. CE-SRC will get a route resolve as source starts sending
2. It will directly send a S,G towards the source and join SPT
3. It will forward the first packet as Register packet to CE-RP
4. The packet is carried as a unicast packet in VPN as src ip=loopback of CE-SRC and dest ip=CE-RP
5. CE-RP will get the register packet and decap it
6. CE-RP will Send register stop to CE-SRC
7. The register packet will generate a resolve request for first packet which adds the forwarding entry in CE-RP to
forward packet to the PE-RP
8. Send a S,G Join to the source(to PE-RP)
9. [This step follows Step 9 at PE-RP] Receive *,G,RPT prune from PE-RP
10. Remove the forwarding route based on *,G,RPT

lab@M7i-Aditya# run show pim join extensive logical-system ce-rp
Instance: PIM.master Family: INET
R = Rendezvous Point Tree, S = Sparse, W = Wildcard

Group: 224.1.1.1
Source: *
RP: 50.50.50.1
Flags: sparse,rptree,wildcard
Upstream interface: Local
Upstream neighbor: Local
Upstream state: Local RP
Uptime: 00:05:16
Downstream neighbors:
Interface: ge-0/2/0.0
40.40.2.1 State: Join Flags: SRW Timeout: 193
Uptime: 00:05:16 Time since last Join: 00:00:16

Group: 224.1.1.1
Source: 41.41.42.2
Flags: sparse
Upstream interface: ge-0/2/0.0
Upstream neighbor: 40.40.2.1
Upstream state: None, Local RP


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 21
Keepalive timeout:
Uptime: 00:00:50
Downstream neighbors:
Interface: ge-0/2/0.0 (pruned)
40.40.2.1 State: Prune Flags: SR Timeout: 193
Uptime: 00:00:50 Time since last Prune: 00:00:16

Instance: PIM.master Family: INET6
R = Rendezvous Point Tree, S = Sparse, W = Wildcard

<----All forwarding state is removed when we get a prune from PE-RP
[edit]
lab@M7i-Aditya# run show multicast route extensive logical-system ce-rp
Instance: master Family: INET

Instance: master Family: INET6

State on PE-RP
1. PE-RP gets the native multicast packet forwarded by CE-RP(which decapped the packet)
2. Forward the packet over I-PMSI rooted at PE-RP
3. Triggers resolve request which finds the Source and Group
4. [This step follows step 8 from CE-RP]Receive (S,G) join from the CE-RP
5. This triggers creation of a Type-7 route and advertise it in BGP
6. Do a UMH selection, since in the setup there is a single PE sending source ip, select it(PE-SRC)
7. Add a forwarding route with PE-RP as leaf of tunnel with root as PE-SRC
8. [THIS STEP FOLLOWS STEP 7 ON PE-SRC] Receive Type-5 from PE-SRC
9. Reception of Type-5 triggers a S,G,RPT prune towards CE-RP
10. Remove forwarding entry based on *,G state
11. Adjust the forwarding entry to receive traffic over I-PMSI rooted at PE-SRC(IIF changes from interfaces towards
CE-RP to MVPN), since there are no receivers we will add a discard. Add a S,G forwarding route


run show route table ngen.mvpn

ngen.mvpn.0: 6 destinations, 8 routes (6 active, 2 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both



JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 22
1:1.1.1.1:3:1.1.1.1/240
*[BGP/170] 00:10:08, localpref 100, from 2.2.2.2
AS path: I, validation-state: unverified
> to 192.169.6.1 via xe-0/0/2.0, label-switched-path ear-to-zen
1:6.6.6.6:3:6.6.6.6/240
*[MVPN/70] 00:11:04, metric2 1
Indirect
1:7.7.7.7:3:7.7.7.7/240
*[BGP/170] 00:10:38, localpref 100, from 2.2.2.2
AS path: I, validation-state: unverified
> to 192.169.6.1 via xe-0/0/2.0, label-switched-path ear-to-raj
5:7.7.7.7:3:32:41.41.42.2:32:224.1.1.1/240
*[BGP/170] 00:00:36, localpref 100, from 2.2.2.2
AS path: I, validation-state: unverified
> to 192.169.6.1 via xe-0/0/2.0, label-switched-path ear-to-raj
6:6.6.6.6:3:100:32:50.50.50.1:32:224.1.1.1/240
*[PIM/105] 00:05:02
Multicast (IPv4) Composite
[BGP/170] 00:05:02, localpref 100, from 2.2.2.2
AS path: I, validation-state: unverified
> to 192.169.6.1 via xe-0/0/2.0
7:7.7.7.7:3:100:32:41.41.42.2:32:224.1.1.1/240
*[MVPN/70] 00:00:36, metric2 1
Multicast (IPv4) Composite
[PIM/105] 00:00:36
Multicast (IPv4) Composite

lab@Earth# run show multicast route instance ngen
Instance: ngen Family: INET

Group: 224.1.1.1/32
Source: *


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 23
Upstream interface: xe-1/3/0.3
Downstream interface list:
xe-0/0/2.0

Group: 224.1.1.1
Source: 41.41.42.2/32
Upstream interface: vt-0/0/10.2

Instance: ngen Family: INET6

<----PE-RP doesnt have any receivers

[edit]
lab@Earth# run show pim join extensive instance ngen
Instance: PIM.ngen Family: INET
R = Rendezvous Point Tree, S = Sparse, W = Wildcard

Group: 224.1.1.1
Source: *
RP: 50.50.50.1
Flags: sparse,rptree,wildcard
Upstream interface: xe-1/3/0.3
Upstream neighbor: 40.40.2.2
Upstream state: Join to RP
Uptime: 00:05:02
Downstream neighbors:
Interface: Pseudo-MVPN
Uptime: 00:05:02 Time since last Join: 00:05:02
Number of downstream interfaces: 1

Group: 224.1.1.1
Source: 41.41.42.2


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 24
Flags: sparse,spt
Upstream protocol: BGP
Upstream interface: Through BGP
Upstream neighbor: Through MVPN
Upstream state: Join to Source, Prune to RP
Keepalive timeout: 173
Uptime: 00:00:36
Number of downstream interfaces: 0

[edit]
lab@Earth# run show route forwarding-table multicast vpn ngen
Routing table: ngen.inet
Internet:
Destination Type RtRef Next hop Type Index NhRef Netif
224.0.0.0/4 user 0 rslv 758 1
224.0.0.0/4 perm 0 mdsc 596 3
224.0.0.0/24 user 1 mdsc 596 3
224.0.0.1/32 perm 0 224.0.0.1 mcst 592 9
224.0.0.2/32 user 1 224.0.0.2 mcst 592 9
224.0.0.5/32 user 1 224.0.0.5 mcst 592 9
224.0.0.13/32 user 1 224.0.0.13 mcst 592 9
224.0.0.22/32 user 1 224.0.0.22 mcst 592 9
224.1.1.1/32 user 0 indr 1048602 2
comp 826 1
224.1.1.1.41.41.42.2/64
user 0 mdsc 596 3
232.0.0.0/8 user 0 rslv 746 1

[edit]
lab@Earth# run show route advertising-protocol bgp 2.2.2.2 table ngen.mvpn

ngen.mvpn.0: 6 destinations, 8 routes (6 active, 2 holddown, 0 hidden)


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 25
Prefix Nexthop MED Lclpref AS path
1:6.6.6.6:3:6.6.6.6/240
* Self 100 I
7:7.7.7.7:3:100:32:41.41.42.2:32:224.1.1.1/240
* Self 100 I
State on PE-SRC
1. [This step follows step 2 at PE-RP]First native multicast packet is sent over I-PMSI to PE-SRC(and PE-RECV)
2. This triggers a resolve request which triggers a S,G join towards the source which is connected through CE-SRC
3. We will discard the packet since did it not come on SPT
4. We receive a type-7 source tree c-multicast route from PE-RP
5. Type-7 triggers addition of forwarding route and we start a KAT(KeepAlive Timer) on the route
6. Type-7 also triggers a Type-5 Source active route for S,G
7. We bind the I-PMSI to the S,G route as the root of the tree and start forwarding traffic down source tree(SPT)

[edit]
lab@Rajini# run show route table ngen.mvpn

ngen.mvpn.0: 5 destinations, 6 routes (5 active, 1 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

1:1.1.1.1:3:1.1.1.1/240
*[BGP/170] 00:09:56, localpref 100, from 2.2.2.2
AS path: I, validation-state: unverified
> to 192.169.7.1 via xe-0/0/1.0, label-switched-path raj-to-zen
1:6.6.6.6:3:6.6.6.6/240
*[BGP/170] 00:10:31, localpref 100, from 2.2.2.2
AS path: I, validation-state: unverified
> to 192.169.7.1 via xe-0/0/1.0, label-switched-path raj-to-ear
1:7.7.7.7:3:7.7.7.7/240
*[MVPN/70] 00:11:07, metric2 1
Indirect
5:7.7.7.7:3:32:41.41.42.2:32:224.1.1.1/240
*[MVPN/70] 00:00:32
Multicast (IPv4) Composite


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 26
7:7.7.7.7:3:100:32:41.41.42.2:32:224.1.1.1/240
*[PIM/105] 00:00:32
Multicast (IPv4) Composite
[BGP/170] 00:00:32, localpref 100, from 2.2.2.2
AS path: I, validation-state: unverified
> to 192.169.7.1 via xe-0/0/1.0

ngen.mvpn-inet6.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

1:7.7.7.7:3:7.7.7.7/432
*[MVPN/70] 00:11:07, metric2 1
Indirect

[edit]
lab@Rajini# run show multicast route instance ngen
Instance: ngen Family: INET

Group: 224.1.1.1
Source: 41.41.42.2/32
Upstream interface: xe-0/0/2.3
Downstream interface list:
xe-0/0/1.0

Instance: ngen Family: INET6

[edit]
lab@Rajini# run show pim join extensive instance ngen
Instance: PIM.ngen Family: INET
R = Rendezvous Point Tree, S = Sparse, W = Wildcard

Group: 224.1.1.1


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 27
Source: 41.41.42.2
Flags: sparse,spt
Upstream interface: xe-0/0/2.3
Upstream neighbor: 40.40.3.2
Upstream state: Join to Source
Keepalive timeout: 328
Uptime: 00:00:32
Downstream neighbors:
Interface: Pseudo-MVPN
Uptime: 00:00:32 Time since last Join: 00:00:32
Number of downstream interfaces: 0

Instance: PIM.ngen Family: INET6
R = Rendezvous Point Tree, S = Sparse, W = Wildcard

[edit]
lab@Rajini# run show route forwarding-table multicast vpn ngen

Routing table: ngen.inet
Internet:
Destination Type RtRef Next hop Type Index NhRef Netif
224.0.0.0/4 user 0 rslv 683 1
224.0.0.0/4 perm 0 mdsc 544 2
224.0.0.0/24 user 1 mdsc 544 2
224.0.0.1/32 perm 0 224.0.0.1 mcst 540 9
224.0.0.2/32 user 1 224.0.0.2 mcst 540 9
224.0.0.5/32 user 1 224.0.0.5 mcst 540 9
224.0.0.13/32 user 1 224.0.0.13 mcst 540 9
224.0.0.22/32 user 1 224.0.0.22 mcst 540 9
224.1.1.1.41.41.42.2/64
user 0 indr 1048590 2
comp 724 1


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 28
232.0.0.0/8 user 0 rslv 678 1

[edit]
lab@Rajini# run show route advertising-protocol bgp 2.2.2.2 table ngen.mvpn

ngen.mvpn.0: 5 destinations, 6 routes (5 active, 1 holddown, 0 hidden)
Prefix Nexthop MED Lclpref AS path
1:7.7.7.7:3:7.7.7.7/240
* Self 100 I
5:7.7.7.7:3:32:41.41.42.2:32:224.1.1.1/240
* Self 100 I
State on PE-RECV
1. [This step follows step 2 at PE-RP] PE-RECV receives first packet from PE-RP
2. Forward the packet to CE-RECV
3. CE-RECV goes through resolve/iif-mismatch and sends a (S,G) join towards PE-RECV
4. Receive (S,G) from CE-RECV and Create a S,G join state towards the source with upstream as MVPN
5. PE-RECV also generates a Type-7 towards the source by doing a UMH selection
6. Receive a source active Type-5 from SRC
7. Adjust the forwarding entry to receive traffic over I-PMSI coming from PE-SRC(add a multicast route based on
S,G)
[edit]
lab@zenith-re0# run show route table ngen.mvpn

ngen.mvpn.0: 6 destinations, 7 routes (6 active, 1 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

1:1.1.1.1:3:1.1.1.1/240
*[MVPN/70] 00:10:22, metric2 1
Indirect
1:6.6.6.6:3:6.6.6.6/240
*[BGP/170] 00:10:01, localpref 100, from 2.2.2.2
AS path: I, validation-state: unverified
> to 192.169.1.2 via xe-3/0/0.0, label-switched-path zen-to-ear
1:7.7.7.7:3:7.7.7.7/240


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 29
*[BGP/170] 00:10:01, localpref 100, from 2.2.2.2
AS path: I, validation-state: unverified
> to 192.169.1.2 via xe-3/0/0.0, label-switched-path zen-to-raj
5:7.7.7.7:3:32:41.41.42.2:32:224.1.1.1/240
*[BGP/170] 00:00:29, localpref 100, from 2.2.2.2
AS path: I, validation-state: unverified
> to 192.169.1.2 via xe-3/0/0.0, label-switched-path zen-to-raj
6:6.6.6.6:3:100:32:50.50.50.1:32:224.1.1.1/240
*[PIM/105] 00:04:55
Multicast (IPv4) Composite
7:7.7.7.7:3:100:32:41.41.42.2:32:224.1.1.1/240
*[MVPN/70] 00:00:29, metric2 1
Multicast (IPv4) Composite
[PIM/105] 00:00:29
Multicast (IPv4) Composite

ngen.mvpn-inet6.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

1:1.1.1.1:3:1.1.1.1/432
*[MVPN/70] 00:10:22, metric2 1
Indirect

[edit]
lab@zenith-re0# run show multicast route instance ngen
Instance: ngen Family: INET

Group: 224.1.1.1/32
Source: *
Upstream interface: vt-3/3/0.2
Downstream interface list:
ge-0/0/1.0


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 30

Group: 224.1.1.1
Source: 41.41.42.2/32
Upstream interface: vt-3/3/0.2
Downstream interface list:
ge-0/0/1.0

Instance: ngen Family: INET6

[edit]
lab@zenith-re0# run show pim join extensive instance ngen
Instance: PIM.ngen Family: INET
R = Rendezvous Point Tree, S = Sparse, W = Wildcard

Group: 224.1.1.1
Source: *
RP: 50.50.50.1
Flags: sparse,rptree,wildcard
Upstream protocol: BGP
Upstream interface: Through BGP
Upstream neighbor: Through MVPN
Upstream state: Join to RP
Uptime: 00:04:55
Downstream neighbors:
Interface: ge-0/0/1.0
40.40.1.2 State: Join Flags: SRW Timeout: 154
Uptime: 00:04:55 Time since last Join: 00:00:55
Number of downstream interfaces: 1

Group: 224.1.1.1
Source: 41.41.42.2
Flags: sparse,spt


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 31
Upstream protocol: BGP
Upstream interface: Through BGP
Upstream neighbor: Through MVPN
Upstream state: Join to Source, No Prune to RP
Keepalive timeout: 181
Uptime: 00:00:29
Downstream neighbors:
Interface: ge-0/0/1.0
40.40.1.2 State: Join Flags: S Timeout: 181
Uptime: 00:00:29 Time since last Join: 00:00:29
Number of downstream interfaces: 1

Instance: PIM.ngen Family: INET6
R = Rendezvous Point Tree, S = Sparse, W = Wildcard

[edit]
lab@zenith-re0# run show route forwarding-table multicast vpn ngen
Routing table: ngen.inet
Internet:
Destination Type RtRef Next hop Type Index NhRef Netif
224.0.0.0/4 user 0 rslv 973 1
224.0.0.0/4 perm 0 mdsc 552 2
224.0.0.0/24 user 1 mdsc 552 2
224.0.0.1/32 perm 0 224.0.0.1 mcst 548 9
224.0.0.2/32 user 1 224.0.0.2 mcst 548 9
224.0.0.5/32 user 1 224.0.0.5 mcst 548 9
224.0.0.13/32 user 1 224.0.0.13 mcst 548 9
224.0.0.22/32 user 1 224.0.0.22 mcst 548 9
224.1.1.1/32 user 0 indr 1048599 3
comp 1055 1
224.1.1.1.41.41.42.2/64
user 0 indr 1048599 3


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 32
comp 1055 1
232.0.0.0/8 user 0 rslv 958 1

[edit]
lab@zenith-re0# run show route advertising-protocol bgp 2.2.2.2 table ngen.mvpn

ngen.mvpn.0: 6 destinations, 7 routes (6 active, 1 holddown, 0 hidden)
Prefix Nexthop MED Lclpref AS path
1:1.1.1.1:3:1.1.1.1/240
* Self 100 I
6:6.6.6.6:3:100:32:50.50.50.1:32:224.1.1.1/240
* Self 100 I
7:7.7.7.7:3:100:32:41.41.42.2:32:224.1.1.1/240
* Self 100 I

Second Data packet onwards
Step five in above diagram
As we have seen first packet is good enough to switch from RPT to SPT but as you can imagine in production network the
data sources maybe very high in rate. The data packets are sometimes sent faster than the PE-RP and PE-RECV has a
chance of switch to SPT. In that case we will see duplicate data. PE-SRC and PE-RPT both forward the packets over their
PMSIs. We see these duplicate packets before the switch as IIF mistaches on PE-SRC and PE-RP as they are received
on the VRF interface(lsi or vt-) and they are downstream of multicast entry. On the PE-RECV they will just show as
duplicate data packets. Once the PE-RP has pruned the PMSI from downstream interface, duplicates should stop.
JUNOS has a timer called as spt-switch-timer, which controls RPT to SPT switch on PE-RP. Default value if the timer is 0,
but if you configure the timer as non zero to allow control plane to converge, the time duration of duplicate data will
increase.

Source Stops:SPT to RPT Switch
When the source stops sending, the receiver PEs have to switch from SPT to RPT.



JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 33



JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 34
State on PE-SRC
1. After the source stops sending forwarding cache times out after KAT timer expires
2. This triggers deletion of Type-5
3. Send BGP withdraw route for Type-5
4. [This step follows step 3 from PE-RP]This triggers withdrwal of Type-7 from PE-RP and PE-RECV
5. Delete the Type-7, deleting forwarding state with I-PMSI as downstream
6. PE-SRC state resembles initial state before reception of (*,G) join
[edit]
lab@Rajini# run show route table ngen.mvpn

ngen.mvpn.0: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

1:1.1.1.1:3:1.1.1.1/240
*[BGP/170] 20:33:22, localpref 100, from 2.2.2.2
AS path: I, validation-state: unverified
> to 192.169.7.1 via xe-0/0/1.0, label-switched-path raj-to-zen
1:6.6.6.6:3:6.6.6.6/240
*[BGP/170] 20:33:57, localpref 100, from 2.2.2.2
AS path: I, validation-state: unverified
> to 192.169.7.1 via xe-0/0/1.0, label-switched-path raj-to-ear
1:7.7.7.7:3:7.7.7.7/240
*[MVPN/70] 20:34:33, metric2 1
Indirect

ngen.mvpn-inet6.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

1:7.7.7.7:3:7.7.7.7/432
*[MVPN/70] 20:34:33, metric2 1
Indirect

[edit]
lab@Rajini# run show multicast route instance ngen


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 35
Instance: ngen Family: INET

Instance: ngen Family: INET6

[edit]
lab@Rajini# run show pim join extensive instance ngen
Instance: PIM.ngen Family: INET
R = Rendezvous Point Tree, S = Sparse, W = Wildcard

Instance: PIM.ngen Family: INET6
R = Rendezvous Point Tree, S = Sparse, W = Wildcard

[edit]
lab@Rajini# run show route forwarding-table multicast vpn ngen
Routing table: ngen.inet
Internet:
Destination Type RtRef Next hop Type Index NhRef Netif
224.0.0.0/4 user 0 rslv 683 1
224.0.0.0/4 perm 0 mdsc 544 2
224.0.0.0/24 user 1 mdsc 544 2
224.0.0.1/32 perm 0 224.0.0.1 mcst 540 9
224.0.0.2/32 user 1 224.0.0.2 mcst 540 9
224.0.0.5/32 user 1 224.0.0.5 mcst 540 9
224.0.0.13/32 user 1 224.0.0.13 mcst 540 9
224.0.0.22/32 user 1 224.0.0.22 mcst 540 9
232.0.0.0/8 user 0 rslv 678 1

[edit]
lab@Rajini# run show route advertising-protocol bgp 2.2.2.2 table ngen.mvpn

ngen.mvpn.0: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden)
Prefix Nexthop MED Lclpref AS path


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 36
1:7.7.7.7:3:7.7.7.7/240
* Self 100
State on PE-RP
1. Forwarding cache is deleted when KAT timer expires
2. [This step follows Step 3 from PE-SRC]Around the same time we receive a Type-5 withdraw from PE-SRC
3. This triggers Type-7 deletion and Withdrwal
4. Deletion of Type-7 triggers a RPT join, PE-RP sends a (*,G) join to RP
5. Add the forwarding state based on (*,G) with I_PMSI rooted at PE-RP to forward traffic to receivers
edit]
lab@Earth# run show route table ngen.mvpn

ngen.mvpn.0: 4 destinations, 5 routes (4 active, 1 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

1:1.1.1.1:3:1.1.1.1/240
*[BGP/170] 1d 02:38:55, localpref 100, from 2.2.2.2
AS path: I, validation-state: unverified
> to 192.169.6.1 via xe-0/0/2.0, label-switched-path ear-to-zen
1:6.6.6.6:3:6.6.6.6/240
*[MVPN/70] 1d 02:39:51, metric2 1
Indirect
1:7.7.7.7:3:7.7.7.7/240
*[BGP/170] 1d 02:39:25, localpref 100, from 2.2.2.2
AS path: I, validation-state: unverified
> to 192.169.6.1 via xe-0/0/2.0, label-switched-path ear-to-raj
6:6.6.6.6:3:100:32:50.50.50.1:32:224.1.1.1/240
*[PIM/105] 07:38:58
Multicast (IPv4) Composite
[BGP/170] 07:38:58, localpref 100, from 2.2.2.2
AS path: I, validation-state: unverified
> to 192.169.6.1 via xe-0/0/2.0

ngen.mvpn-inet6.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 37
+ = Active Route, - = Last Active, * = Both

1:6.6.6.6:3:6.6.6.6/432
*[MVPN/70] 1d 02:39:51, metric2 1
Indirect

[edit]
lab@Earth# run show multicast route instance ngen
Instance: ngen Family: INET

Group: 224.1.1.1/32
Source: *
Upstream interface: xe-1/3/0.3
Downstream interface list:
xe-0/0/2.0

Instance: ngen Family: INET6

[edit]
lab@Earth# run show pim join extensive instance ngen
Instance: PIM.ngen Family: INET
R = Rendezvous Point Tree, S = Sparse, W = Wildcard

Group: 224.1.1.1
Source: *
RP: 50.50.50.1
Flags: sparse,rptree,wildcard
Upstream interface: xe-1/3/0.3
Upstream neighbor: 40.40.2.2
Upstream state: Join to RP
Uptime: 07:38:59
Downstream neighbors:


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 38
Interface: Pseudo-MVPN
Uptime: 07:38:59 Time since last Join: 07:38:59
Number of downstream interfaces: 1

Instance: PIM.ngen Family: INET6
R = Rendezvous Point Tree, S = Sparse, W = Wildcard

[edit]
lab@Earth# run show route forwarding-table multicast vpn ngen

Routing table: ngen.inet
Internet:
Destination Type RtRef Next hop Type Index NhRef Netif
224.0.0.0/4 user 0 rslv 758 1
224.0.0.0/4 perm 0 mdsc 596 2
224.0.0.0/24 user 1 mdsc 596 2
224.0.0.1/32 perm 0 224.0.0.1 mcst 592 9
224.0.0.2/32 user 1 224.0.0.2 mcst 592 9
224.0.0.5/32 user 1 224.0.0.5 mcst 592 9
224.0.0.13/32 user 1 224.0.0.13 mcst 592 9
224.0.0.22/32 user 1 224.0.0.22 mcst 592 9
224.1.1.1/32 user 0 indr 1048602 2
comp 826 1
232.0.0.0/8 user 0 rslv 746 1

[edit]
lab@Earth# run show route advertising-protocol bgp 2.2.2.2 table ngen.mvpn

ngen.mvpn.0: 4 destinations, 5 routes (4 active, 1 holddown, 0 hidden)
Prefix Nexthop MED Lclpref AS path
1:6.6.6.6:3:6.6.6.6/240
* Self 100


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 39

State on PE-RECV
The state changes are very similar to PE-RP, with the difference that PE-RECV becomes leaf of I-PMSI rooted at PE-RP
and adds a forwarding entry based on (*,G). The command outputs are same as the state with reception of (,*G).
Directly connected Sources and Receivers
There are a few PRs and external documentation where customers have tried to use directly connected sources and
receivers in MVPN RPT-SPT mode and they dont work. This is a known limitation. To be safe, we should always use
sources and receivers connected through the CE devices.
I found couple of PRs which document this:524634,853719
Heres the link to external documentation
http://www.juniper.net/techpubs/en_US/junos10.2/topics/task/configuration/mvpn-rpt-spt.html

Directly connected Sources
Looks like in current releases the restriction of directly connected sources have been relaxed. With RP configuration in the
routing instance, I was able to sucessfuly run directly connected source with 12.3 daily I was running. I havent been able
to find the change that fixed it.
The brief steps in working condition are as follows:
1. When directly connected source to PE-SRC starts sending, it will generate a RESOLVE
2. PE-SRC will find (S,G) due to resolve, it will send a source registration to CE-RP
3. We will also create (S,G) join state due to resolve
4. CE-RP receives the register and sends the native multicast packet towards PE-RP
5. PE-RP forwards the packets down its I-PMSI and also generates a Type-7 towards the PE-SRC
6. Reception of Type-7 triggers Type-5 source active
7. Rest of the steps are same as sources connected through CE

Directly connected Receivers
Reception of (*,G) triggers Type-6 shared tree c-multicast route on the PE-RECV, this also creates a forwarding state
based on (*,G). Since the forwarding state is already there before the first packet is received, when actually first packet
arrives, it does not go through resolve or iif-mismatch so the PE-RECV cannot find the source if the receiver is directly
connected. So the directly connected receivers cannot be used in MVPN RPT-SPT mode.
When the receiver is connected through the CE, the iif-mismatch or resolve will happen on CE device like vanilla PIM and
it will send (S,G) join towards the PE-RECV which triggers Type-7 and switch to SPT when we get a Type-5 from PE-
SRC.

Appendix I: Configurations
Configurations for different devices/logical-routers in test setup are given below


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 40
Zenith(PE-RECV) and CE-SRC(Logical Router)
[edit]
lab@zenith-re0# show protocols
igmp {
interface xe-3/2/2.3 {
version 3;
}
}
rsvp {
interface lo0.0;
interface xe-3/0/0.0;
}
mpls {
label-switched-path zen-to-ear {
to 6.6.6.6;
ldp-tunneling;
}
label-switched-path zen-to-raj {
to 7.7.7.7;
ldp-tunneling;
}
interface lo0.0;
interface xe-3/0/0.0;
}
bgp {
group ibgp {
type internal;
traceoptions {
file bgp;
flag route;
flag update detail;


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 41
}
local-address 1.1.1.1;
family inet {
unicast;
}
family inet-vpn {
unicast;
}
family inet-mvpn {
signaling;
}
family inet-mdt {
signaling;
}
export ospf2bgp;
neighbor 2.2.2.2;
}
}
ospf {
traffic-engineering;
area 0.0.0.0 {
interface lo0.0;
interface xe-3/0/0.0;
}
}
ldp {
interface lo0.0;
}
pim {
traceoptions {
file pim-main size 10m files 10;
flag all detail;


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 42
}
rp {
static {
address 2.2.2.2;
}
}
interface all {
mode sparse;
}
}
[edit]
lab@zenith-re0# show routing-instances ngen
instance-type vrf;
interface ge-0/0/1.0;
interface xe-3/2/2.5;
interface vt-3/3/0.2;
interface lo0.4;
route-distinguisher 1.1.1.1:3;
provider-tunnel {
rsvp-te {
label-switched-path-template {
default-template;
}
}
}
vrf-target target:100:3;
protocols {
ospf {
export bgp2ospf;
area 0.0.0.0 {
interface lo0.4;
interface ge-0/0/1.0;


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 43
interface xe-3/2/2.5;
}
}
pim {
traceoptions {
file pim;
flag register;
flag rp;
flag join;
flag route;
flag timer;
flag normal;
flag general;
}
rp {
static {
address 50.50.50.1;
}
}
interface ge-0/0/1.0;
interface lo0.4;
interface xe-3/2/2.5;
}
mvpn {
traceoptions {
file mvpn;
flag nlri;
flag route;
flag state;
flag policy;
flag timer;
}


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 44
mvpn-mode {
rpt-spt;
}
}
}

[edit]
lab@zenith-re0# show logical-systems cesrc
interfaces {
xe-3/2/2 {
unit 4;
}
xe-4/1/0 {
unit 0 {
vlan-id 205;
family inet {
address 40.40.3.2/24;
}
}
}
lo0 {
unit 5 {
family inet {
address 50.50.50.3/32;
}
}
}
}
protocols {
ospf {
area 0.0.0.0 {
interface all;


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 45
}
}
pim {
traceoptions {
file pim-lr;
flag all;
}
rp {
static {
address 50.50.50.1;
}
}
interface all;
}
}


Earth(PE-RP)
[edit]
lab@Earth# show protocols
igmp {
interface xe-1/3/0.2 {
version 3;
}
}
rsvp {
interface all;
}
mpls {
label-switched-path ear-to-zen {
to 1.1.1.1;


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 46
ldp-tunneling;
}
label-switched-path ear-to-raj {
to 7.7.7.7;
}
interface all;
}
bgp {
group ibgp {
type internal;
traceoptions {
file bgp;
flag update;
flag route;
}
local-address 6.6.6.6;
family inet {
unicast;
}
family inet-vpn {
unicast;
}
family inet-mvpn {
signaling;
}
family inet-mdt {
signaling;
}
export ospf2bgp;
neighbor 2.2.2.2;
}
}


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 47
ospf {
traffic-engineering;
area 0.0.0.0 {
interface lo0.0;
interface xe-0/0/3.0 {
metric 1000;
}
interface xe-0/0/2.0;
}
}
ldp {
interface lo0.0;
}
pim {
rp {
static {
address 2.2.2.2;
}
}
interface all {
mode sparse;
}
}
l2circuit {
neighbor 1.1.1.1 {
interface xe-1/3/0.0 {
virtual-circuit-id 101;
}
}
}

[edit]


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 48
lab@Earth# show routing-instances ngen
instance-type vrf;
interface vt-0/0/10.2;
interface xe-1/3/0.3;
interface lo0.4;
route-distinguisher 6.6.6.6:3;
provider-tunnel {
rsvp-te {
label-switched-path-template {
default-template;
}
}
}
vrf-target target:100:3;
protocols {
ospf {
export bgp2ospf;
area 0.0.0.0 {
interface lo0.4;
interface xe-1/3/0.3;
}
}
pim {
traceoptions {
file pim;
flag register;
flag rp;
flag route;
flag timer;
flag normal;
flag general;
}


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 49
rp {
static {
address 50.50.50.1;
}
}
interface xe-1/3/0.3;
interface lo0.4;
}
mvpn {
traceoptions {
file mvpn;
flag nlri;
flag route;
flag policy;
flag normal;
flag state;
}
mvpn-mode {
rpt-spt;
}
}
}

Rajni(PE-SRC)
[edit]
lab@Rajini# show protocols
igmp {
interface xe-0/0/2.2 {
version 3;
}
}


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 50
rsvp {
interface all;
}
mpls {
label-switched-path raj-to-zen {
to 1.1.1.1;
ldp-tunneling;
}
label-switched-path raj-to-ear {
to 6.6.6.6;
}
interface all;
}
bgp {
export ospf2bgp;
group ibgp {
type internal;
traceoptions {
file bgp;
flag update;
}
local-address 7.7.7.7;
family inet {
unicast;
}
family inet-vpn {
unicast;
}
family inet-mvpn {
signaling;
}
family inet-mdt {


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 51
signaling;
}
neighbor 2.2.2.2;
}
}
ospf {
traffic-engineering;
area 0.0.0.0 {
interface xe-0/0/1.0;
interface xe-0/0/0.0 {
metric 1000;
}
interface lo0.0;
}
}
ldp {
interface lo0.0;
}
pim {
rp {
static {
address 2.2.2.2;
}
}
interface all {
mode sparse;
}
interface fxp0.0 {
disable;
}
}
l2circuit {


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 52
neighbor 1.1.1.1 {
interface xe-0/0/2.0 {
virtual-circuit-id 102;
}
}
}

[edit]
lab@Rajini# show routing-instances ngen
instance-type vrf;
interface xe-0/0/2.3;
interface vt-0/0/10.3;
interface lo0.4;
route-distinguisher 7.7.7.7:3;
provider-tunnel {
rsvp-te {
label-switched-path-template {
default-template;
}
}
}
vrf-target target:100:3;
protocols {
ospf {
export bgp2ospf;
area 0.0.0.0 {
interface lo0.4;
interface xe-0/0/2.3;
}
}
pim {
traceoptions {


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 53
file pim;
flag register;
flag rp;
flag route;
flag timer;
flag normal;
flag general;
}
rp {
static {
address 50.50.50.1;
}
}
interface xe-0/0/2.3;
interface lo0.4;
}
mvpn {
traceoptions {
file mvpn;
flag nlri;
flag route;
flag state;
flag policy;
flag timer;
}
mvpn-mode {
rpt-spt;
}
}
}



JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 54
Aditya(CE-RP,CE-RECV)
[edit]
lab@M7i-Aditya# show logical-systems
ce-rp {
interfaces {
ge-0/2/0 {
unit 0 {
vlan-id 204;
family inet {
address 40.40.2.2/24;
}
}
}
ge-0/3/3 {
unit 1 {
vlan-id 200;
family inet {
address 41.41.43.1/24;
}
}
}
lo0 {
unit 2 {
family inet {
address 50.50.50.1/32;
}
}
}
}
protocols {
ospf {


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 55
area 0.0.0.0 {
interface all;
}
}
pim {
traceoptions {
file pim;
flag all;
}
rp {
local {
address 50.50.50.1;
}
}
interface all;
}
}
}
ce-src {
interfaces {
ge-0/1/1 {
unit 0 {
vlan-id 100;
family inet {
address 40.40.1.2/24;
}
}
}
ge-0/3/3 {
unit 0 {
vlan-id 100;
family inet {


JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 56
address 41.41.41.1/24;
}
}
}
lo0 {
unit 1 {
family inet {
address 50.50.50.2/32;
}
}
}
}
protocols {
ospf {
area 0.0.0.0 {
interface all;
}
}
pim {
rp {
static {
address 50.50.50.1;
}
}
interface all;
}
}
}






JUNIPER NETWORKS CONFIDENTIAL DO NOT DISTRIBUTE Juniper Networks, Inc. 57
Appendix II: Debug Commands

For MVPN control plane issues, please capture following commands and traceoptions
BGP, protocols MVPN and PIM traceoptions with flag all detail
show routing table <instance name>.inet.0 exten
show routing table <instance name>.mvpn
show routing table <instance name>.mvpn extensive
show pim join instance <instance name> extensive
show multicast route <instance name> extensive
show route advertising-protocol bgp <peer address> table <instance name>.mvpn extensive
show route receive-protocol bgp <peer address> table <instance name>.mvpn extensive

Das könnte Ihnen auch gefallen