IGP Shortcuts
This chapter provides information about IGP shortcuts.
Topics in this chapter include:
Applicability
This chapter is applicable to SR OS when the feature is not related to BGP. There are no other prerequisites for this configuration. This chapter was initially written for SR OS Release 12.0.R3, but the MD-CLI in the current edition corresponds to SR OS Release 21.2.R1.
Overview
Interior Gateway Protocols (IGPs) are routing protocols that operate inside an Autonomous System (AS). An AS is a network domain that is managed under a single administration. Because the scope of operation of an IGP is usually within an AS, IGPs are also called intra-AS protocols. The purpose of an IGP is to provide reachability information to destination nodes that are inside the domain. IGPs can be one or more of a variety of protocols, including routing protocols such as Routing Information Protocol (RIP) version 1 or 2, Open Shortest Path First (OSPF), and Intermediate System to Intermediate System (IS-IS).
IGPs such as OSPF and IS-IS are link-state protocols that use a Shortest Path First (SPF) algorithm to compute the shortest path tree to all nodes in a network. The results of such computations indicate the destination node, next hop address, and output interface, where the output interface is a physical interface. Optionally, Multi-Protocol Label Switching (MPLS) Label Switched Paths (LSPs) can be included in the SPF algorithm on the node performing the calculations, as LSPs behave as logical interfaces directly connected to remote nodes in the network. Because the SPF algorithm treats the LSPs in the same way as a physical interface (being a potential output interface), the computation results could be to select a destination node together with an output LSP, using the LSP as a shortcut through the network to the destination node.
Normal SPF Tree Sourced by PE-1 shows a normal SPF tree sourced by PE-1 (Provider Edge-1).
If there is an LSP that connects PE-1 to PE-5, and IGP shortcuts are configured on PE-1, the SPF tree will be as shown in SPF Tree Sourced by PE-1 Using LSP Shortcuts.
IGP shortcuts are enabled on a per router basis; SPF computations are independent and irrelevant to other routers, so there is no need to enable shortcuts on every single router.
The example topology used in this example is shown in Example Topology. The setup consists of six 7750 service routers. There is a single AS and a single IGP area. The following configuration tasks should be completed first:
-
IS-IS or OSPF on all interfaces within the AS (configuration has been done using IS-IS but using OSPF shows exactly the same behavior).
-
Label Distribution Protocol (LDP) and Resource Reservation Protocol (RSVP) on all interfaces within the AS.
In all figures, Lb stands for Loopback and Sys stands for the system IP addresses.
Configuration
The first step is to configure the IGP (IS-IS) on all nodes, where IS-IS redistributes route reachability to all routers. To facilitate IS-IS configuration, all routers are L2-L1 capable within the same IS-IS area-id so there is only a single topology area in the network (all routers share the same topology). Traffic engineering (TE) is enabled on the IGP as it is a requirement for RSVP. The metric is using the default values: because no reference bandwidth command is used, the default metric of 10 is applicable on all interfaces. The configuration for PE-2 is as follows.
[/]
A:admin@PE-2# configure {
router "Base" {
interface "int-PE-2-PE-1" {
port 1/1/2
ipv4 {
primary {
address 192.168.12.2
prefix-length 30
}
}
}
interface "int-PE-2-PE-3" {
port 1/1/3
ipv4 {
primary {
address 192.168.23.1
prefix-length 30
}
}
}
interface "int-PE-2-PE-4" {
port 1/1/1
ipv4 {
primary {
address 192.168.24.1
prefix-length 30
}
}
}
interface "system" {
ipv4 {
primary {
address 192.0.2.2
prefix-length 32
}
}
}
isis 0 {
admin-state enable
traffic-engineering true
area-address [49.0001]
interface "int-PE-2-PE-1" {
interface-type point-to-point
}
interface "int-PE-2-PE-3" {
interface-type point-to-point
}
interface "int-PE-2-PE-4" {
interface-type point-to-point
}
interface "system" {
passive true
}
}
}
}
The configuration for the other nodes is similar. The IP addresses can be derived from Example Topology.
The global route table (GRT) for PE-2 is as follows:
[/]
A:admin@PE-2# show router route-table
===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags] Type Proto Age Pref
Next Hop[Interface Name] Metric
-------------------------------------------------------------------------------
192.0.2.1/32 Remote ISIS 00h02m31s 15
192.168.12.1 10
192.0.2.2/32 Local Local 00h02m32s 0
system 0
192.0.2.3/32 Remote ISIS 00h02m05s 15
192.168.23.2 10
192.0.2.4/32 Remote ISIS 00h01m51s 15
192.168.24.2 10
192.0.2.5/32 Remote ISIS 00h01m31s 15
192.168.23.2 20
192.0.2.6/32 Remote ISIS 00h01m09s 15
192.168.24.2 20
192.168.12.0/30 Local Local 00h02m32s 0
int-PE-2-PE-1 0
192.168.13.0/30 Remote ISIS 00h02m31s 15
192.168.12.1 20
192.168.23.0/30 Local Local 00h02m32s 0
int-PE-2-PE-3 0
192.168.24.0/30 Local Local 00h02m32s 0
int-PE-2-PE-4 0
192.168.35.0/30 Remote ISIS 00h02m05s 15
192.168.23.2 20
192.168.45.0/30 Remote ISIS 00h01m51s 15
192.168.24.2 20
192.168.46.0/30 Remote ISIS 00h01m51s 15
192.168.24.2 20
192.168.56.0/30 Remote ISIS 00h01m31s 15
192.168.23.2 30
-------------------------------------------------------------------------------
No. of Routes: 14
Flags: n = Number of times nexthop is repeated
B = BGP backup route available
L = LFA nexthop available
S = Sticky ECMP requested
===============================================================================
LDP and RSVP Shortcuts
Interface Label Distribution Protocol (iLDP) is enabled on all interfaces (except system interfaces, which is not allowed) in all routers. The configuration on all nodes is similar and the IP addresses are derived from Example Topology. The configuration of PE-4 is as follows:
[/]
A:admin@PE-4# configure {
router "Base" {
ldp {
interface-parameters {
interface "int-PE-4-PE-2" {
ipv4 {
}
}
interface "int-PE-4-PE-5" {
ipv4 {
}
}
interface "int-PE-4-PE-6" {
ipv4 {
}
}
}
}
}
}
With iLDP enabled, PE-4 establishes iLDP sessions with its directly connected neighbors, as follows:
[/]
A:admin@PE-4# show router ldp session ipv4
==============================================================================
LDP IPv4 Sessions
==============================================================================
Peer LDP Id Adj Type State Msg Sent Msg Recv Up Time
------------------------------------------------------------------------------
192.0.2.2:0 Link Established 54 54 0d 00:01:54
192.0.2.5:0 Link Established 49 50 0d 00:01:36
192.0.2.6:0 Link Established 42 43 0d 00:01:19
------------------------------------------------------------------------------
No. of IPv4 Sessions: 3
==============================================================================
The following tunnel table shows that there is a Label Switched Path (LSP) to every other router. The reason is that the LDP label distribution mode is downstream unsolicited (DU) by default, originating label bindings for system addresses only (which are used by iLDP as transport address by default). The command also shows the preference of the LSPs (where the preference is 9 for LDP) and the metric of the LSPs (the metric is inherited from the IGP, each hop counts as a metric of 10), as follows. The metric to destinations PE-1 and PE-3 is 20 because there are two hops in between (PE-4 is two hops away from PE-1 and PE-3).
[/]
A:admin@PE-4# show router tunnel-table
===============================================================================
IPv4 Tunnel Table (Router: Base)
===============================================================================
Destination Owner Encap TunnelId Pref Nexthop Metric
Color
-------------------------------------------------------------------------------
192.0.2.1/32 ldp MPLS 65538 9 192.168.24.1 20
192.0.2.2/32 ldp MPLS 65537 9 192.168.24.1 10
192.0.2.3/32 ldp MPLS 65539 9 192.168.24.1 20
192.0.2.5/32 ldp MPLS 65540 9 192.168.45.2 10
192.0.2.6/32 ldp MPLS 65541 9 192.168.46.2 10
-------------------------------------------------------------------------------
Flags: B = BGP or MPLS backup hop available
L = Loop-Free Alternate (LFA) hop available
E = Inactive best-external BGP route
k = RIB-API or Forwarding Policy backup hop
===============================================================================
In order to configure RSVP shortcuts, RSVP must be enabled on all interfaces where traffic engineering is required, but in this example, MPLS and RSVP are enabled on all interfaces of the network. By default, MPLS is enabled on the system interface, therefore, it need not be configured explicitly. When RSVP is in admin-state enable , it is automatically configured on the interfaces where MPLS is configured. The configuration for PE-6 is as follows.
[/]
A:admin@PE-6# configure {
router "Base" {
mpls {
admin-state enable
interface "int-PE-6-PE-4" {
}
interface "int-PE-6-PE-5" {
}
}
rsvp {
admin-state enable
interface "int-PE-6-PE-4" {
}
interface "int-PE-6-PE-5" {
}
}
}
}
The configuration of the other nodes is similar. The IP addresses can be derived from Example Topology. Because there are no RSVP LSPs configured yet, the tunnel table has no RSVP LSPs and only contains LDP LSPs.
LDP Static Route (IP Tunneled in LDP Tunnel)
Using LDP LSP shortcuts for static route resolution enables forwarding of IPv4 packets over LDP LSPs instead of using a regular IP next hop. In other words, the traffic to the resolved static routes is forwarded using MPLS LDP LSP rather than plain IP.
The configuration defines a static route pointing to the destination PE (remote loopback, which is an indirect next hop in the example), and explicitly indicates that it should use LDP rather than IGP. Taking PE-1 and PE-6 as an example, two loopback interfaces are configured (172.16.X.1/32), where X = PE number, and a static route is defined according to the preceding explanation. The following shows the configuration on PE-1.
[/]
A:admin@PE-1# configure {
router "Base" {
interface "loopback" {
ipv4 {
primary {
address 172.16.1.1
prefix-length 32
}
}
loopback
}
static-routes {
route 172.16.6.1/32 route-type unicast {
indirect 192.0.2.6 {
admin-state enable
tunnel-next-hop {
disallow-igp true
resolution filter
resolution-filter {
ldp true
}
}
}
}
}
}
}
Looking at the GRT or forwarding information base (FIB), there are two new entries corresponding to the two configured loopback interfaces. One entry has the protocol set to LOCAL (the local loopback on the PE), and the other entry has the protocol set to STATIC, where the next hop is reached using an LDP LSP.
[/]
A:admin@PE-1# show router fib 1
===============================================================================
FIB Display
===============================================================================
Prefix [Flags] Protocol
NextHop
-------------------------------------------------------------------------------
172.16.1.1/32 LOCAL
172.16.1.1 (loopback)
172.16.6.1/32 STATIC
192.0.2.6 (Transport:LDP)
192.0.2.1/32 LOCAL
192.0.2.1 (system)
192.0.2.2/32 ISIS
192.168.12.2 (int-PE-1-PE-2)
192.0.2.3/32 ISIS
192.168.13.2 (int-PE-1-PE-3)
192.0.2.4/32 ISIS
192.168.12.2 (int-PE-1-PE-2)
192.0.2.5/32 ISIS
192.168.13.2 (int-PE-1-PE-3)
192.0.2.6/32 ISIS
192.168.12.2 (int-PE-1-PE-2)
192.168.12.0/30 LOCAL
192.168.12.0 (int-PE-1-PE-2)
192.168.13.0/30 LOCAL
192.168.13.0 (int-PE-1-PE-3)
192.168.23.0/30 ISIS
192.168.12.2 (int-PE-1-PE-2)
192.168.24.0/30 ISIS
192.168.12.2 (int-PE-1-PE-2)
192.168.35.0/30 ISIS
192.168.13.2 (int-PE-1-PE-3)
192.168.45.0/30 ISIS
192.168.12.2 (int-PE-1-PE-2)
192.168.46.0/30 ISIS
192.168.12.2 (int-PE-1-PE-2)
192.168.56.0/30 ISIS
192.168.13.2 (int-PE-1-PE-3)
-------------------------------------------------------------------------------
Total Entries : 16
-------------------------------------------------------------------------------
===============================================================================
The following output shows that a ping sourced by the loopback interface on PE-1 is able to reach the loopback interface on PE-6, and traceroute demonstrates that the traffic is following the LDP LSP. The ping and traceroute traffic cannot follow the IGP path because the static route command states that the IGP is disallowed when no LDP LSP toward PE-6 is available (also, the loopback interfaces are not enabled on IS-IS).
[/]
A:admin@PE-1# ping 172.16.6.1 source ping 172.16.6.1 source-address 172.16.1.1
PING 172.16.6.1 56 data bytes
64 bytes from 172.16.6.1: icmp_seq=1 ttl=64 time=3.18ms.
64 bytes from 172.16.6.1: icmp_seq=2 ttl=64 time=3.30ms.
. 64 bytes from 172.16.6.1: icmp_seq=3 ttl=64 time=3.03ms.
. 64 bytes from 172.16.6.1: icmp_seq=4 ttl=64 time=3.25ms.
. 64 bytes from 172.16.6.1: icmp_seq=5 ttl=64 time=2.72ms.
---- 172.16.6.1 PING Statistics ----
5 packets transmitted, 5 packets received, 0.00% packet loss
round-trip min = 2.72ms, avg = 3.10ms, max = 3.30ms, stddev = 0.208ms
[/]
A:admin@PE-1# traceroute 172.16.6.1 source traceroute 172.16.6.1 source-address 172.16.1.1
traceroute to 172.16.6.1 from 172.16.1.1, 30 hops max, 40 byte packets
1 0.0.0.0 * * *
2 0.0.0.0 * * *
3 172.16.6.1 (172.16.6.1) 2.79 ms 2.35 ms 2.61 ms
With the traceroute command, there are three hops from PE-1 to PE-6. There is no information regarding IP for the first two hops because the traffic is encapsulated in an MPLS LSP. The reason why the hops are displayed even when there is an MPLS LSP tunnel is because by default, the SR router propagates (copies) the Time To Live (TTL) from the IP header in the MPLS header. This is known as uniform mode.
However, a service provider might not want to show how many MPLS hops (nodes) there are in their network if a traceroute command is executed from outside their network. To prevent internal hops being shown, no propagate commands are needed in the LDP configuration, as follows. This is known as pipe mode.
[/]
A:admin@PE-1# configure {
router "Base" {
ldp {
shortcut-local-ttl-propagate false
shortcut-transit-ttl-propagate false
}
}
}
When TTL propagation is disabled, the hops are not displayed any longer when running the traceroute command.
[/]
A:admin@PE-1# traceroute 172.16.6.1 source traceroute 172.16.6.1 source-address 172.16.1.1
traceroute to 172.16.6.1 from 172.16.1.1, 30 hops max, 40 byte packets
1 172.16.6.1 (172.16.6.1) 1.86 ms 2.04 ms 1.96 ms
For more information about uniform mode and pipe mode, see the ‟Tunneling of ICMP Reply Packets over MPLS LSPs” chapter in the 7450 ESS, 7750 SR, and 7950 XRS MPLS Advanced Configuration Guide for Classic CLI.
RSVP Static Route (IP Tunneled in RSVP Tunnel)
Using RSVP LSP shortcuts for static route resolution enables forwarding of IPv4 packets over RSVP LSPs instead of using a regular IP next hop. In other words, the traffic to the resolved static routes is forwarded using an MPLS RSVP LSP rather than plain IP.
The configuration defines a static route pointing to a destination PE (remote loopback, which is an indirect next hop in the example), and explicitly indicates that it should use RSVP rather than IGP. Taking PE-6 and PE-1 as an example, two loopback interfaces are configured (172.16.X.1/32), where X = PE number, and a static route is defined according to the preceding explanation. The following shows the configuration on PE-6.
[/]
A:admin@PE-6# configure {
router "Base" {
static-routes {
route 172.16.1.1/32 route-type unicast {
indirect 192.0.2.1 {
admin-state enable
tunnel-next-hop {
disallow-igp true
resolution filter
resolution-filter {
rsvp-te { }
}
}
}
}
}
}
}
Also, an RSVP LSP needs to be configured with the system interface of PE-1 as the destination:
[/]
A:admin@PE-6# configure {
router "Base" {
mpls {
path "loose_path" {
admin-state enable
}
lsp "LSP-PE-6-PE-1" {
admin-state enable
to 192.0.2.1
type p2p-rsvp
primary "loose_path" { }
}
}
}
}
In the LSP tunnel table, an RSVP LSP is created:
[/]
A:admin@PE-6# show router tunnel-table
===============================================================================
IPv4 Tunnel Table (Router: Base)
===============================================================================
Destination Owner Encap TunnelId Pref Nexthop Metric
Color
-------------------------------------------------------------------------------
192.0.2.1/32 rsvp MPLS 1 7 192.168.46.1 30
192.0.2.1/32 ldp MPLS 65539 9 192.168.46.1 30
192.0.2.2/32 ldp MPLS 65538 9 192.168.46.1 20
192.0.2.3/32 ldp MPLS 65541 9 192.168.56.1 20
192.0.2.4/32 ldp MPLS 65537 9 192.168.46.1 10
192.0.2.5/32 ldp MPLS 65540 9 192.168.56.1 10
-------------------------------------------------------------------------------
Flags: B = BGP or MPLS backup hop available
L = Loop-Free Alternate (LFA) hop available
E = Inactive best-external BGP route
k = RIB-API or Forwarding Policy backup hop
===============================================================================
The default RSVP preference is 7 (preferred over that of LDP, which is 9) and the metric reflects that this LSP spans 3 hops (for a dynamic LSP not using constrained shortest path first (CSPF), the metric is inherited from IGP). See the RSVP Shortcut for IGP Route Resolution section for more details about the metric applied in LSPs.
The RSVP LSP is used to resolve the indirect next hop (PE-1 system address) in the static route (the LSP used is identified with the tunnel ID, in this case 1), therefore, the route for prefix 172.16.1.1 in the GRT looks as follows:
[/]
A:admin@PE-6# show router route-table 172.16.1.1
===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags] Type Proto Age Pref
Next Hop[Interface Name] Metric
-------------------------------------------------------------------------------
172.16.1.1/32 Remote Static 00h00m00s 5
192.0.2.1 (tunneled:RSVP:1) 1
-------------------------------------------------------------------------------
No. of Routes: 1
Flags: n = Number of times nexthop is repeated
B = BGP backup route available
L = LFA nexthop available
S = Sticky ECMP requested
===============================================================================
As in the LDP shortcut with static route example, between PE-6 and PE-1, TTL propagation is disabled, as follows.
[/]
A:admin@PE-1# configure {
router "Base" {
ldp {
shortcut-local-ttl-propagate false
shortcut-transit-ttl-propagate false
}
}
}
The output is the following when running a traceroute:
[/]
A:admin@PE-6# traceroute 172.16.1.1 source traceroute 172.16.1.1 source-address 172.16.6.1
traceroute to 172.16.1.1 from 172.16.6.1, 30 hops max, 40 byte packets
1 172.16.1.1 (172.16.1.1) 2.81 ms 3.24 ms 3.02 ms
The two static routes that have been defined to use the LDP and RSVP shortcuts follow the static routes default values and have a preference of 5 and a metric of 1.
LDP Shortcut for IGP Route Resolution
Using LDP shortcuts for IGP route resolution enables forwarding of packets to IGP learned routes over an LDP LSP. The default is to disable the LDP shortcut across all interfaces in the node.
When LDP shortcuts are enabled, LDP populates the Route Table Manager (RTM) with next hop entries corresponding to all prefixes for which it activated an LDP Forwarding Equivalence Class (FEC). For a prefix, two route entries are populated in the RTM. One corresponds to the LDP shortcut next hop and has an owner of LDP. The other one is the regular IP next hop. The LDP shortcut next hop always takes preference over the regular IP next hop for forwarding user packets and specific control packets over an outgoing interface to the route next hop.
When LDP has activated a FEC for a prefix and programmed the RTM, it also programs the ingress tunnel table in the line card with the LDP tunnel information.
When an IPv4 packet is received on an ingress network interface and the preferred RTM entry corresponds to an LDP shortcut, a subscriber Internet Enhanced Service (IES) interface, or a regular IES interface, the lookup of the packet by the ingress line card results in the packet being sent labeled with the label stack corresponding to the Next Hop Label Forwarding Entry (NHLFE) of the LDP LSP. If the preferred RTM entry corresponds to an IP next hop, the IPv4 packet is forwarded unlabeled. The activation of the FEC by LDP is done by performing an exact match with an IGP route prefix in the RTM, but it can also be done by performing a longest prefix match with an IGP route in the RTM if the aggregate-prefix-match option is enabled globally in LDP.
Handling of Control Packets
All control plane packets will not see the LDP shortcut route entry in the RTM with the exception of the following control packets which will be forwarded over an LDP shortcut when enabled:
-
A locally generated or in transit ICMP ping and UDP traceroute of an IGP route. The transit message appears as a user packet to the ingress LER node.
-
A locally generated response to a received ICMP ping or UDP traceroute message.
All other control plane packets that require an RTM lookup and have knowledge of which destination is reachable over the LDP shortcut will continue to be forwarded over the IP next hop route in the RTM.
Handling of Multicast Packets
LDP shortcuts apply to unicast FEC types and are used for forwarding IP unicast packets in the data path. IP multicast packets forwarded over an multicast Label Distribution Protocol (mLDP) Point-to-Multi-Point (P2MP) LSP make use of a multicast FEC and thus cannot make use of the LDP unicast shortcut.
ECMP Considerations
When Equal Cost Multi-Path (ECMP) is enabled and multiple equal cost next hops exist for the IGP route, the ingress line card will spray the packets for this route based on the hashing routine supported for IPv4 packets. When the preferred RTM entry corresponds to an LDP shortcut route, spraying is performed across the multiple next hops for the LDP FEC. The FEC next hops can either be direct link LDP neighbors, or T-LDP (targeted LDP) neighbors reachable over RSVP LSPs in the case of LDP-over-RSVP, but not both. This is as per ECMP for LDP in the existing implementation. When the preferred RTM entry corresponds to a regular IP route, spraying will be performed across regular IP next hops for the prefix. Spraying across regular IP next hops and LDP shortcut next hops concurrently is not supported.
Configuring IGP LDP shortcuts is straightforward, and only applies to the node where there is interest to provision the LDP shortcut. In this example, only PE-1 is provisioned with LDP shortcuts, as follows:
[/]
A:admin@PE-1# configure {
router "Base" {
ldp {
ldp-shortcut {
ipv4 true
}
}
}
}
Now, all tunnel LSPs that resolve an IGP next hop will replace the IP next hops, as shown in the following output:
[/]
A:admin@PE-1# show router route-table
===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags] Type Proto Age Pref
Next Hop[Interface Name] Metric
-------------------------------------------------------------------------------
192.0.2.1/32 Local Local 00h50m05s 0
system 0
192.0.2.2/32 Remote LDP 00h00m00s 9
192.168.12.2 (tunneled) 10
192.0.2.3/32 Remote LDP 00h00m00s 9
192.168.13.2 (tunneled) 10
192.0.2.4/32 Remote LDP 00h00m00s 9
192.168.12.2 (tunneled) 20
192.0.2.5/32 Remote LDP 00h00m00s 9
192.168.13.2 (tunneled) 20
192.0.2.6/32 Remote LDP 00h00m00s 9
192.168.12.2 (tunneled) 30
192.168.12.0/30 Local Local 00h50m05s 0
int-PE-1-PE-2 0
192.168.13.0/30 Local Local 00h50m05s 0
int-PE-1-PE-3 0
192.168.23.0/30 Remote ISIS 00h49m41s 15
192.168.12.2 20
192.168.24.0/30 Remote ISIS 00h49m41s 15
192.168.12.2 20
192.168.35.0/30 Remote ISIS 00h49m20s 15
192.168.13.2 20
192.168.45.0/30 Remote ISIS 00h49m06s 15
192.168.12.2 30
192.168.46.0/30 Remote ISIS 00h49m06s 15
192.168.12.2 30
192.168.56.0/30 Remote ISIS 00h48m46s 15
192.168.13.2 30
-------------------------------------------------------------------------------
No. of Routes: 14
Flags: n = Number of times nexthop is repeated
B = BGP backup route available
L = LFA nexthop available
S = Sticky ECMP requested
===============================================================================
[/]
A:admin@PE-1# show router fib 1
===============================================================================
FIB Display
===============================================================================
Prefix [Flags] Protocol
NextHop
-------------------------------------------------------------------------------
192.0.2.1/32 LOCAL
192.0.2.1 (system)
192.0.2.2/32 LDP
192.0.2.2 (Transport:LDP)
192.0.2.3/32 LDP
192.0.2.3 (Transport:LDP)
192.0.2.4/32 LDP
192.0.2.4 (Transport:LDP)
192.0.2.5/32 LDP
192.0.2.5 (Transport:LDP)
192.0.2.6/32 LDP
192.0.2.6 (Transport:LDP)
192.168.12.0/30 LOCAL
192.168.12.0 (int-PE-1-PE-2)
192.168.13.0/30 LOCAL
192.168.13.0 (int-PE-1-PE-3)
192.168.23.0/30 ISIS
192.168.12.2 (int-PE-1-PE-2)
192.168.24.0/30 ISIS
192.168.12.2 (int-PE-1-PE-2)
192.168.35.0/30 ISIS
192.168.13.2 (int-PE-1-PE-3)
192.168.45.0/30 ISIS
192.168.12.2 (int-PE-1-PE-2)
192.168.46.0/30 ISIS
192.168.12.2 (int-PE-1-PE-2)
192.168.56.0/30 ISIS
192.168.13.2 (int-PE-1-PE-3)
-------------------------------------------------------------------------------
Total Entries : 14
-------------------------------------------------------------------------------
===============================================================================
Applying LDP IGP shortcuts only on PE-1 implies that IP traffic from PE-1 to any of the system addresses of the rest of the nodes will use the LDP shortcut, however, the traffic replied from any PE back to PE-1 will be native IP because IGP shortcuts have not been provisioned in the other nodes.
RSVP Shortcut for IGP Route Resolution
Using RSVP LSP shortcuts when resolving IGP routes enables forwarding of packets to IGP learned routes over an RSVP LSP. The use of RSVP shortcuts for resolving IGP routes is enabled at the IS-IS (or OSPF) routing protocol level or at the LSP level, and instructs IS-IS and OSPF to include RSVP LSPs originating on this node and terminating on the system address (router ID) of a remote node and considers them as direct links. RSVP LSPs with a destination address corresponding to an interface address or any other loopback interface address of a remote node are automatically not considered by IS-IS or OSPF.
By default, RSVP shortcuts are disabled in all IGP instances.
RSVP LSPs are included in the IGP SPF computation with the following characteristics:
-
RSVP LSP is modeled as a point-to-point link IP interface and its metric is used in the computation of the shortest path of IGP routes
-
Next hop and interface include the NHLFE of the shortcut LSP when the IGP path cost using the RSVP LSP is the best.
-
Shortcuts are not used when the destination RSVP LSP is in a different IGP area. In addition, IGP adjacencies across an RSVP LSP are not supported.
RSVP shortcuts are enabled at IGP instance level as follows:
[/]
A:admin@<all PEs># configure {
router "Base" {
isis 0 {
igp-shortcut {
admin-state enable
tunnel-next-hop {
family ipv4 {
resolution filter
resolution-filter {
rsvp true
}
}
}
}
}
}
}
The configuration can be done at the IGP level or per LSP level. When RSVP shortcuts are enabled at the IGP instance level, all RSVP LSPs originating on this node are eligible by default. The user can, however, exclude a specific RSVP LSP from being used as a shortcut for resolving IGP routes by entering the command (e.g. on PE-6):
[/]
A:admin@PE-6# configure {
router "Base" {
mpls {
lsp "LSP-PE-6-PE-1" {
delete igp-shortcut
}
}
}
}
As RSVP shortcuts can coexist with LDP shortcuts or IP next hops, SPF computation and path selection follows the procedures in RFC 3906:
-
SPF picks the RSVP shortcut next hop if there is an RSVP LSP directly to that address regardless of the path cost compared to the IGP next hop.
-
SPF picks the RSVP shortcut next hop or the IGP next hop based on path lowest cost if there is an IGP path to the prefix that does not go via the tail-end of the LSP.
-
If the IGP next hop is picked, then it can be an LDP shortcut next hop or a regular IP next hop. The LDP shortcut next hop always has preference over the regular IP next hop.
Handling of Control Packets
All control plane packets requiring an RTM lookup and whose destination is reachable over the RSVP shortcut are forwarded over the shortcut. This is because the RTM keeps a single route entry for each prefix, except if there is ECMP over different outgoing interfaces. Interface bound control packets are not impacted by the RSVP shortcut because RSVP LSPs with a destination address different than the router ID are not included by IGP in its SPF calculation.
RSVP shortcuts for IGP shortcut resolution should only be used with CSPF LSPs or with fully explicit path non-CSPF LSPs. RSVP hop-by-hop Path messages will try to use the shortcut and consequently LSPs without CSPF enabled, or that use a loose/empty hop path, will not come up. However, LSPs with CSPF enabled or using a strict hop path will come up. This is because in the former case, the RTM lookup to get the next hop results in using the shortcut and so the path messages are sent directly to the destination of the LSP, where they are dropped. With CSPF enabled, the next hop (and the entire path) is provided by CSPF and the path messages are sent unlabeled to the directly connected neighbor which corresponds to the next hop of the destination of the LSP. Similar processing occurs if a strict hop path is used, as is the case in the following example.
Handling of Multicast Packets
IP multicast packets cannot be forwarded over an RSVP shortcut, they can only be forwarded over an RSVP P2MP LSP. However, RSVP shortcut routes appear in the RTM and are seen by all applications when they are the best route. When the Reverse Path Forwarding (RPF) check for the source of the multicast packet matches an RSVP shortcut route, the check will pass if both the RSVP shortcut and the multicast-import options are enabled in the IGP, as follows, because the RTM is populated with next hops only and not with tunnels (RPFs will fail for source prefixes resolved to a tunnel NH).
[/]
A:admin@PE-6# configure {
router "Base" {
isis multicast-import ?
multicast-import
ipv4 - Submit IPv4 routes into the multicast RPF of the RTM
ipv6 - Submit IPv6 routes into the multicast RPF of the RTM
The unicast RTM can still use the tunnel next hop for the same prefix. SPF keeps track of both the direct first hop and the tunneled first hop of a node which is added to the Dijkstra tree.
ECMP Considerations
When ECMP is enabled and multiple equal cost paths exist for the route over a set of tunnel next hops based on the hashing routine supported for IPv4 packets, there are two possibilities:
-
Destination is tunnel endpoint: the system selects the tunnel with lowest tunnel ID (IP next hop is never used).
-
Destination is different from the tunnel endpoint: it selects tunnel endpoints when the LSP metric is not greater than the IGP cost and it prefers tunnel endpoint over IP next hop.
ECMP is not performed across the IP and tunnel next hops simultaneously.
RSVP Shortcuts Configuration
Configuring RSVP LSP shortcuts is straightforward, and only applies to the node where there is interest to provision the RSVP shortcut. Two LSPs, from PE-6 to PE-1 and from PE-1 to PE-6, with strict hops, are provisioned according to LSPs Between PE-1 and PE-6.
The configuration on PE-1 and PE-6 is similar (replacing the IP addresses), so only the configuration for PE-6 is shown:
[/]
A:admin@PE-6# configure {
router "Base" {
isis 0 {
igp-shortcut {
admin-state enable
tunnel-next-hop {
family ipv4 {
resolution filter
resolution-filter {
rsvp true
}
}
}
}
}
}
}
[/]
A:admin@PE-6# configure {
router "Base" {
mpls {
path "path-to-PE-1" {
admin-state enable
hop 10 {
ip-address 192.0.2.5
type strict
}
hop 20 {
ip-address 192.0.2.3
type strict
}
hop 30 {
ip-address 192.0.2.2
type strict
}
hop 40 {
ip-address 192.0.2.1
type strict
}
}
lsp "LSP-PE-6-PE-1-strict" {
admin-state enable
to 192.0.2.1
type p2p-rsvp
primary "path-to-PE-1" { }
}
}
}
}
The GRT output shows the change in the next hop, using an RSVP shortcut:
[/]
A:admin@PE-6# show router route-table
===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags] Type Proto Age Pref
Next Hop[Interface Name] Metric
-------------------------------------------------------------------------------
192.0.2.1/32 Remote ISIS 00h00m32s 15
192.0.2.1 (tunneled:RSVP:2) 16777215
192.0.2.2/32 Remote ISIS 00h58m17s 15
192.168.46.1 20
192.0.2.3/32 Remote ISIS 00h58m17s 15
192.168.56.1 20
192.0.2.4/32 Remote ISIS 00h58m17s 15
192.168.46.1 10
192.0.2.5/32 Remote ISIS 00h58m17s 15
192.168.56.1 10
192.0.2.6/32 Local Local 00h58m18s 0
system 0
192.168.12.0/30 Remote ISIS 00h58m17s 15
192.168.46.1 30
192.168.13.0/30 Remote ISIS 00h58m17s 15
192.168.56.1 30
192.168.23.0/30 Remote ISIS 00h58m17s 15
192.168.46.1 30
192.168.24.0/30 Remote ISIS 00h58m17s 15
192.168.46.1 20
192.168.35.0/30 Remote ISIS 00h58m17s 15
192.168.56.1 20
192.168.45.0/30 Remote ISIS 00h58m17s 15
192.168.46.1 20
192.168.46.0/30 Local Local 00h58m18s 0
int-PE-6-PE-4 0
192.168.56.0/30 Local Local 00h58m18s 0
int-PE-6-PE-5 0
-------------------------------------------------------------------------------
No. of Routes: 14
Flags: n = Number of times nexthop is repeated
B = BGP backup route available
L = LFA nexthop available
S = Sticky ECMP requested
===============================================================================
The RSVP LSP in the output has a metric of 16777215, the LSP administrative metric matches the maximum value allowed for an IS-IS link using the wide-metric (24-bit value with a range of [0 — 16777215]). The following metric rules apply:
-
A dynamic strict path non-CSPF LSP has the maximum metric (16777215).
-
A dynamic CSPF LSP has a metric equal to the cumulative IGP cost.
-
If the user enabled the use of the TE metric on this LSP ([/] A:admin@<a PE># configure { router "Base" { mpls { lsp <LSP Name> { path-computation-method local-cspf metric-type te } } } }), then the metric for the LSP is the maximum (16777215).
-
If the user enabled the use of the TE metric on this LSP and provisioned a specific metric on the lsp ([/] A:admin@<a PE># configure { router "Base" { mpls { lsp <LSP Name> { path-computation-method local-cspf metric-type te metric <value> } } } }), then the metric for the LSP is the one provisioned. When configuring the metric of an LSP, the parameter ‟metric-type” is not required.
-
-
A static LSP has a maximum metric (16777215).
-
Manual and dynamic bypass LSPs have the maximum metric (16777215).
The RSVP shortcuts section detailed the importance of the LSP metric when using CSPF LSPs or when importing RSVP tunnel links into the IGP. The LSP metric can be inherited from the IGP, or can be manually modified by configuring a specific LSP metric or relative metric offset. Because IP and LDP FECs resolve to RSVP LSPs when the metric is equal or lower compared to the regular routing metric, configuring a specific static LSP metric (lower than the IGP metric) or relative metric offset is strongly recommended when using RSVP shortcuts, so that the GRT and LDP FEC resolution will always prefer the RSVP LSP shortcuts when the CSPF path computation is not using the shortest path.
For the preceding example, the first rule applies.
Advertising RSVP LSP Tunnel Links in the IGP: Forwarding Adjacency Feature
If configured, an RSVP LSP can also be advertised into the IGP similar to regular links so that other routers in the network can include that RSVP LSP into their SPF computations. The forwarding adjacency feature can be enabled independently from the RSVP shortcut feature in CLI. If both are configured for an IGP instance, the forwarding adjacency takes precedence. An RSVP LSP must exist in the reverse direction in order for the advertised link to pass the bi-directional link check and be usable by other routers in the network. However, this is not required for the node which originates the LSP. The LSP is advertised as an unnumbered point-to-point link and the Link State Protocol data unit (LSP) and Link State Advertisement (LSA) have no traffic engineering opaque sub-TLVs as per RFC 3906.
Reusing the RSVP IGP shortcuts set up previously (PE-1 and PE-6 RSVP IGP shortcut example according to LSPs Between PE-1 and PE-6), the outcome is a route linked with an RSVP LSP as next hop, as follows:
[/]
A:admin@PE-6# show router route-table 192.0.2.1/32
===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags] Type Proto Age Pref
Next Hop[Interface Name] Metric
-------------------------------------------------------------------------------
192.0.2.1/32 Remote ISIS 00h02m25s 15
192.0.2.1 (tunneled:RSVP:2) 16777215
-------------------------------------------------------------------------------
No. of Routes: 1
Flags: n = Number of times nexthop is repeated
B = BGP backup route available
L = LFA nexthop available
S = Sticky ECMP requested
===============================================================================
The route tunneled through RSVP has a metric of 16777215, so it is not used by PE-6 GRT to reach any other routes because the metric is very high. After enabling the forwarding adjacency feature (tunnel links) to use shortcuts in the configuration, PE-1 and PE-6 have a direct connection through the RSVP LSP (as a virtual link). This configuration command must be executed in both routers.
[/]
A:admin@PE-1(&6)# configure {
router "Base" {
isis 0 {
advertise-tunnel-link
}
}
}
When the shortcut is advertised by IS-IS, the route will disappear from the RTM because the metric of the shortcut is greater than the IGP cost.
[/]
A:admin@PE-6# show router route-table 192.0.2.1/32
===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags] Type Proto Age Pref
Next Hop[Interface Name] Metric
-------------------------------------------------------------------------------
192.0.2.1/32 Remote ISIS 00h01m22s 15
192.168.46.1 30
-------------------------------------------------------------------------------
No. of Routes: 1
Flags: n = Number of times nexthop is repeated
B = BGP backup route available
L = LFA nexthop available
S = Sticky ECMP requested
===============================================================================
If the LSP is reconfigured to use a metric equal to or smaller than the IGP cost, the router PE-6 will use the RSVP shortcut again. In the example, the LSP is reconfigured with a metric of 30 (e.g. on PE-6):
[/]
A:admin@PE-6# configure {
router "Base" {
mpls {
lsp "LSP-PE-6-PE-1-strict" {
metric 30
}
}
}
}
Now the shortcut shows up as the preferred next hop to reach PE-1 from PE-6.
[/]
A:admin@PE-6# show router route-table 192.0.2.1/32
===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags] Type Proto Age Pref
Next Hop[Interface Name] Metric
-------------------------------------------------------------------------------
192.0.2.1/32 Remote ISIS 00h00m53s 15
192.0.2.1 (tunneled:RSVP:2) 30
-------------------------------------------------------------------------------
No. of Routes: 1
Flags: n = Number of times nexthop is repeated
B = BGP backup route available
L = LFA nexthop available
S = Sticky ECMP requested
===============================================================================
As explained earlier, this could be combined with ECMP, so if ECMP is configured to 2, the system shows the two equal cost paths.
[/]
A:admin@PE-6# configure {
router "Base" {
ecmp 2
}
}
[/]
A:admin@PE-6# show router route-table 192.0.2.1/32
===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags] Type Proto Age Pref
Next Hop[Interface Name] Metric
-------------------------------------------------------------------------------
192.0.2.1/32 Remote ISIS 00h00m21s 15
192.0.2.1 (tunneled:RSVP:2) 30
192.0.2.1/32 Remote ISIS 00h00m21s 15
192.168.46.1 30
-------------------------------------------------------------------------------
No. of Routes: 2
Flags: n = Number of times nexthop is repeated
B = BGP backup route available
L = LFA nexthop available
S = Sticky ECMP requested
===============================================================================
The GRT on PE-4 displays the route to reach PE-1 (192.0.2.1/32) with a metric of 20 via PE-2 as next hop. Although PE-6 is announcing the RSVP LSP-PE-6-PE-1 to the other routers, the LSP shortcut is not used by PE-4, because the metric to reach PE-6 (10) plus the metric of the LSP shortcut from PE-6 to PE-1 (metric 30) is greater than 20.
[/]
A:admin@PE-4# show router route-table
===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags] Type Proto Age Pref
Next Hop[Interface Name] Metric
-------------------------------------------------------------------------------
192.0.2.1/32 Remote ISIS 01h06m15s 15
192.168.24.1 20
192.0.2.2/32 Remote ISIS 01h06m15s 15
192.168.24.1 10
192.0.2.3/32 Remote ISIS 01h06m15s 15
192.168.24.1 20
192.0.2.4/32 Local Local 01h06m16s 0
system 0
192.0.2.5/32 Remote ISIS 01h05m50s 15
192.168.45.2 10
192.0.2.6/32 Remote ISIS 01h05m33s 15
192.168.46.2 10
192.168.12.0/30 Remote ISIS 01h06m15s 15
192.168.24.1 20
192.168.13.0/30 Remote ISIS 01h06m15s 15
192.168.24.1 30
192.168.23.0/30 Remote ISIS 01h06m15s 15
192.168.24.1 20
192.168.24.0/30 Local Local 01h06m16s 0
int-PE-4-PE-2 0
192.168.35.0/30 Remote ISIS 01h05m50s 15
192.168.45.2 20
192.168.45.0/30 Local Local 01h06m16s 0
int-PE-4-PE-5 0
192.168.46.0/30 Local Local 01h06m16s 0
int-PE-4-PE-6 0
192.168.56.0/30 Remote ISIS 01h05m33s 15
192.168.45.2 20
-------------------------------------------------------------------------------
No. of Routes: 14
Flags: n = Number of times nexthop is repeated
B = BGP backup route available
L = LFA nexthop available
S = Sticky ECMP requested
===============================================================================
If the metric of the LSP LSP-PE-6-PE-1 is modified to a value between 1 and 9, there is a better metric (less than 20) so that PE-4 will change the next hop via PE-6. First the metric of the LSP is modified to 9:
[/]
A:admin@PE-6# configure {
router "Base" {
mpls {
lsp "LSP-PE-6-PE-1-strict" {
metric 9
}
}
}
}
The GRT on PE-4 shows that the next hop to reach PE-1 has changed, from next hop PE-2 to next hop PE-6 (therefore, using the LSP shortcut), and the metric is 19 (10 to reach PE-6 plus metric 9 of the LSP PE-6-PE-1 shortcut):
[/]
A:admin@PE-4# show router route-table 192.0.2.1/32
===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags] Type Proto Age Pref
Next Hop[Interface Name] Metric
-------------------------------------------------------------------------------
192.0.2.1/32 Remote ISIS 00h00m29s 15
192.168.46.2 19
-------------------------------------------------------------------------------
No. of Routes: 1
Flags: n = Number of times nexthop is repeated
B = BGP backup route available
L = LFA nexthop available
S = Sticky ECMP requested
===============================================================================
Because the metric of the LSP shortcut was modified to a value of 9, the GRT of PE-6 shows that the next hops of several routes have changed and are also using the shortcut LSP PE-6-PE-1 because the metric is better than the regular IS-IS metric. IGP shortcuts will not be used to resolve prefixes downstream of the LSP endpoint when the LSP metric is higher than the underlying IGP cumulative metric.
[/]
A:admin@PE-6# show router route-table
===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags] Type Proto Age Pref
Next Hop[Interface Name] Metric
-------------------------------------------------------------------------------
192.0.2.1/32 Remote ISIS 00h00m54s 15
192.0.2.1 (tunneled:RSVP:2) 9
192.0.2.2/32 Remote ISIS 00h00m54s 15
192.0.2.1 (tunneled:RSVP:2) 19
192.0.2.3/32 Remote ISIS 00h00m54s 15
192.0.2.1 (tunneled:RSVP:2) 19
192.0.2.4/32 Remote ISIS 00h02m06s 15
192.168.46.1 10
192.0.2.5/32 Remote ISIS 00h02m06s 15
192.168.56.1 10
192.0.2.6/32 Local Local 01h08m12s 0
system 0
192.168.12.0/30 Remote ISIS 00h00m54s 15
192.0.2.1 (tunneled:RSVP:2) 19
192.168.13.0/30 Remote ISIS 00h00m54s 15
192.0.2.1 (tunneled:RSVP:2) 19
192.168.23.0/30 Remote ISIS 00h00m54s 15
192.0.2.1 (tunneled:RSVP:2) 29
192.168.24.0/30 Remote ISIS 00h02m06s 15
192.168.46.1 20
192.168.35.0/30 Remote ISIS 00h02m06s 15
192.168.56.1 20
192.168.45.0/30 Remote ISIS 00h02m06s 15
192.168.46.1 20
192.168.46.0/30 Local Local 01h08m12s 0
int-PE-6-PE-4 0
192.168.56.0/30 Local Local 01h08m12s 0
int-PE-6-PE-5 0
-------------------------------------------------------------------------------
No. of Routes: 14
Flags: n = Number of times nexthop is repeated
B = BGP backup route available
L = LFA nexthop available
S = Sticky ECMP requested
===============================================================================
There are also cases where an LDP FEC can resolve to an RSVP LSP, if the user enables the LDP-over-RSVP feature or IGP shortcut feature when prefer-tunnel-in-tunnel is set to true in LDP and the endpoint of the RSVP LSP matches the FEC prefix. For those cases, the metric to the prefix is the sum of the RSVP LSP metric and the remaining IGP path cost.
RSVP LSP Role As Outcome of LSP Level and IGP Level Configuration Options provides a summary of the outcome when configuring the forwarding adjacency, LDPoRSVP and RSVP shortcut options at both the IGP instance level and at the LSP level.
IGP Instance Level Configurations |
||||||
---|---|---|---|---|---|---|
LSP Level Configuration |
advertise-tunnel-link enabled/rsvp-shortcut enabled/ldp-over-rsvp enabled |
advertise-tunnel-link enabled/rsvp-shortcut enabled/ldp-over-rsvp disabled |
advertise-tunnel-link enabled/rsvp-shortcut disabled/ldp-over-rsvp disabled |
advertise-tunnel-link disabled/rsvp-shortcut disabled/ldp-over-rsvp disabled |
advertise-tunnel-link disabled/rsvp-shortcut enabled/ldp-over-rsvp enabled |
advertise-tunnel-link disabled/rsvp-shortcut disabled/ldp-over-rsvp enabled |
igp-shortcut enabled/ldp-over-rsvp enabled |
Forwarding Adjacency |
Forwarding Adjacency |
Forwarding Adjacency |
None |
IGP Shortcut |
LDP-over-RSVP |
igp-shortcut enabled/ldp-over-rsvp disabled |
Forwarding Adjacency |
Forwarding Adjacency |
Forwarding Adjacency |
None |
IGP Shortcut |
None |
igp-shortcut disabled/ldp-over-rsvp enabled |
None |
None |
None |
None |
None |
LDP-over-RSVP |
igp-shortcut disabled/ldp-over-rsvp disabled |
None |
None |
None |
None |
None |
None |
LSP Relative Metric
It is possible to use relative metrics for IGP shortcuts as per RFC 3906, Calculating Interior Gateway Protocol (IGP) Routes Over Traffic Engineering Tunnels, with the following command (e.g. on PE-6):
[/]
A:admin@PE-6# configure {
router "Base" {
mpls {
lsp "LSP-PE-6-PE-1-strict" {
igp-shortcut ?
admin-state - Administrative state of the LSP to be used as a shortcut while resolving IGP routes
Choice: igp-choice
lfa-type :- Specific RSVP LSP by IS-IS and OSPF routing protocols to assign as shortcut or as forwarding adjacency
relative-metric :- Shortest IGP cost between the endpoints of the LSP plus the configured offset
[/]
A:admin@PE-6# configure {
router "Base" {
mpls {
lsp "LSP-PE-6-PE-1-strict" {
igp-shortcut {
lfa-type ?
lfa-type <keyword>
<keyword> - (lfa-protect|lfa-only)
Specific RSVP LSP by IS-IS and OSPF routing protocols to assign as shortcut or as forwarding adjacency
[/]
A:admin@PE-6# configure {
router "Base" {
mpls {
lsp "LSP-PE-6-PE-1-strict" {
igp-shortcut {
relative-metric ?
relative-metric <number>
<number> - <-10..10>
Shortest IGP cost between the endpoints of the LSP plus the configured offset
When this feature is enabled, IGP applies the shortest IGP cost between the endpoints of the LSP, plus the value of a configured offset when computing the cost of the prefix that is resolved to the LSP.
The offset value is optional and can have a value between -10 and 10, and defaults to zero (0). An offset value of zero (0) is used when the relative metric option is enabled without specifying the offset parameter value. The minimum net cost for the prefix is capped to the value of one (1) after applying the offset:
The relative-metric option is ignored when advertise-tunnel-link is enabled in IS-IS or OSPF. In that case, the IGP advertises the LSP as a P2P unnumbered link using the LSP operational metric.
The relative-metric option is mutually exclusive with the lfa-protect (Loop-Free Alternate (LFA)) or the lfa-only options. An LSP with relative-metric option enabled cannot be included in the LFA SPF and vice versa when RSVP shortcuts are enabled in the IGP (see chapter LDP/IP FRR LFA for IGP Shortcut Using IS-IS/OSPF for more information).
The offset can be used to enforce the preference of the shortcut path over the other paths for the prefix. Using an example, a new CSPF LSP with empty path and relative metric of -10 is created between PE-6 and PE-1. Whereas the operational or absolute metric is 30 (IGP cost and populated in the Tunnel Table Manager, TTM), the metric that the RTM shows is 20 after applying the offset:
[/]
A:admin@PE-6# configure {
router "Base" {
mpls {
admin-state enable
lsp "LSP-PE-6-PE-1-loose" {
to 192.0.2.1
type p2p-rsvp
primary "loose_path" { }
path-computation-method local-cspf
igp-shortcut {
relative-metric -10
}
}
}
}
}
[/]
A:admin@PE-6# show router tunnel-table 192.0.2.1
===============================================================================
IPv4 Tunnel Table (Router: Base)
===============================================================================
Destination Owner Encap TunnelId Pref Nexthop Metric
Color
-------------------------------------------------------------------------------
192.0.2.1/32 rsvp MPLS 1 7 192.168.46.1 30
192.0.2.1/32 rsvp MPLS 2 7 192.168.56.1 16777215
192.0.2.1/32 ldp MPLS 65546 9 192.168.46.1 30
-------------------------------------------------------------------------------
Flags: B = BGP or MPLS backup hop available
L = Loop-Free Alternate (LFA) hop available
E = Inactive best-external BGP route
k = RIB-API or Forwarding Policy backup hop
===============================================================================
[/]
A:admin@PE-6# show router route-table 192.0.2.1
===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags] Type Proto Age Pref
Next Hop[Interface Name] Metric
-------------------------------------------------------------------------------
192.0.2.1/32 Remote ISIS 00h03m11s 15
192.168.46.1 20
-------------------------------------------------------------------------------
No. of Routes: 1
Flags: n = Number of times nexthop is repeated
B = BGP backup route available
L = LFA nexthop available
S = Sticky ECMP requested
===============================================================================
LDP/IP FRR LFA for IGP Shortcut Using IS-IS/OSPF
MPLS LDP/IP FRR LFA for IGP shortcuts allows for the use of RSVP LSP-based IGP shortcuts as Loop-Free Alternate (LFA) backups, this way expanding the coverage of the IP Fast-Reroute (FRR) and the LDP FRR capabilities for IS-IS and OSPF prefixes. For a detailed description about IP and LDP FRR, see chapter MPLS LDP FRR using ISIS as IGP.
When an RSVP LSP is used as a shortcut by IS-IS or OSPF, it is included by the SPF as a P2P link and it can also be optionally advertised into the rest of the network by the IGP.
Two LSP-level configuration options are provided:
-
The lfa-protect option includes the RSVP LSP in both the main SPF and the LFA SPFs. If the prefix primary next hop (NH) is tunneled, no LFA NH is computed. The protection in this case is provided by RSVP FRR. If the prefix primary NH is direct, then an LFA NH is computed. A direct LFA NH is preferred over a tunneled LFA NH. Within each LFA NH type, node protection is preferred over link protection. The configuration command is:
[/] A:admin@<a PE># configure { router "Base" { mpls { lsp "<LSP Name>" { igp-shortcut { lfa-type lfa-protect } } } } }
-
The lfa-only option includes the LSP in the LFA SPFs only so that the introduction of IGP shortcuts does not impact the main SPF decision. The prefix primary NH is always direct and the prefix LFA NH is computed. A direct LFA NH is preferred over a tunneled LFA NH. Within each LFA NH type, node protection is preferred over link protection. The configuration command is:
[/] A:admin@<a PE># configure { router "Base" { mpls { lsp "<LSP Name>" { igp-shortcut { lfa-type lfa-only } } } } }
LDP/IP FRR is a local decision, so it can be enabled per node and there are no interoperability issues with other nodes. In the topology, PE-2 is provisioned with IS-IS LFA (OSPF configuration for the rest of this section is similar):
[/]
A:admin@PE-2# configure {
router "Base" {
isis 0 {
loopfree-alternate { }
}
}
}
The second item to configure is whether LDP or IP FRR is provisioned. To configure IP FRR, the command is:
[/]
A:admin@PE-2# configure {
routing-options {
ip-fast-reroute true
}
}
To configure LDP FRR, the following command is used:
[/]
A:admin@PE-2# configure {
router "Base" {
ldp {
fast-reroute
}
}
}
Although not shown, it is recommended to enable IGP-LDP synchronization per interface to avoid possible traffic black-holes.
LFA is enabled in all routers of the topology. The following command shows the LFA coverage on PE-2 where four nodes out of five are protected (80%) and seven of the ten prefixes are protected (70%). IPv4 prefixes are protected (IPv6 is not configured). The following output shows L1 and L2 because this node is provisioned as an L1-L2 IS-IS router.
[/]
A:admin@PE-2# show router isis lfa-coverage
===============================================================================
Rtr Base ISIS Instance 0 LFA Coverage
===============================================================================
Topology Level Node IPv4 IPv6
-------------------------------------------------------------------------------
IPV4 Unicast L1 4/5(80%) 7/10(70%) 0/0(0%)
IPV6 Unicast L1 0/0(0%) 0/0(0%) 0/0(0%)
IPV4 Multicast L1 0/0(0%) 0/0(0%) 0/0(0%)
IPV6 Multicast L1 0/0(0%) 0/0(0%) 0/0(0%)
IPV4 Unicast L2 4/5(80%) 7/10(70%) 0/0(0%)
IPV6 Unicast L2 0/0(0%) 0/0(0%) 0/0(0%)
IPV4 Multicast L2 0/0(0%) 0/0(0%) 0/0(0%)
IPV6 Multicast L2 0/0(0%) 0/0(0%) 0/0(0%)
===============================================================================
PE-2, PE-3, PE-4, and PE-5 share the same results, whereas only PE-1 and PE-6 have a coverage of 100% as shown in the following output.
[/]
A:admin@PE-1# show router isis lfa-coverage
===============================================================================
Rtr Base ISIS Instance 0 LFA Coverage
===============================================================================
Topology Level Node IPv4 IPv6
-------------------------------------------------------------------------------
IPV4 Unicast L1 5/5(100%) 11/11(100%) 0/0(0%)
IPV6 Unicast L1 0/0(0%) 0/0(0%) 0/0(0%)
IPV4 Multicast L1 0/0(0%) 0/0(0%) 0/0(0%)
IPV6 Multicast L1 0/0(0%) 0/0(0%) 0/0(0%)
IPV4 Unicast L2 5/5(100%) 11/11(100%) 0/0(0%)
IPV6 Unicast L2 0/0(0%) 0/0(0%) 0/0(0%)
IPV4 Multicast L2 0/0(0%) 0/0(0%) 0/0(0%)
IPV6 Multicast L2 0/0(0%) 0/0(0%) 0/0(0%)
===============================================================================
Taking a deeper look into the IS-IS LFA on PE-2, it can be seen that the node which is not protected is PE-4 (system address 192.0.2.4, because it is the one missing):
[/]
A:admin@PE-2# show router route-table alternative | match LFA pre-lines 2
192.0.2.1/32 Remote ISIS 01h21m18s 15
192.168.12.1 10
192.168.23.2 (LFA) 20
192.0.2.3/32 Remote ISIS 01h20m52s 15
192.168.23.2 10
192.168.12.1 (LFA) 20
192.0.2.5/32 Remote ISIS 01h20m18s 15
192.168.23.2 20
192.168.24.2 (LFA) 20
192.0.2.6/32 Remote ISIS 01h19m56s 15
192.168.24.2 20
192.168.23.2 (LFA) 30
192.168.13.0/30 Remote ISIS 01h21m18s 15
192.168.12.1 20
192.168.23.2 (LFA) 30
192.168.35.0/30 Remote ISIS 01h20m52s 15
192.168.23.2 20
192.168.12.1 (LFA) 30
192.168.56.0/30 Remote ISIS 01h20m18s 15
192.168.23.2 30
192.168.24.2 (LFA) 30
Flags: n = Number of times nexthop is repeated
Backup = BGP backup route
LFA = Loop-Free Alternate nexthop
LFA is improved by taking advantage of RSVP shortcuts when it is properly provisioned. The reason why PE-4 cannot be protected with an LFA path is because the direct NH is using the direct link between PE-2 and PE-4 (the shortest IGP) and the intended LFA path through PE-3 is not valid (when LFA tries to find an alternate path via PE-3, the IGP cost from PE-3 to PE-4 is the same going via PE-5 as the path back via PE-2, invalidating that LFA calculation because there is a loop). This is normal because PE-2, PE-3, PE-4 and PE-5 are forming a ring. LFA coverage is increased by adding a link between PE-2 and PE-5, which can be done using a physical link or a virtual link with an RSVP shortcut. From the two possible options (lfa-only and lfa-protect), a new LSP ‟LSP-PE-2-PE-5” is configured with igp-shortcut lfa-only.
[/]
A:admin@PE-2# configure {
router "Base" {
mpls {
admin-state enable
path "path-to-PE-5" {
admin-state enable
hop 10 {
ip-address 192.0.2.3
type strict
}
hop 20 {
ip-address 192.0.2.5
type strict
}
}
lsp "LSP-PE-2-PE-5" {
admin-state enable
to 192.0.2.5
type p2p-rsvp
primary "path-to-PE-5" { }
igp-shortcut {
lfa-type lfa-only
}
}
}
}
}
Now the LFA coverage is 100% on PE-2 as shown by the following output:
[/]
A:admin@PE-2# show router isis lfa-coverage
===============================================================================
Rtr Base ISIS Instance 0 LFA Coverage
===============================================================================
Topology Level Node IPv4 IPv6
-------------------------------------------------------------------------------
IPV4 Unicast L1 5/5(100%) 10/10(100%) 0/0(0%)
IPV6 Unicast L1 0/0(0%) 0/0(0%) 0/0(0%)
IPV4 Multicast L1 0/0(0%) 0/0(0%) 0/0(0%)
IPV6 Multicast L1 0/0(0%) 0/0(0%) 0/0(0%)
IPV4 Unicast L2 5/5(100%) 10/10(100%) 0/0(0%)
IPV6 Unicast L2 0/0(0%) 0/0(0%) 0/0(0%)
IPV4 Multicast L2 0/0(0%) 0/0(0%) 0/0(0%)
IPV6 Multicast L2 0/0(0%) 0/0(0%) 0/0(0%)
===============================================================================
The GRT details the prefix information after the new LFA calculation using the lfa-only option (the shortcut is used by LFA SPF). The metric from PE-2 to PE-4 is the maximum plus the IGP cost (16777215 + 10) and the shortcut is also used to protect the rest of the previously unprotected prefixes:
[/]
A:admin@PE-2# show router route-table alternative | match LFA pre-lines 2
192.0.2.1/32 Remote ISIS 01h23m27s 15
192.168.12.1 10
192.168.23.2 (LFA) 20
192.0.2.3/32 Remote ISIS 01h23m01s 15
192.168.23.2 10
192.168.12.1 (LFA) 20
192.0.2.4/32 Remote ISIS 01h22m47s 15
192.168.24.2 10
192.0.2.5 (LFA) (tunneled:RSVP:1) 16777225
192.0.2.5/32 Remote ISIS 01h22m27s 15
192.168.23.2 20
192.168.24.2 (LFA) 20
192.0.2.6/32 Remote ISIS 01h22m05s 15
192.168.24.2 20
192.168.23.2 (LFA) 30
192.168.13.0/30 Remote ISIS 01h23m27s 15
192.168.12.1 20
192.168.23.2 (LFA) 30
192.168.35.0/30 Remote ISIS 01h23m01s 15
192.168.23.2 20
192.168.12.1 (LFA) 30
192.168.45.0/30 Remote ISIS 01h22m47s 15
192.168.24.2 20
192.0.2.5 (LFA) (tunneled:RSVP:1) 16777235
192.168.46.0/30 Remote ISIS 01h22m47s 15
192.168.24.2 20
192.0.2.5 (LFA) (tunneled:RSVP:1) 16777235
192.168.56.0/30 Remote ISIS 01h22m27s 15
192.168.23.2 30
192.168.24.2 (LFA) 30
Flags: n = Number of times nexthop is repeated
Backup = BGP backup route
LFA = Loop-Free Alternate nexthop
The tunnel table shows the RSVP LSP used as a shortcut and its operational metric.
[/]
A:admin@PE-2# show router tunnel-table 192.0.2.5
===============================================================================
IPv4 Tunnel Table (Router: Base)
===============================================================================
Destination Owner Encap TunnelId Pref Nexthop Metric
Color
-------------------------------------------------------------------------------
192.0.2.5/32 rsvp MPLS 1 7 192.168.23.2 16777215
192.0.2.5/32 [L] ldp MPLS 65540 9 192.168.23.2 20
-------------------------------------------------------------------------------
Flags: B = BGP or MPLS backup hop available
L = Loop-Free Alternate (LFA) hop available
E = Inactive best-external BGP route
k = RIB-API or Forwarding Policy backup hop
===============================================================================
If the LSP ‟LSP-PE-2-PE-5” is provisioned with lfa-protect instead of lfa-only, the result is that the LSP "LSP-PE-2-PE-5‟ is used by normal SPF to define the primary NH and it is not used by LFA SPF anymore.
[/]
A:admin@PE-2# configure {
router "Base" {
mpls {
lsp "LSP-PE-2-PE-5" {
igp-shortcut {
lfa-type lfa-protect
}
}
)
)
}
The coverage when lfa-protect is used also shows a 100% for nodes and 100% for prefixes, as follows.
[/]
A:admin@PE-2# show router isis lfa-coverage
===============================================================================
Rtr Base ISIS Instance 0 LFA Coverage
===============================================================================
Topology Level Node IPv4 IPv6
-------------------------------------------------------------------------------
IPV4 Unicast L1 5/5(100%) 9/9(100%) 0/0(0%)
IPV6 Unicast L1 0/0(0%) 0/0(0%) 0/0(0%)
IPV4 Multicast L1 0/0(0%) 0/0(0%) 0/0(0%)
IPV6 Multicast L1 0/0(0%) 0/0(0%) 0/0(0%)
IPV4 Unicast L2 5/5(100%) 9/9(100%) 0/0(0%)
IPV6 Unicast L2 0/0(0%) 0/0(0%) 0/0(0%)
IPV4 Multicast L2 0/0(0%) 0/0(0%) 0/0(0%)
IPV6 Multicast L2 0/0(0%) 0/0(0%) 0/0(0%)
===============================================================================
In this case, the GRT looks as follows, the main difference being that now PE-5 (192.0.2.5) has a direct shortcut from PE-2:
[/]
A:admin@PE-2# show router route-table alternative
===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags] Type Proto Age Pref
Next Hop[Interface Name] Metric
Alt-NextHop Alt-
Metric
-------------------------------------------------------------------------------
192.0.2.1/32 Remote ISIS 01h24m50s 15
192.168.12.1 10
192.168.23.2 (LFA) 20
192.0.2.2/32 Local Local 01h24m51s 0
system 0
192.0.2.3/32 Remote ISIS 01h24m24s 15
192.168.23.2 10
192.168.12.1 (LFA) 20
192.0.2.4/32 Remote ISIS 01h24m10s 15
192.168.24.2 10
192.0.2.5 (LFA) (tunneled:RSVP:1) 16777225
192.0.2.5/32 Remote ISIS 00h00m45s 15
192.0.2.5 (tunneled:RSVP:1) 16777215
192.0.2.6/32 Remote ISIS 01h23m28s 15
192.168.24.2 20
192.168.23.2 (LFA) 30
192.168.12.0/30 Local Local 01h24m51s 0
int-PE-2-PE-1 0
192.168.13.0/30 Remote ISIS 01h24m50s 15
192.168.12.1 20
192.168.23.2 (LFA) 30
192.168.23.0/30 Local Local 01h24m51s 0
int-PE-2-PE-3 0
192.168.24.0/30 Local Local 01h24m51s 0
int-PE-2-PE-4 0
192.168.35.0/30 Remote ISIS 01h24m24s 15
192.168.23.2 20
192.168.12.1 (LFA) 30
192.168.45.0/30 Remote ISIS 01h24m10s 15
192.168.24.2 20
192.0.2.5 (LFA) (tunneled:RSVP:1) 16777235
192.168.46.0/30 Remote ISIS 01h24m10s 15
192.168.24.2 20
192.0.2.5 (LFA) (tunneled:RSVP:1) 16777235
192.168.56.0/30 Remote ISIS 00h00m45s 15
192.168.24.2 30
192.168.23.2 (LFA) 40
-------------------------------------------------------------------------------
No. of Routes: 14
Flags: n = Number of times nexthop is repeated
Backup = BGP backup route
LFA = Loop-Free Alternate nexthop
S = Sticky ECMP requested
===============================================================================
Rules Determining the Installation of Shortcuts into the RTM
Although it was already mentioned in the RSVP-TE LSP shortcut for IGP route resolution section, the rules determining how shortcuts are installed into the RTM are (sorted by higher priority):
-
RSVP shortcut.
-
LDP shortcut.
-
IGP route with regular IP next hop.
-
The implementation is compliant with RFC 3906.
To check the rules, the network configuration is iLDP in all interfaces with LDP shortcuts enabled, there is also an RSVP LSP from PE-6 to PE-3 available but RSVP shortcuts are disabled. The topology is shown in Network Topology to Verify Installation of Shortcuts into the RTM.
The following RSVP LSP is needed between PE-6 and PE-3.
[/]
A:admin@PE-6# configure {
router "Base" {
ldp {
ldp-shortcut {
ipv4 true
}
}
}
}
[/]
A:admin@PE-6# configure {
router "Base" {
isis 0 {
delete loopfree-alternate
igp-shortcut {
tunnel-next-hop {
family ipv4 {
resolution-filter {
rsvp false
}
resolution none
}
}
admin-state disable
}
}
}
}
[/]
A:admin@PE-6# configure {
router "Base" {
mpls {
path "loose_path" {
admin-state enable
}
lsp "LSP-PE-6-PE-3" {
admin-state enable
to 192.0.2.3
type p2p-rsvp
primary "loose_path" { }
path-computation-method local-cspf
}
}
}
}
The routes in the routing table on PE-6 are the following:
[/]
A:admin@PE-6# show router route-table
===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags] Type Proto Age Pref
Next Hop[Interface Name] Metric
-------------------------------------------------------------------------------
192.0.2.1/32 Remote LDP 00h00m00s 9
192.168.56.1 (tunneled) 30
192.0.2.2/32 Remote LDP 00h00m00s 9
192.168.56.1 (tunneled) 30
192.0.2.3/32 Remote LDP 00h00m00s 9
192.168.56.1 (tunneled) 20
192.0.2.5/32 Remote LDP 00h00m00s 9
192.168.56.1 (tunneled) 10
192.0.2.6/32 Local Local 01h28m21s 0
system 0
192.168.12.0/30 Remote ISIS 00h02m08s 15
192.168.56.1 40
192.168.13.0/30 Remote ISIS 00h19m24s 15
192.168.56.1 30
192.168.23.0/30 Remote ISIS 00h02m08s 15
192.168.56.1 30
192.168.35.0/30 Remote ISIS 00h22m14s 15
192.168.56.1 20
192.168.56.0/30 Local Local 01h28m21s 0
int-PE-6-PE-5 0
-------------------------------------------------------------------------------
No. of Routes: 10
Flags: n = Number of times nexthop is repeated
B = BGP backup route available
L = LFA nexthop available
S = Sticky ECMP requested
===============================================================================
The tunnel table shows the LSPs available for the shortcuts, and therefore, these are used in the GRT for LDP (but not for RSVP):
[/]
A:admin@PE-6# show router tunnel-table
===============================================================================
IPv4 Tunnel Table (Router: Base)
===============================================================================
Destination Owner Encap TunnelId Pref Nexthop Metric
Color
-------------------------------------------------------------------------------
192.0.2.1/32 ldp MPLS 65547 9 192.168.56.1 30
192.0.2.2/32 ldp MPLS 65544 9 192.168.56.1 30
192.0.2.3/32 rsvp MPLS 4 7 192.168.56.1 20
192.0.2.3/32 ldp MPLS 65545 9 192.168.56.1 20
192.0.2.5/32 ldp MPLS 65540 9 192.168.56.1 10
-------------------------------------------------------------------------------
Flags: B = BGP or MPLS backup hop available
L = Loop-Free Alternate (LFA) hop available
E = Inactive best-external BGP route
k = RIB-API or Forwarding Policy backup hop
===============================================================================
So far, LDP shortcuts are preferred over the IGP next hops for the system addresses (router ID). After enabling RSVP shortcuts in the IS-IS context, the changes in the GRT are:
[/]
A:admin@PE-6# configure {
router "Base" {
isis 0 {
igp-shortcut {
admin-state enable
tunnel-next-hop {
family ipv4 {
resolution filter
resolution-filter {
rsvp true
}
}
}
}
}
}
}
[/]
A:admin@PE-6# show router route-table next-hop-type tunneled
===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags] Type Proto Age Pref
Next Hop[Interface Name] Metric
-------------------------------------------------------------------------------
192.0.2.1/32 Remote ISIS 00h00m27s 15
192.0.2.3 (tunneled:RSVP:4) 30
192.0.2.2/32 Remote ISIS 00h00m27s 15
192.0.2.3 (tunneled:RSVP:4) 30
192.0.2.3/32 Remote ISIS 00h00m27s 15
192.0.2.3 (tunneled:RSVP:4) 20
192.0.2.5/32 Remote LDP 00h00m30s 9
192.168.56.1 (tunneled) 10
192.168.12.0/30 Remote ISIS 00h00m27s 15
192.0.2.3 (tunneled:RSVP:4) 40
192.168.13.0/30 Remote ISIS 00h00m27s 15
192.0.2.3 (tunneled:RSVP:4) 30
192.168.23.0/30 Remote ISIS 00h00m27s 15
192.0.2.3 (tunneled:RSVP:4) 30
-------------------------------------------------------------------------------
No. of Routes: 7
Flags: n = Number of times nexthop is repeated
B = BGP backup route available
L = LFA nexthop available
S = Sticky ECMP requested
===============================================================================
The GRT shows that PE-6 is using an LDP shortcut to reach PE-5, but PE-6 is using the RSVP shortcut to reach not only PE-3’s system address, but also PE-1 and PE-2 routes (including all interfaces) which were behind the RSVP LSP shortcut.
In summary, the behavior is:
-
When resolving a prefix, SPF picks the RSVP shortcut next hop if there is an RSVP LSP directly to that address regardless of the IGP path cost compared to the IGP next hop. When multiple RSVP LSPs to that address exist and all have the same lowest metric, if ECMP is enabled on the system, the LSP with the lowest tunnel ID is chosen. In this example, if LSP ‟LSP-PE-6-PE-3” is provisioned with a metric of 100 (IGP metric is 20), the GRT shows that the PE-3 system address is reachable via the LSP.
[/] A:admin@PE-6# show router route-table 192.0.2.3 =============================================================================== Route Table (Router: Base) =============================================================================== Dest Prefix[Flags] Type Proto Age Pref Next Hop[Interface Name] Metric ------------------------------------------------------------------------------- 192.0.2.3/32 Remote ISIS 00h00m53s 15 192.0.2.3 (tunneled:RSVP:4) 100 ------------------------------------------------------------------------------- No. of Routes: 1 Flags: n = Number of times nexthop is repeated B = BGP backup route available L = LFA nexthop available S = Sticky ECMP requested ===============================================================================
-
SPF also picks the RSVP LSP shortcut if both the LSP path and the IGP path to the prefix are via the tail-end of the LSP. This is regardless of the path cost compared to the IGP next hop. When paths over multiple RSVP shortcuts have the same lowest cost, if ECMP is enabled on the system, the LSP with the lowest tunnel ID is chosen. In this example, 192.168.13.0 and 192.168.23.0 are using the shortcut but 192.168.12.0 is not.
[/] A:admin@PE-6# show router route-table =============================================================================== Route Table (Router: Base) =============================================================================== Dest Prefix[Flags] Type Proto Age Pref Next Hop[Interface Name] Metric ------------------------------------------------------------------------------- 192.0.2.1/32 Remote LDP 00h00m53s 9 192.168.56.1 (tunneled) 30 192.0.2.2/32 Remote LDP 00h00m53s 9 192.168.56.1 (tunneled) 30 192.0.2.3/32 Remote ISIS 00h00m53s 15 192.0.2.3 (tunneled:RSVP:4) 100 192.0.2.5/32 Remote LDP 00h01m25s 9 192.168.56.1 (tunneled) 10 192.0.2.6/32 Local Local 01h29m45s 0 system 0 192.168.12.0/30 Remote ISIS 00h00m53s 15 192.168.56.1 40 192.168.13.0/30 Remote ISIS 00h00m53s 15 192.0.2.3 (tunneled:RSVP:4) 110 192.168.23.0/30 Remote ISIS 00h00m53s 15 192.0.2.3 (tunneled:RSVP:4) 110 192.168.35.0/30 Remote ISIS 00h23m39s 15 192.168.56.1 20 192.168.56.0/30 Local Local 01h29m45s 0 int-PE-6-PE-5 0 ------------------------------------------------------------------------------- No. of Routes: 10 Flags: n = Number of times nexthop is repeated B = BGP backup route available L = LFA nexthop available S = Sticky ECMP requested ===============================================================================
LDP/RSVP LSP Shortcut for BGP NH Resolution
Using LDP/RSVP LSP shortcuts for resolving BGP next hops allows IPv4 packet forwarding to routes resolved via a BGP next hop using an LDP/RSVP LSP instead of using a regular IP next hop. In the network topology of Example Topology, both PE-3 and PE-6 have a single peer configured, initially without any shortcuts enabled under the bgp context. Also, one static route is configured in PE-3 and PE-6 and that is redistributed into BGP. The relevant configuration on PE-3 is the following:
[/]
A:admin@PE-3# configure {
router "Base" {
interface "int-static-route" {
ipv4 {
primary {
address 172.16.33.1
prefix-length 30
}
}
port 1/1/4:33
}
autonomous-system 65536
static-routes {
route 10.10.10.0/24 route-type unicast {
next-hop "172.16.33.2" {
admin-state enable
}
}
}
}
}
[/]
A:admin@PE-3# configure {
policy-options {
policy-statement "static-routes-policy" {
description "export static-routes for I-BGP"
entry 10 {
from {
protocol {
name [static]
}
}
to {
protocol {
name [bgp]
}
}
action {
action-type accept
next-hop self
}
}
default-action {
action-type reject
}
}
}
}
[/]
A:admin@PE-3# configure {
router "Base" {
bgp {
export {
policy ["static-routes-policy"]
}
group "ibgp" {
peer-as 65536
}
neighbor 192.0.2.6 {
group "ibgp"
}
}
}
}
Checking the static route received on PE-6 via BGP, the next hop is the PE-3 system address:
[/]
A:admin@PE-6# show router bgp routes 10.10.10.0/24 detail
===============================================================================
BGP Router ID:192.0.2.6 AS:65536 Local AS:65536
===============================================================================
Legend -
Status codes : u - used, s - suppressed, h - history, d - decayed, * - valid
l - leaked, x - stale, > - best, b - backup, p - purge
Origin codes : i - IGP, e - EGP, ? - incomplete
===============================================================================
BGP IPv4 Routes
===============================================================================
Original Attributes
Network : 10.10.10.0/24
Nexthop : 192.0.2.3
Path Id : None
From : 192.0.2.3
Res. Protocol : ISIS Res. Metric : 20
Res. Nexthop : 192.168.56.1
Local Pref. : 100 Interface Name : int-PE-6-PE-5
Aggregator AS : None Aggregator : None
Atomic Aggr. : Not Atomic MED : None
AIGP Metric : None IGP Cost : 20
Connector : None
Community : No Community Members
Cluster : No Cluster Members
Originator Id : None Peer Router Id : 192.0.2.3
Fwd Class : None Priority : None
Flags : Used Valid Best Incomplete In-RTM
Route Source : Internal
AS-Path : No As-Path
Route Tag : 0
Neighbor-AS : n/a
Orig Validation: NotFound
Source Class : 0 Dest Class : 0
Add Paths Send : Default
RIB Priority : Normal
Last Modified : 00h01m32s
Modified Attributes
---snip---
-------------------------------------------------------------------------------
Routes : 1
===============================================================================
Three of the BGP peering configuration possibilities are LDP, RSVP, or BGP. The other resolution filter options are related to segment routing and are beyond the scope of this chapter. In case both LDP and RSVP are included in the filter, RSVP is preferred. Disabling the IGP is also allowed (meaning that unless there is a shortcut, the BGP peering will not fall back to IGP):
[/]
A:admin@PE-6# configure {
router "Base" {
bgp {
next-hop-resolution {
shortcut-tunnel {
family ipv4 {
resolution ?
resolution <keyword>
<keyword> - (none|filter|any)
Default - none
Resolution mode for binding BGP routes to tunnel types
[/]
A:admin@PE-6# configure {
router "Base" {
bgp {
next-hop-resolution {
shortcut-tunnel {
family ipv4 {
resolution-filter ?
resolution-filter
bgp - Use BGP tunneling for next-hop resolution
ldp - Use LDP tunneling for next-hop resolution
mpls-fwd-policy - Use MPLS forwarding policy for next-hop resolution
rib-api - Use RIB API gRPC service for next-hop resolution
rsvp - Use RSVP tunneling for next-hop resolution
sr-isis - Use IS-IS SR tunneling for next-hop resolution
sr-ospf - Use OSPF SR tunneling for next-hop resolution
sr-ospf3 - Use OSPFv3 SR tunneling for next-hop resolution
sr-policy - Use SR policies for next-hop resolution
sr-te - Use SR-TE tunneling for next-hop resolution
When enabling LDP shortcuts on PE-6, the output changes showing the detail of the received BGP route indicating that the next hop is resolved using LDP:
configure {
router "Base" {
bgp {
next-hop-resolution {
shortcut-tunnel {
family ipv4 {
resolution-filter {
ldp true
}
resolution filter
}
}
}
}
}
}
[/]
A:admin@PE-6# show router bgp routes 10.10.10.0/24 detail
===============================================================================
BGP Router ID:192.0.2.6 AS:65536 Local AS:65536
===============================================================================
Legend -
Status codes : u - used, s - suppressed, h - history, d - decayed, * - valid
l - leaked, x - stale, > - best, b - backup, p - purge
Origin codes : i - IGP, e - EGP, ? - incomplete
===============================================================================
BGP IPv4 Routes
===============================================================================
Original Attributes
Network : 10.10.10.0/24
Nexthop : 192.0.2.3
Path Id : None
From : 192.0.2.3
Res. Protocol : LDP Res. Metric : 20
Res. Nexthop : 192.0.2.3 (LDP)
Local Pref. : 100 Interface Name : NotAvailable
Aggregator AS : None Aggregator : None
Atomic Aggr. : Not Atomic MED : None
AIGP Metric : None IGP Cost : 20
Connector : None
Community : No Community Members
Cluster : No Cluster Members
Originator Id : None Peer Router Id : 192.0.2.3
Fwd Class : None Priority : None
Flags : Used Valid Best Incomplete In-RTM
Route Source : Internal
AS-Path : No As-Path
Route Tag : 0
Neighbor-AS : n/a
Orig Validation: NotFound
Source Class : 0 Dest Class : 0
Add Paths Send : Default
RIB Priority : Normal
Last Modified : 00h02m32s
Modified Attributes
---snip---
-------------------------------------------------------------------------------
Routes : 1
===============================================================================
The GRT output command also shows that the route is reachable using LDP (indicated as tunneled):
[/]
A:admin@PE-6# show router route-table next-hop-type tunneled
===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags] Type Proto Age Pref
Next Hop[Interface Name] Metric
-------------------------------------------------------------------------------
10.10.10.0/24 Remote BGP 00h00m30s 170
192.0.2.3 (tunneled) 20
-------------------------------------------------------------------------------
No. of Routes: 1
Flags: n = Number of times nexthop is repeated
B = BGP backup route available
L = LFA nexthop available
S = Sticky ECMP requested
===============================================================================
The previously created LSP LSP-PE-6-PE-3 is up and running:
[/]
A:admin@PE-6# show router mpls lsp "LSP-PE-6-PE-3" path detail
===============================================================================
MPLS LSP LSP-PE-6-PE-3 Path (Detail)
===============================================================================
Legend :
@ - Detour Available # - Detour In Use
b - Bandwidth Protected n - Node Protected
s - Soft Preemption
S - Strict L - Loose
A - ABR + - Inherited
===============================================================================
-------------------------------------------------------------------------------
LSP LSP-PE-6-PE-3
Path loose_path
-------------------------------------------------------------------------------
LSP Name : LSP-PE-6-PE-3
From : 192.0.2.6
To : 192.0.2.3
Admin State : Up Oper State : Up
Path Name : loose_path
Path LSP ID : 9216 Path Type : Primary
Path Admin : Up Path Oper : Up
Out Interface : 1/1/1 Out Label : 524283
Path Up Time : 0d 00:13:27 Path Down Time : 0d 00:00:00
Retry Limit : 0 Retry Timer : 30 sec
Retry Attempt : 0 Next Retry In : 0 sec
---snip---
Adspec : Disabled Oper Adspec : Disabled
PathCompMethod : local-cspf OperPathCompMethod: local-cspf
MetricType : igp Oper MetricType : igp
Least Fill : Disabled Oper LeastFill : Disabled
FRR : Disabled Oper FRR : Disabled
Propagate Adm Grp: Disabled Oper Prop Adm Grp : Disabled
Inter-area : False
---snip---
Adaptive : Enabled Oper Metric : 100
Preference : n/a
Path Trans : 1 CSPF Queries : 1
Failure Code : noError
Failure Node : n/a
Explicit Hops :
No Hops Specified
Actual Hops :
192.168.56.2(192.0.2.6) Record Label : N/A
-> 192.168.56.1(192.0.2.5) Record Label : 524283
-> 192.168.35.1(192.0.2.3) Record Label : 524284
Computed Hops :
192.168.56.2(S)
-> 192.168.56.1(S)
-> 192.168.35.1(S)
Resignal Eligible: False
Last Resignal : n/a CSPF Metric : 20
===============================================================================
After adding resolution-filter rsvp to the shortcut-tunnel configuration in the bgp context, the output shows that the BGP peer is reachable using an RSVP LSP (switched from LDP to RSVP because RSVP is preferred):
[/]
A:admin@PE-6# configure {
router "Base" {
bgp {
next-hop-resolution {
shortcut-tunnel {
family ipv4 {
resolution-filter {
ldp true
rsvp true
}
resolution filter
}
}
}
}
}
}
[/]
A:admin@PE-6# show router bgp routes 10.10.10.0/24 detail
===============================================================================
BGP Router ID:192.0.2.6 AS:65536 Local AS:65536
===============================================================================
Legend -
Status codes : u - used, s - suppressed, h - history, d - decayed, * - valid
l - leaked, x - stale, > - best, b - backup, p - purge
Origin codes : i - IGP, e - EGP, ? - incomplete
===============================================================================
BGP IPv4 Routes
===============================================================================
Original Attributes
Network : 10.10.10.0/24
Nexthop : 192.0.2.3
Path Id : None
From : 192.0.2.3
Res. Protocol : RSVP Res. Metric : 100
Res. Nexthop : 192.0.2.3 (RSVP LSP: 4)
Local Pref. : 100 Interface Name : NotAvailable
Aggregator AS : None Aggregator : None
Atomic Aggr. : Not Atomic MED : None
AIGP Metric : None IGP Cost : 100
Connector : None
Community : No Community Members
Cluster : No Cluster Members
Originator Id : None Peer Router Id : 192.0.2.3
Fwd Class : None Priority : None
Flags : Used Valid Best Incomplete In-RTM
Route Source : Internal
AS-Path : No As-Path
Route Tag : 0
Neighbor-AS : n/a
Orig Validation: NotFound
Source Class : 0 Dest Class : 0
Add Paths Send : Default
RIB Priority : Normal
Last Modified : 00h03m59s
Modified Attributes
---snip---
-------------------------------------------------------------------------------
Routes : 1
===============================================================================
The GRT output command also shows that the route is reachable using RSVP (indicated as tunneled:RSVP:4):
[/]
A:admin@PE-6# show router route-table next-hop-type tunneled
===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags] Type Proto Age Pref
Next Hop[Interface Name] Metric
-------------------------------------------------------------------------------
10.10.10.0/24 Remote BGP 00h00m33s 170
192.0.2.3 (tunneled:RSVP:4) 100
-------------------------------------------------------------------------------
No. of Routes: 1
Flags: n = Number of times nexthop is repeated
B = BGP backup route available
L = LFA nexthop available
S = Sticky ECMP requested
===============================================================================
If the RSVP LSP is disabled, the system reverts back to the LDP LSP:
configure {
router "Base" {
mpls {
lsp "LSP-PE-6-PE-3" {
admin-state disable
}
}
}
}
[/]
A:admin@PE-6# show router bgp routes 10.10.10.0/24 detail
===============================================================================
BGP Router ID:192.0.2.6 AS:65536 Local AS:65536
===============================================================================
Legend -
Status codes : u - used, s - suppressed, h - history, d - decayed, * - valid
l - leaked, x - stale, > - best, b - backup, p - purge
Origin codes : i - IGP, e - EGP, ? - incomplete
===============================================================================
BGP IPv4 Routes
===============================================================================
Original Attributes
Network : 10.10.10.0/24
Nexthop : 192.0.2.3
Path Id : None
From : 192.0.2.3
Res. Protocol : LDP Res. Metric : 20
Res. Nexthop : 192.0.2.3 (LDP)
Local Pref. : 100 Interface Name : NotAvailable
Aggregator AS : None Aggregator : None
Atomic Aggr. : Not Atomic MED : None
AIGP Metric : None IGP Cost : 20
Connector : None
Community : No Community Members
Cluster : No Cluster Members
Originator Id : None Peer Router Id : 192.0.2.3
Fwd Class : None Priority : None
Flags : Used Valid Best Incomplete In-RTM
Route Source : Internal
AS-Path : No As-Path
Route Tag : 0
Neighbor-AS : n/a
Orig Validation: NotFound
Source Class : 0 Dest Class : 0
Add Paths Send : Default
RIB Priority : Normal
Last Modified : 00h04m21s
Modified Attributes
---snip---
-------------------------------------------------------------------------------
Routes : 1
===============================================================================
When the shortcut tunnel with resolution-filter rsvp is enabled at the BGP level, all RSVP LSPs originating on this node are eligible to be used by default as long as the destination address of the LSP corresponds to that of the BGP next hop for that prefix. It is also possible to exclude a specific RSVP LSP from BGP next hop resolution, similar to the exclusion of a specific RSVP LSP being used as a shortcut for resolving IGP routes. In this example, if the RSVP LSP LSP-PE-6-PE-3 is excluded to be eligible for BGP next hop resolution, it reverts back to LDP.
[/]
A:admin@PE-6# configure {
router "Base" {
mpls {
lsp "LSP-PE-6-PE-3" {
admin-state enable
delete bgp-shortcut
}
)
)
}
[/]
A:admin@PE-6# show router route-table 10.10.10.0
===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags] Type Proto Age Pref
Next Hop[Interface Name] Metric
-------------------------------------------------------------------------------
10.10.10.0/24 Remote BGP 00h00m29s 170
192.0.2.3 (tunneled:RSVP:4) 100
-------------------------------------------------------------------------------
No. of Routes: 1
Flags: n = Number of times nexthop is repeated
B = BGP backup route available
L = LFA nexthop available
S = Sticky ECMP requested
===============================================================================
If the configuration is using disallow-igp, and neither LDP nor RSVP LSPs are available, the remote route received via BGP is removed from the GRT although the BGP peer session remains up. A field in the detailed show BGP route output indicates that the next hop is ‟Unresolved”:
[/]
A:admin@PE-6# configure {
router "Base" {
bgp {
next-hop-resolution {
shortcut-tunnel {
family ipv4 {
disallow-igp true
}
}
}
}
}
}
[/]
A:admin@PE-6# configure {
router "Base" {
ldp {
admin-state disable
}
}
}
[/]
A:admin@PE-6# show router bgp routes 10.10.10.0/24 detail
===============================================================================
BGP Router ID:192.0.2.6 AS:65536 Local AS:65536
===============================================================================
Legend -
Status codes : u - used, s - suppressed, h - history, d - decayed, * - valid
l - leaked, x - stale, > - best, b - backup, p - purge
Origin codes : i - IGP, e - EGP, ? - incomplete
===============================================================================
BGP IPv4 Routes
===============================================================================
Original Attributes
Network : 10.10.10.0/24
Nexthop : 192.0.2.3
Path Id : None
From : 192.0.2.3
Res. Protocol : INVALID Res. Metric : 0
Res. Nexthop : Unresolved
Local Pref. : 100 Interface Name : NotAvailable
Aggregator AS : None Aggregator : None
Atomic Aggr. : Not Atomic MED : None
AIGP Metric : None IGP Cost : 0
Connector : None
Community : No Community Members
Cluster : No Cluster Members
Originator Id : None Peer Router Id : 192.0.2.3
Fwd Class : None Priority : None
Flags : Invalid Incomplete Nexthop-Unresolved
Route Source : Internal
AS-Path : No As-Path
Route Tag : 0
Neighbor-AS : n/a
Orig Validation: NotFound
Source Class : 0 Dest Class : 0
Add Paths Send : Default
RIB Priority : Normal
Last Modified : 00h10m33s
Modified Attributes
---snip---
-------------------------------------------------------------------------------
Routes : 1
===============================================================================
Because the route is unresolved, it does not appear in the GRT:
[/]
A:admin@PE-6# show router route-table 10.10.10.0
===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags] Type Proto Age Pref
Next Hop[Interface Name] Metric
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
No. of Routes: 0
Flags: n = Number of times nexthop is repeated
B = BGP backup route available
L = LFA nexthop available
S = Sticky ECMP requested
===============================================================================
MPLS/GRE Shortcut for BGP NH Resolution within a VRF
Using RSVP/LDP or GRE shortcuts for resolving BGP next hops within a Virtual Private Routed Network (VPRN), also known as auto-bind-tunnel, allows a VPRN service to automatically resolve the BGP next hop for VPRN routes to an MPLS LSP or a GRE tunnel. Three possible mechanisms exist to provide transport tunnels for forwarding traffic between PE routers within an RFC 4364, BGP/MPLS IP Virtual Private Networks (VPNs), network:
-
RSVP-TE protocol to create tunnel LSPs between PE routers.
-
LDP protocol to create tunnel LSPs between PE routers.
-
GRE tunnels between PE routers.
These transport tunneling mechanisms provide the flexibility to use dynamically created LSPs where the service tunnels are automatically bound (the auto-bind-tunnel feature), and the ability to provide certain VPN services with their own transport tunnels by explicitly binding SDPs if desired. All services using the auto-bind-tunnel feature use the same set of LSPs, which does not allow for alternate tunneling mechanisms (like GRE) or the ability to craft sets of LSPs with bandwidth reservations for specific customers, as is available with explicit SDPs for the service.
The auto-bind-tunnel configuration is as follows:
[/]
A:admin@PE-2# configure {
service {
vprn "NON_EXISTING_VPRN" {
bgp-ipvpn {
mpls {
auto-bind-tunnel
?
allow-flex-algo- - Enable flexible algorithm fallback
fallback
apply-groups - Apply a configuration group at this level
apply-groups-exclude - Exclude a configuration group at this level
ecmp - Maximum ECMP routes allowed
enforce-strict- - Allow enforcement of strict tunnel tagging
tunnel-tagging
resolution - Resolution method for tunnel selection
resolution-filter + Enter the resolution-filter context
weighted-ecmp - Allow weighted load-balancing
[/]
A:admin@PE-2# configure {
service {
vprn "NON_EXISTING_VPRN" {
bgp-ipvpn {
mpls {
auto-bind-tunnel {
resolution ?
resolution <keyword>
<keyword> - (none|filter|any)
Default - none
Resolution method for tunnel selection
[/]
A:admin@PE-2# configure {
service {
vprn "NON_EXISTING_VPRN" {
bgp-ipvpn {
mpls {
auto-bind-tunnel {
resolution-filter ?
resolution-filter
bgp - Use BGP tunneling for next-hop resolution
gre - Use GRE tunneling for next-hop resolution
ldp - Use LDP tunneling for next-hop resolution
mpls-fwd-policy - Use MPLS forwarding policy for next-hop resolution
rib-api - Use RIB API gRPC service for next-hop resolution
rsvp - Use RSVP tunneling for next-hop resolution
sr-isis - Use IS-IS SR tunneling for next-hop resolution
sr-ospf - Use OSPF SR tunneling for next-hop resolution
sr-ospf3 - Use OSPFv3 SR tunneling for next-hop resolution
sr-policy - Use SR policies for next-hop resolution
sr-te - Use SR-TE tunneling for next-hop resolution
udp - Use MPLS over UDP tunneling for next-hop resolution
Parameter descriptions:
-
ldp — Specifies LDP-based LSPs should be used to resolve the BGP next hop for VPRN routes in an associated VPRN instance.
-
gre — Specifies GRE-based tunnels to be used to resolve the BGP next hop for VPRN routes in an associated VPRN instance. GRE is out of the scope regarding shortcuts, refer to SR OS documentation for further details.
-
rsvp — Specifies RSVP-TE LSPs should be used to resolve the BGP next hop for VPRN routes in an associated VPRN instance.
-
the remaining parameters are beyond the scope of this chapter.
In all cases, if an explicit spoke-SDP is specified in the VPRN, it is always preferred over automatically selected tunnels (even if the SDP is down, the route becomes inactive; there is no fallback to the automatic selection).
The network is configured according to the topology shown in Shortcuts Within a VRF Topology Network. Four PEs (PE-1, PE-2, PE-4, and PE-5) are connected forming a meshed IP-VPN (named VPRN_1), using a route reflector on PE-3 for MP-BGP peering. All PEs have LDP tunnels enabled so at a minimum all can establish LDP shortcut tunnels to the others. In order to have not only LDP but also RSVP-TE LSPs and static SDPs (using an RSVP LSP) in the network, a mix of tunneling methods is configured. For brevity, the configuration of PE-2 only is given, providing the details about the shortcuts created by auto-bind-tunnel. PE-2 has a static SDP (RSVP-based) with PE-1, an RSVP LSP with PE-4, and an LDP LSP with PE-5. Every PE has a CE connected, so each PE has an interface connected to the CE as well as a static route to a CE LAN (although redistribution routing policies are needed, they are not shown for brevity).
On PE-2, VPRN1 is configured as follows:
configure {
service {
sdp 1 {
admin-state enable
far-end {
ip-address 192.0.2.1
}
delivery-type mpls
lsp "LSP-PE-2-PE-1"
}
vprn "VPRN_1" {
admin-state enable
service-id 1
customer "1"
bgp-ipvpn {
mpls {
admin-state enable
route-distinguisher "65536:1"
vrf-import {
policy ["VPN1-import"]
}
vrf-export {
policy ["VPN1-export"]
}
auto-bind-tunnel {
resolution filter
resolution-filter {
gre true
ldp true
rsvp true
}
}
}
}
interface "to-CE-2" {
ipv4 {
primary {
address 172.16.2.1
prefix-length 24
}
}
sap 1/1/4:1 { }
}
static-routes {
route 172.16.22.0/24 route-type unicast {
next-hop "172.16.2.2" {
admin-state enable
}
}
}
spoke-sdp 1:1
}
}
}
As previously mentioned, regarding IP-VPN meshed connectivity, the configuration shows that there is a static SDP 1 (pointing to PE-1), and the rest of the configuration is just auto-bind-tunnel. On PE-2, the connectivity toward the other PEs in the network can be verified by checking VPRN_1:
[/]
A:admin@PE-2# show router 1 route-table
===============================================================================
Route Table (Service: 1)
===============================================================================
Dest Prefix[Flags] Type Proto Age Pref
Next Hop[Interface Name] Metric
-------------------------------------------------------------------------------
172.16.1.0/24 Remote BGP VPN 00h01m14s 170
192.0.2.1 (tunneled) 0
172.16.2.0/24 Local Local 00h09m06s 0
to-CE-2 0
172.16.4.0/24 Remote BGP VPN 00h01m14s 170
192.0.2.4 (tunneled:RSVP:3) 10
172.16.5.0/24 Remote BGP VPN 00h01m14s 170
192.0.2.5 (tunneled) 20
172.16.11.0/24 Remote BGP VPN 00h01m14s 170
192.0.2.1 (tunneled) 0
172.16.22.0/24 Remote Static 00h09m07s 5
172.16.2.2 1
172.16.44.0/24 Remote BGP VPN 00h01m14s 170
192.0.2.4 (tunneled:RSVP:3) 10
172.16.55.0/24 Remote BGP VPN 00h01m14s 170
192.0.2.5 (tunneled) 20
-------------------------------------------------------------------------------
No. of Routes: 8
Flags: n = Number of times nexthop is repeated
B = BGP backup route available
L = LFA nexthop available
S = Sticky ECMP requested
===============================================================================
As can be seen, there are eight routes because every PE has two routes (one direct PE-CE interface and one static route), so six routes are received from other PEs via MP-BGP. The VPRN_1 routing table can be understood by looking at the tunnel table (active LSPs for remote system IDs):
[/]
A:admin@PE-2# show router tunnel-table
===============================================================================
IPv4 Tunnel Table (Router: Base)
===============================================================================
Destination Owner Encap TunnelId Pref Nexthop Metric
Color
-------------------------------------------------------------------------------
192.0.2.1/32 sdp MPLS 1 5 192.0.2.1 0
192.0.2.1/32 rsvp MPLS 2 7 192.168.12.1 10
192.0.2.1/32 ldp MPLS 65537 9 192.168.12.1 10
192.0.2.3/32 ldp MPLS 65538 9 192.168.23.2 10
192.0.2.4/32 rsvp MPLS 3 7 192.168.24.2 10
192.0.2.4/32 rsvp MPLS 4 7 192.168.24.2 16777215
192.0.2.4/32 ldp MPLS 65545 9 192.168.24.2 10
192.0.2.5/32 ldp MPLS 65542 9 192.168.23.2 20
192.0.2.6/32 ldp MPLS 65546 9 192.168.24.2 20
-------------------------------------------------------------------------------
Flags: B = BGP or MPLS backup hop available
L = Loop-Free Alternate (LFA) hop available
E = Inactive best-external BGP route
k = RIB-API or Forwarding Policy backup hop
===============================================================================
The tunnel table shows one entry per LSP per remote PE. The following tunnel selection rules apply:
-
SDP has the lowest (best) preference, followed by RSVP and then by LDP.
-
If the preference is the same, the lowest metric is selected (ECMP is possible with LDP).
PE-2 has three possibilities to reach PE-1 (192.0.2.1): an SDP tunnel ID 1 with preference 5, an RSVP tunnel ID 2 with preference 7, and an LDP LSP with preference 9. Because SDP tunnel ID 1 has the lowest preference, it is the chosen option. PE-2 has three possibilities to reach PE-4 (192.0.2.4): an RSVP tunnel ID 3 with preference 7 and metric 10, an RSVP tunnel ID 4 with preference 7 and metric 16777215, and an LDP LSP with preference 9; so RSVP tunnel ID 3 is selected. PE-2 only has one option to reach PE-5 and PE-6 (192.0.2.5 and 192.0.2.6) using an LDP LSP.
The following FIB for router VPRN_1 on PE-2 provides more detailed information on the tunneling:
[/]
A:admin@PE-2# show router 1 fib 1
===============================================================================
FIB Display
===============================================================================
Prefix [Flags] Protocol
NextHop
-------------------------------------------------------------------------------
172.16.1.0/24 BGP_VPN
192.0.2.1 (VPRN Label:524281 Transport:SDP:1)
172.16.2.0/24 LOCAL
172.16.2.0 (to-CE-2)
172.16.4.0/24 BGP_VPN
192.0.2.4 (VPRN Label:524280 Transport:RSVP LSP:3)
172.16.5.0/24 BGP_VPN
192.0.2.5 (VPRN Label:524282 Transport:LDP)
172.16.11.0/24 BGP_VPN
192.0.2.1 (VPRN Label:524281 Transport:SDP:1)
172.16.22.0/24 STATIC
172.16.2.2 (to-CE-2)
172.16.44.0/24 BGP_VPN
192.0.2.4 (VPRN Label:524280 Transport:RSVP LSP:3)
172.16.55.0/24 BGP_VPN
192.0.2.5 (VPRN Label:524282 Transport:LDP)
-------------------------------------------------------------------------------
Total Entries : 8
-------------------------------------------------------------------------------
===============================================================================
The FIB shows the chosen transport tunnel, specifying SDP ID, RSVP Tunnel ID, and LDP, as well as service label information linked to the routes.
Static SDP tunnels are preferred over dynamic tunnels (RSVP or LDP auto-bind-tunnel). When the static SDP 1 is shut down or the LSP goes down (there is no fallback to dynamic tunneling), the associated routes are removed:
[/]
A:admin@PE-2# configure {
service {
sdp 1 {
admin-state disable
}
}
}
[/]
A:admin@PE-2# show router 1 fib 1
===============================================================================
FIB Display
===============================================================================
Prefix [Flags] Protocol
NextHop
-------------------------------------------------------------------------------
172.16.2.0/24 LOCAL
172.16.2.0 (to-CE-2)
172.16.4.0/24 BGP_VPN
192.0.2.4 (VPRN Label:524280 Transport:RSVP LSP:3)
172.16.5.0/24 BGP_VPN
192.0.2.5 (VPRN Label:524282 Transport:LDP)
172.16.22.0/24 STATIC
172.16.2.2 (to-CE-2)
172.16.44.0/24 BGP_VPN
192.0.2.4 (VPRN Label:524280 Transport:RSVP LSP:3)
172.16.55.0/24 BGP_VPN
192.0.2.5 (VPRN Label:524282 Transport:LDP)
-------------------------------------------------------------------------------
Total Entries : 6
-------------------------------------------------------------------------------
===============================================================================
To avoid this fallback issue, the configuration is modified and the manual spoke-SDPs are removed from the configuration of PE-1 and PE-2; the rest of the configuration remains the same. Now the connectivity between PE-1 and PE-2 is using an RSVP LSP, as shown in the PE-1 following output (RSVP LSP which was used by SDP 1 has disappeared):
[/]
A:admin@PE-1# configure {
service {
vprn "VPRN_1" {
delete spoke-sdp 1:1
}
}
}
[/]
A:admin@PE-2# configure {
service {
vprn "VPRN_1" {
delete spoke-sdp 1:1
}
}
}
*A:PE-1# show router 1 route-table
===============================================================================
Route Table (Service: 1)
===============================================================================
Dest Prefix[Flags] Type Proto Age Pref
Next Hop[Interface Name] Metric
-------------------------------------------------------------------------------
172.16.1.0/24 Local Local 00h14m16s 0
to-CE-1 0
172.16.2.0/24 Remote BGP VPN 00h00m23s 170
192.0.2.2 (tunneled:RSVP:2) 10
172.16.4.0/24 Remote BGP VPN 00h00m23s 170
192.0.2.4 (tunneled) 20
172.16.5.0/24 Remote BGP VPN 00h00m23s 170
192.0.2.5 (tunneled) 20
172.16.11.0/24 Remote Static 00h14m16s 5
172.16.1.2 1
172.16.22.0/24 Remote BGP VPN 00h00m23s 170
192.0.2.2 (tunneled:RSVP:2) 10
172.16.44.0/24 Remote BGP VPN 00h00m23s 170
192.0.2.4 (tunneled) 20
172.16.55.0/24 Remote BGP VPN 00h00m23s 170
192.0.2.5 (tunneled) 20
-------------------------------------------------------------------------------
No. of Routes: 8
Flags: n = Number of times nexthop is repeated
B = BGP backup route available
L = LFA nexthop available
S = Sticky ECMP requested
===============================================================================
If RSVP is disabled, the connectivity falls back to LDP as the output shows:
configure {
router "Base" {
mpls {
admin-state disable
}
}
}
[/]
A:admin@PE-1# show router 1 fib 1
===============================================================================
FIB Display
===============================================================================
Prefix [Flags] Protocol
NextHop
-------------------------------------------------------------------------------
172.16.1.0/24 LOCAL
172.16.1.0 (to-CE-1)
172.16.2.0/24 BGP_VPN
192.0.2.2 (VPRN Label:524281 Transport:LDP)
172.16.4.0/24 BGP_VPN
192.0.2.4 (VPRN Label:524280 Transport:LDP)
172.16.5.0/24 BGP_VPN
192.0.2.5 (VPRN Label:524282 Transport:LDP)
172.16.11.0/24 STATIC
172.16.1.2 (to-CE-1)
172.16.22.0/24 BGP_VPN
192.0.2.2 (VPRN Label:524281 Transport:LDP)
172.16.44.0/24 BGP_VPN
192.0.2.4 (VPRN Label:524280 Transport:LDP)
172.16.55.0/24 BGP_VPN
192.0.2.5 (VPRN Label:524282 Transport:LDP)
-------------------------------------------------------------------------------
Total Entries : 8
-------------------------------------------------------------------------------
===============================================================================
If LDP is disabled, the connectivity falls back to GRE as the output shows:
[/]
A:admin@PE-1# configure {
router "Base" {
ldp {
admin-state disable
}
}
}
*A:PE-1# show router 1 fib 1
===============================================================================
FIB Display
===============================================================================
Prefix [Flags] Protocol
NextHop
-------------------------------------------------------------------------------
172.16.1.0/24 LOCAL
172.16.1.0 (to-CE-1)
172.16.2.0/24 BGP_VPN
192.0.2.2 (VPRN Label:524280 Transport:GRE)
172.16.4.0/24 BGP_VPN
192.0.2.4 (VPRN Label:524280 Transport:GRE)
172.16.5.0/24 BGP_VPN
192.0.2.5 (VPRN Label:524286 Transport:GRE)
172.16.11.0/24 STATIC
172.16.1.2 (to-CE-1)
172.16.22.0/24 BGP_VPN
192.0.2.2 (VPRN Label:524280 Transport:GRE)
172.16.44.0/24 BGP_VPN
192.0.2.4 (VPRN Label:524280 Transport:GRE)
172.16.55.0/24 BGP_VPN
192.0.2.5 (VPRN Label:524286 Transport:GRE)
-------------------------------------------------------------------------------
Total Entries : 8
-------------------------------------------------------------------------------
===============================================================================
Conclusion
IGP shortcuts provide a variety of shortcuts in IP, MPLS, and IP-VPN scenarios to customers who want to use new options for building routing topologies. Because IGP shortcuts are enabled on a per router basis, SPF computations are independent and irrelevant to other routers, so there is no need to enable shortcuts globally. This network example shows the configuration of IGP shortcuts together with the associated show outputs which can be used for verification and troubleshooting.