SR-TE PCE Redundancy w/ Sync
Load isis.sr.vpnv4.and.te.enabled.cfg
Configure R9 and R10 as a PCE and R1 as a PCC. On R1, R10 should be the primary PCE, and R9 should be used as backup.
R9 and R10 should sync LSPs between themselves.
On R1, configure a policy that uses color 10 and endpoint 7.7.7.1 with a dynamic path. This should be PCE-computed.
Answer
Explanation
Even though PCCs can keep PCEs synced themselves, you may still want to add a sync session between PCEs for an additional level of redundancy, and also to handle path disjointness.
If a PCC loses a session to one PCE, but that PCE is still up, then the PCEs will not be insync, as the PCC cannot send Reports to one of the PCEs. A sync session adds protection against this.
Additionally, if PCCs use different PCEs as primary, it’s possible to run into an issue with disjointness. Let’s say PCC1 uses PCE1 as primary, and PCC2 uses PCE2 as primary. PCC1 might request disjointness from PCE1, and then report the LSP to PCE2. Next, PCC2 requests disjointness to PCE2. But PCE2 needs to update PCC1’s path first to solve the disjointness. This is not possible since PCE2 has not been delegated control of PCC1’s LSP.
To solve this issue, the PCEs form a master/slave relationship over the sync session. The master is the PCE with the lowest session IP address. The slave will sub-delegate all disjoint path computation to the master PCE. So if the slave receives a path computation request for disjointness, the PCE forwards this to the master PCE, which does the calculation. The master PCE reports this to the slave PCE, which updates the PCC.
PCE sync is configured easily as follows:
We can see on the PCEs that they are PCEP peers. They don’t have the ability to update or instantiate policies on each other. Instead they simply forward PCEP Reports to each other:
When a PCE receives a PCEP Report from a PCC, it clears the delegate flag, adds a TLV with the identity of the PCC, and forwards it to all PCEs that it is syncing with. A PCE does not forward a PCE-received PCEP Report onto other PCEs. This essentially implements iBGP behavior, so a full mesh of sync sessions is required among all PCEs.
We can test that this works by configuring a null route to R9’s loopback and then configuring a new policy on R1.
Even though R1’s PCEP Report destined for R9 is lost, R9 still learns this policy over the sync session with R10:
Last updated