Configuring RSVP-TE Tunnels
switch# config
switch(config)# router traffic-engineering
switch(config-te)# rsvp
switch(config-te-rsvp)#
- Global configuration: All settings apply to all configured tunnels.
- Path specifications: Describes a set of constraints for paths. These can be referenced from tunnel specifications to describe which path each tunnel can take.
- Tunnel specifications: Per-tunnel configuration.
- Tunnel profiles: A common set of tunnel configurations that can be associated with tunnel specifications.
Local Interface
switch(config-te-rsvp)# local-interface Loopback0
Path Specifications
Path specifications can be explicit or dynamic. Dynamic uses a Constrained Shortest Path First (CSPF) search procedure to find a path in the network topology known to the headend. A path specification of a certain name can only be either explicit or dynamic.
Explicit Path Specifications
In an explicit path specification, the operator provides all hops in the path. The given path is used directly as the Explicit Route Object (ERO) in RSVP Path messages. All hops are implicitly strict hops. Explicit loose hops are not supported. The hop list must therefore contain the incoming interface IP for each node.
switch(config-te-rsvp)# path MyPath explicit
switch(config-te-rsvp-path-expl-MyPath)#
switch(config-te-rsvp-path-expl-MyPath)# hop 10.0.12.2
switch(config-te-rsvp-path-expl-MyPath)# hop 10.0.34.4
switch(config-te-rsvp-path-expl-MyPath)# hop 10.0.23.3 before 10.0.34.4
switch(config-te-rsvp-path-expl-MyPath)# hop 10.0.45.5 after 10.0.34.4
switch(config-te-rsvp-path-expl-MyPath)# no hop 10.0.12.2
The submode has abort/commit semantics. That is, changes in the submode only take effect when the submode is exited normally. Changes can be discarded when exiting the submode by running the abort command. The currently active configuration can be retrieved with show active. The pending configuration that would become active upon exiting the submode can be retrieved with show pending. The difference between these two can be retrieved with show diff.
Dynamic Path Specification
A dynamic path specification provides the constraints that a CSPF procedure uses to find a path in the network topology. Effectively, the path specification serves as a template that is instantiated along with other tunnel constraints. The CSPF result is a list of strict hops that form the Explicit Route Object (ERO).
switch(config-te-rsvp)# path MyPath dynamic
switch(config-te-rsvp-path-dyn-MyPath)#
Exclude hop constraints specify that CSPF must not choose the specified address on the path. Each exclude hop expresses that neither end of a link in the path may have the specified address. Exclude hops can be configured with the exclude keyword.
switch(config-te-rsvp-path-dyn-MyPath)# hop 10.0.56.6 exclude
switch(config-te-rsvp-path-dyn-MyPath)# hop 10.0.56.6
switch(config-te-rsvp-path-dyn-MyPath)# hop 10.0.56.6 loose
The keywords include hops will include the specified hops in the computed path in the order they are configured. The keywords before and after work as in the submode for explicit paths for ordering include hops relative to already configured hops.
Each include hop indicates a node rather than a specific interface that the path must go through; a computed path can pass through a different interface on the same node as an include hop and still satisfy the constraint. The specified address can be an interface address, a TE router ID, or a loopback address. If there are multiple routers configured with the same loopback address, then no path will be returned by CSPF.
switch(config-te-rsvp-path-dyn-MyPath)# administrative-group include all 1 include any 2-4 exclude 7,9
Administrative groups can alternatively be specified by name as aliases mapped to numerical values. The mapping can be configured under the global TE mode. Please refer to IS-IS Traffic-Engineering TOI for details.
switch(config-te-rsvp-path-dyn-MyPath)# administrative-group include all blue include any 2-4,red exclude green,7
The list of administrative groups should be provided as a comma-separated input without spaces.
Tunnel Specifications
switch(config-te-rsvp)# tunnel MyTunnel
switch(config-te-rsvp-tunnel-MyTunnel)#
Similar to the path specification submodes, the tunnel specification submode has abort/commit semantics. Changes in the submode only take effect when the submode is exited normally. To leave the submode without committing changes, the abort keyword can be used. The show active, show pending, and show diff commands function the same way as they do for the path submodes.
Basic Tunnel Configuration
switch(config-te-rsvp-tunnel-MyTunnel)# destination ip 10.2.2.2
switch(config-te-rsvp-tunnel-myTunnel)# no shutdown Adding Path Specifications
switch(config-te-rsvp-tunnel-myTunnel)# path MyPathA secondary LSP may be specified as a fallback if the primary LSP is unavailable. The secondary LSP provides an alternative way to reach the tunnel endpoint. The secondary LSP is either established on-demand (cold standby) once the primary is unavailable or pre-signaled (hot standby). Configuring a secondary path is optional.
switch(config-te-rsvp-tunnel-myTunnel)# path MyOtherPath secondary pre-signaled
Operationally, a primary LSP is preferred if it is up and running without error. If the primary LSP is down or encounters an error, the tunnel will switch to the secondary LSP. If the secondary LSP is in use and the primary LSP comes up, the tunnel switches to the primary LSP after a 10-second stabilization period.
Bandwidth Specification
switch(config-te-rsvp-tunnel-myTunnel)# bandwidth 10 mbpsswitch(config-te-rsvp-tunnel-myTunnel)# bandwidth auto min 1 mbps max 5 mbps adjustment-period 60switch(config-te-rsvp-tunnel-myTunnel)# bandwidth auto min 1 kbps max 1 gbps sensitivity 9Tunnel priorities
Setup and hold priorities from 0 to 7 can be configured for the tunnel, with 0 meaning most preferred and 7 least preferred.
switch(config-te-rsvp-tunnel-myTunnel)# priority setup 5 hold 3
Color Attributes
A color attribute can be assigned to publish the tunnel to the system-colored-tunnel-rib instead of the system-tunnel-rib. This helps steer traffic into the tunnel, just as one can with SR-TE tunnels.
switch(config-te-rsvp-tunnel-myTunnel)# color 60
Tunnel Participation in IGP Shortcuts and LDP over RSVP
switch(config-te-rsvp-tunnel-myTunnel)# igp shortcut switch(config-te-rsvp-tunnel-myTunnel)# tunneling ldp switch(config-te-rsvp-tunnel-myTunnel)# tunneling ldp ucmpTunnel Optimization
Tunnels using a dynamic path are initially established with the optimal path provided by CSPF that fulfills the constraints. By default, such a tunnel will not re-optimize if network conditions change and a more optimal path becomes available.
switch(config-te-rsvp)# optimization interval 3600 seconds switch(config-te-rsvp)# tunnel myTunnel
switch(config-te-rsvp-tunnel-myTunnel)# optimization interval 3600 seconds
switch(config-te-rsvp)# tunnel myTunnel
switch(config-te-rsvp-tunnel-myTunnel)# optimization disabled
switch# refresh rsvp tunnel optimization all
switch# refresh rsvp tunnel optimization name myTunnel
switch# refresh rsvp tunnel optimization name myTunnel avoid ecmp hop 5.5.5.5
Tunnel Endpoint Aliases
switch(config-te-rsvp-tunnel-myTunnel)# alias endpoint 5.5.5.5
switch(config-te-rsvp-tunnel-myTunnel)# alias endpoint 2001::10
Split-Tunnel
RSVP split-tunnel allows splitting a tunnel's bandwidth across multiple sessions. With this feature enabled, RSVP will automatically create multiple tunnels (referred to as sub-tunnels) with smaller bandwidth reservations for a single tunnel. This is mainly useful if there is currently no single path in the network that can satisfy the total bandwidth requirement of the tunnel, but there are multiple paths with smaller bandwidths that, together, can satisfy the total bandwidth requirement by load balancing traffic across these multiple paths.
Quantum Split-Tunnel
switch(config-te-rsvp-tunnel-myTunnel)# split-tunnel quantum 10 kbps
Adaptive Split-Tunnel
The RSVP adaptive split-tunnel feature allows each sub-tunnel to grow and shrink based on measured bandwidth. Configuring the adaptive split-tunnel feature involves setting min/max values in the split-tunnel configuration. Each sub-tunnel grows and shrinks between these values, as opposed to being of a fixed size in the quantum split tunnel case.
switch(config-te-rsvp-tunnel-myTunnel)# split-tunnel min 1 gbps max 50 gbps
switch(config-te-rsvp-tunnel-myTunnel)# split-tunnel min 1 gbps max 50 gbps reduction-delay 30 minutes
switch(config-te-rsvp-tunnel-myTunnel)# split-tunnel min 1 gbps max 50 gbps reduction-delay 15 seconds
switch(config-te-rsvp-tunnel-myTunnel)# split-tunnel min 1 gbps max 50 gbps reduction-delay 12 hours
Number of Sub-Tunnels
- Minimum: 1 sub-tunnel
- Maximum: 10 sub-tunnels
- Initial: 1 sub-tunnel
Each of these parameters must be in the range 1 to 100, inclusive. The minimum number of sub-tunnels will be created regardless of whether they are strictly needed to meet the requested bandwidth. Even if more sub-tunnels are required to satisfy bandwidth demands, the total number will still be capped at the configured maximum.
When a split-tunnel is first created, it starts with at least the configured initial number of sub-tunnels, and this level is maintained for the first 10 minutes. After that, the number may drop to the configured minimum.
switch(config-te-rsvp-tunnel-myTunnel)# split-tunnel quantum 10 kbps sub-tunnels minimum 2 limit 10 initial 5
switch(config-te-rsvp-tunnel-myTunnel)# split-tunnel min 1 gbps max 50 gbps sub-tunnels minimum 2 limit 10 initial 5
Split-Tunnel and MPLS Tunnel Counters
Depending on the configuration in tunnel-counters mode, traffic through RSVP-TE split-tunnels may be counted against the overall tunnel or the sub-tunnels. Traffic will only be counted for one if they are used in the same hierarchy.
switch(config)# tunnel-counters
switch(config-tunnel-counters)# transmit
switch(config-tunnel-counters-transmit)# source-protocol rsvp ler sub priority 1
switch(config-tunnel-counters-transmit)# source-protocol rsvp ler priority 100
Tunnel Metric
switch(config-te-rsvp-tunnel-myTunnel)# metric 10switch(config-te-rsvp-tunnel-myTunnel)# metric igpPer-tunnel Fast-Reroute Configuration
switch(config-te-rsvp-tunnel-myTunnel)# fast-reroute mode noneNote that this only modifies the type of protection requested by the tunnel. If the global RSVP Fast-Reroute configuration differs, then the protection requested by the tunnel might not actually be created locally. For example, if a tunnel requests node-protection but the global RSVP configuration is only link-protection, then on the headend node, only a link-protection bypass LSP will be created. Other routers along the path may still provide node-protection. Similarly, if the global configuration is set to none, then no protection will be created on the headend node.
Tunnel Profiles
Tunnel profiles contain common sets of configurations to be applied to different tunnel specifications. This helps to simplify the configuration of tunnels by cutting down on repetition of config commands, which also minimizes errors.
Tunnel Profile Configuration
switch(config-te-rsvp)# tunnel profile MyProfile
switch(config-te-rsvp-tunnel-profile-MyProfile)#
switch(config-te-rsvp-tunnel-profile-MyProfile)# bandwidth auto min 100 mbps max 500 mbpsNote that not all of the configurations in the tunnel specification are supported in the tunnel profile. For instance, destination, path, and shutdown cannot be configured in the profile. The supported commands can be seen by running ? in the profile configuration submode, which will display the available commands and the help description for each.
Tunnel Profile Association
switch(config-te-rsvp)# tunnel MyTunnel
switch(config-te-rsvp-tunnel-MyTunnel)# profile MyProfile
In the example above, MyTunnel will inherit the configured values from MyProfile. If MyProfile is configured with bandwidth 500 mbps then the resulting tunnel for MyTunnel will have a bandwidth of 500 Mbps.
switch(config-te-rsvp-tunnel-MyTunnel)# color disabledRemoving a command from the tunnel specification with the no or default keyword will revert to the default behavior of the value being inherited from an associated profile if there is one. If a configuration is not set in the tunnel specification or in an associated profile, then it will be inherited from the global configuration if one exists, or the default configuration will be used.
ECMP Bandwidth Least-fill
switch(config-te-rsvp)# cspf ecmp tie-break randomswitch(config-te-rsvp)# cspf ecmp tie-break least-fillIt serves as a path-selection method to compare multiple potential paths that are otherwise equal (based on SRLG, TE-Metric, number of hops, etc.) by assigning tunnels to paths with the greatest available bandwidth. It does this by calculating the percentage of the link's bandwidth that will be used if the tunnel goes over that link (anticipated utilization percentage) and comparing path candidates beginning with their most heavily used link and proceeding down towards their least heavily used links if these are equal.
When deciding whether to switch from an already established path, it computes the sum of the anticipated utilization percentages of the links on the new path candidate and will only switch if the new path is more than 10% better than the existing path.
Least-fill is not guaranteed to produce optimally distributed paths immediately, particularly after initial bring-up when paths are computed before the IGP has converged. For best results, it is recommended to use the least fill with a re-optimization timer.
LSP Self-Ping
For RSVP-TE tunnels, a headend may begin sending traffic through an LSP as soon as it receives a RESV message, before the forwarding state has been installed on all downstream nodes, which can lead to traffic loss. The LSP self-ping feature verifies end-to-end establishment of the LSP by sending a self-ping message through an LSP before sending regular traffic to verify that all downstream forwarding state has been installed. With the LSP self-ping feature enabled, an LSP created by an RSVP-TE tunnel will only be considered up and ready to carry traffic when a self-ping message successfully returns to the headend.
switch(config-te-rsvp)# lsp self-pingswitch(config-te-rsvp)# cspf ecmp tie-break least-fillA maximum of 5 self-ping messages will be sent in 2-second intervals. If the fifth and final self-ping message does not return after 2 seconds, the LSP will be torn down, and the headend will create a new one.
LSPs that have sent a self-ping message but are waiting for it to return will show a state of establishing (waiting for self-ping) in the output for show traffic-engineering rsvp tunnel lsp. This state is logged in the LSP state history, which can serve as an indicator that self-ping has been performed for an LSP.
Configuring a Tunable RSVP LSP Preservation Time after MBB Failure
The Tunable RSVP LSP Preservation Time after MBB Failure feature allows network administrators to control how long the system maintains an original (old) Label Switched Path (LSP) if a Make-Before-Break (MBB) attempt fails.
MBB is a process in which the headend router establishes a new LSP path before removing the old one. This is done in cases such as when bandwidth changes, the path is re-optimized, or if FRR occurs on a node in the path. For RSVP tunnels using dynamic paths, if CSPF fails to find a new path to the destination, the router must decide how long to keep the old path alive.
By configuring a preservation timer, the duration the old LSP remains in use can be controlled without blackholing traffic. If CSPF is unable to return a path, a longer preservation timer keeps the old path as the active forwarding engine. At the end of the preservation time, the tunnel may go down if no secondary LSP is available. A small value may be desirable for scenarios in which other means to reach the tunnel endpoint are available in the system, whereas a large value may be preferable if a secondary path is configured as a cold standby and needs some time to be established.
switch(config-te-rsvp)# lsp no-path preservation-timer 300 secondsThe timer is disabled using the infinite keyword, which means that the existing LSP is kept up indefinitely. The default is 0 seconds, which means that the existing LSP is taken down immediately if no new path is found
RSVP-TE Tunnels Limitations
- The maximum number of hops in each path is 100.
- The total number of configured tunnels to the same destination IP is limited to 600.
- Auto-bandwidth needs tunnel counters, which are only available when hardware counter feature mpls tunnel is configured.
- Streaming Tunnel and LSP history via TerminAttr is not currently supported.
- LSP ping is currently not supported with split-tunnels.
- Anycast Loopbacks are not supported as destinations or include-hop.
- Secondary Loopbacks as tunnel endpoints are not supported in OSPF.
- When using dynamic paths with IS-IS, only a single IS-IS instance is supported.
