Profile 27
Load top1.vpnv4v6.srv6.configured.cfg
The CUSTOMER L3VPN is already fully setup. PIM is already enabled on the PE-CE links. CSR3 and CSR4 have joined SSM group (1.1.1.1, 232.1.1.1).
Configure XR9 as PCE for XR5-XR8. Use static Tree-SID to achieve mVPN forwarding for the CUSTOMER VRF.
Answer
Explanation
Tree-SID is a new option for building the multicast distribution tree in the SP core. Previously, you would run SR in the core but need to also use mLDP, RSVP-TE, or P-PIM to achieve mVPN tree building. Now with Tree-SID, you can eliminate these protocols and use SR for the mVPN tree as well.
Tree-SID requires the use of an SR-PCE, because the PCE needs to program the LFIB replication entries on all nodes in the tree. In RSVP-TE you do hop-by-hop signaling. In mLDP, you also do a form of hop-by-hop signaling by advertising the mLDP FEC and an associated upstream/downstream label. In SR, we do not have any mechanism like this. Also, a simple stack of labels is not suitable as you cannot signal replication that way. So a PCE needs to be used to install the state on all nodes.
Keep in mind that when using SR-PCE for Tree-SID, all nodes in the network that will be part of the mVPN tree must have a session with the PCE. Not just the PEs. This is because the PCE needs to program the state on P routers involved in the mVPN tree as well.
First we configure SR-PCE as normal. The PCE needs to receive the IGP feed somehow (distribute link-state or BGP-LS), and all routers must configure a PCEP session with the PCE. Additionally, this init file is missing the router ID necessary for the SR-TED, so that is added to all routers as well.
In profile 27, we use a static Tree-SID. This is configured manually, so this typically would not be used much in the real world. Also keep in mind that this only allows for one PCE to be used. (You cannot have PCE redundancy).
To start, we enable mVPN on the leaf PEs. Remember that we are not running BGP ipv4/mvpn. Instead, we enable mVPN using static sr-p2mp. The name of the static SR policy must match exactly on all PEs and the PCE. In this lab, we use the name “Tree-SID-Pol1.”
The root has a slightly different configuration. This is the ingress PE, which will forward the traffic down the tree. It does not set the static sr-policy under the multicast VRF config. Instead, it sets the sr-p2mp-policy under router pim. We configure the static group (1.1.1.1, 232.1.1.1) to use this SR-P2MP static policy. This means that customer traffic sourced from 1.1.1.1, destined to group 232.1.1.1, will be forwarded down the Tree-SID-Pol1 SR-P2MP tree.
Finally, the PCE defines the static SR Tree-SID. This contains a list of the endpoints (R7 and R8) and defines a policy that uses a particular Tree-SID label value. The policy can use different metric types and link affinities just like normal SR policies.
Note that at this point, you will likely see ROUTING-FIB-3-PD_FAIL messages. This seems to be an issue with both mLDP and SR Tree-SID on XRv9K. I decided to silence logging to the console.
On the PCE we can verify the p2mp policy as follows:
Above, the output seems to be ordered as transit nodes first (R3 and R1), followed by ingress (R5), followed by egress (R7 and R8). Notice that R3 accepts incoming label 17001 and replicates the traffic to both R7 and R8.
A transit node also has this policy. This is why it is important that all routers have a PCEP session with the PCE.
Using the following command, we can see the SR-P2MP state on the PEs:
Tree-SID appears to use underlying mLDP internal functionality, which might explain why both mLDP and Tree-SID give an error on XRv9K. (It also does not work on XRd). Notice that the LFIB entry refers to “mLDP” even though this is SR Tree-SID.
Another way to see this is to use the show mrib mpls forwarding command:
Unfortunately the data plane does not actually work. XR5 shows that it will forward received traffic out the mdt interface, but the counters are not incrementing despite generating the traffic on CSR1.
A note on label allocation
The documentation says that the global Tree-SID label is specified from the SRLB range. So in our lab, it would probably be more proper to use a label in the 15XXX range.
Interestingly, there is a command to limit the range of labels that can be used for Tree-SID policies on the PCE. This is used for dynamically created p2mp policies via BGP mVPN, not for static policies. If you try to set the dynamic label range for a range that already contains a label used by an existing static policy, you will get the below error.
Last updated