Enable the dedicated RSVP-TE Tunnel configuration mode by entering the
router
traffic-engineering command to enter the router traffic-engineering mode
and then the
rsvp command to enter the RSVP sub-mode.
switch# config
switch(config)# router traffic-engineering
switch(config-te)# rsvp
switch(config-te-rsvp)#
In this submode, the configuration has several components for P2P tunnels:
- 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
A local interface is used to derive the source IP address for RSVP-TE tunnels. If
this is not configured, then a loopback interface is picked automatically. Note that
the configured local interface must have an IP
address.
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.
The submode to configure explicit paths is entered by specifying the name and the
explicit keyword.
switch(config-te-rsvp)# path MyPath explicit
switch(config-te-rsvp-path-expl-MyPath)#
Each hop is specified explicitly in order.
switch(config-te-rsvp-path-expl-MyPath)# hop 10.0.12.2
switch(config-te-rsvp-path-expl-MyPath)# hop 10.0.34.4
The keywords
before and
after allow the insertion of new hops in an
existing path by indicating the relative position. This unique internal ordering
will be displayed when using the
show running-config command.
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
A hop can be removed using the keyword
no hop.
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).
The submode to configure dynamic paths is entered by specifying the name and the
dynamic keyword. The submode has the same commit/abort semantics and show
commands as the submode for explicit paths.
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.
Note:Other interfaces on the same node may be used.
switch(config-te-rsvp-path-dyn-MyPath)# hop 10.0.56.6 exclude
Include hop constraints specify hops that have to be included in the computed path in
a certain order. By default, a hop is strict, meaning that it has to appear directly
after the previously specified hop. Strict include hops can be configured just with
the
hop keyword.
switch(config-te-rsvp-path-dyn-MyPath)# hop 10.0.56.6
Alternatively, an include hop can be loose, allowing other hops to be filled by the
CSPF procedure to reach it from the previously defined hop (or the ingress if the
loose hop is the first include hop). The destination of a tunnel is always treated
as a loose hop at the end of a path. Loose include hops can be configured with the
loose keyword.
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.
Administrative group constraints can be specified to restrict CSPF paths to links
that match a set of admin groups. Their IDs are globally significant, and the
specification contains lists and ranges of admin groups to include or exclude. Every
chosen link for a dynamic path must be in all of the admin groups specified in the
include all range, must be in one of the admin groups specified in the
include any range, and must not be in any of those in the
exclude
range. The admin group range starts at 0 and ends at 511. Administrative group
constraints can be configured with the
administrative-group keyword.
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.
These names can be used directly to configure administrative group constraints, in
addition to the numerical format. The list of administrative groups should be
comma-separated, with no spaces.
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
To configure a tunnel, enter the tunnel specification submode with the tunnel keyword
followed by the name of the
tunnel.
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
Each tunnel must have a destination IP address. 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-tunnel-MyTunnel)# destination ip 10.2.2.2
By default, a tunnel is not enabled, so it needs to be enabled
explicitly.
switch(config-te-rsvp-tunnel-myTunnel)# no shutdown
Adding Path Specifications
A tunnel must specify the path along which its LSPs should be established. For this,
a path specification is referenced by name, which configures the primary LSP.
switch(config-te-rsvp-tunnel-myTunnel)# path MyPath
A 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.
Note: Only one secondary path can be configured per tunnel.
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
A tunnel can be used to reserve bandwidth along the path with an explicit
configuration. Available units are bps, kbps, mbps, gbps, and tbps. By default, no
bandwidth reservation is signaled.
switch(config-te-rsvp-tunnel-myTunnel)# bandwidth 10 mbps
An alternative to explicit bandwidth configuration is to use the auto command, which
specifies the minimum and maximum bandwidth for the tunnel and adjusts the bandwidth
with an adjustment period based on observed traffic over the tunnel. The adjustment
period is an optional parameter measured in seconds. The default adjustment period
is 0, a special value indicating that the algorithm decides when to adjust the
bandwidth based on statistical measurements (the actual adjustment cannot occur more
frequently than the sampling interval, which occurs every 30 seconds).
switch(config-te-rsvp-tunnel-myTunnel)# bandwidth auto min 1 mbps max 5 mbps adjustment-period 60
The sensitivity of the auto bandwidth algorithm can also be configured. Sensitivity
is either an integer from 1 to 10 or a dynamic keyword. The number reflects how
sensitive automatic bandwidth adjustment is to changes in bandwidth. 1 means “least
sensitive”, that is, the algorithm will be most reluctant to adjust bandwidth when
the flow rate changes - only when the flow rate change lasts long, the algorithm
will initiate resignalling with a new bandwidth. 10 means “most sensitive” - the
algorithm is more eager to react to flow rate changes and re-signal bandwidth
reservation.
switch(config-te-rsvp-tunnel-myTunnel)# bandwidth auto min 1 kbps max 1 gbps sensitivity 9
Tunnel priorities
Setup and hold priorities from 0 to 7 can be configured for the tunnel, with 0
meaning most preferred and 7 least preferred.
Note: The hold priority should have a lower value (i.e., more
preferred) than the setup priority to avoid cycles in which an LSP is
continuously established and immediately preempted.
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.
Note: This color attribute is strictly a local attribute.
switch(config-te-rsvp-tunnel-myTunnel)# color 60
Tunnel Participation in IGP Shortcuts and LDP over RSVP
The
igp shortcut command can be used to specify whether an RSVP
tunnel should participate in IGP
shortcuts.
switch(config-te-rsvp-tunnel-myTunnel)# igp shortcut
LDP traffic can be tunneled through RSVP-TE tunnels by enabling the
tunneling ldp command.
switch(config-te-rsvp-tunnel-myTunnel)# tunneling ldp
UCMP with LDP over RSVP can be configured using the tunneling ldp ucmp command.
switch(config-te-rsvp-tunnel-myTunnel)# tunneling ldp ucmp
Tunnel 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.
Periodic tunnel optimization can be configured globally or individually for a
specific tunnel. For global periodic tunnel optimization, the optimization interval
is configured in
config-te-rsvp mode.
switch(config-te-rsvp)# optimization interval 3600 seconds
The optimization interval can also be individually configured on a tunnel by entering
the command in tunnel sub-mode. The optimization interval configured in the tunnel
sub-mode overrides the optimization interval configured globally.
switch(config-te-rsvp)# tunnel myTunnel
switch(config-te-rsvp-tunnel-myTunnel)# optimization interval 3600 seconds
Optimization can also be disabled on a specific tunnel. If optimization needs to be
enabled for all the tunnels with a common interval, but disabled on a specific
tunnel, the disabled keyword can be used.
switch(config-te-rsvp)# tunnel myTunnel
switch(config-te-rsvp-tunnel-myTunnel)# optimization disabled
Tunnels can be optimized on demand without adding any configuration. This on-demand
optimization can either be performed on a specific tunnel or on all the tunnels.
This is done by executing the following commands.
switch# refresh rsvp tunnel optimization all
switch# refresh rsvp tunnel optimization name myTunnel
On-demand optimization can also be used to move a tunnel between different equal-cost
options. A set of links can be passed to CSPF to avoid while finding another
equal-cost path. This operation works only on equal-cost paths and will not switch
the tunnel to a less optimal path. If there’s a massive imbalance of tunnels,
rebalancing them would require firing this command multiple times. Note that this
command does nothing if least-fill is enabled.
switch# refresh rsvp tunnel optimization name myTunnel avoid ecmp hop 5.5.5.5
Tunnel Endpoint Aliases
Configuring alias IPv4 and IPv6 endpoints allows these additional next hops to be
resolved using the existing tunnel. Up to 15 alias endpoints can be configured per
tunnel.
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
Quantum split-tunnel allows a user to configure a constant bandwidth (referred to as
quantum) for which each sub-tunnel will be created, until the overall
bandwidth requirement is reached or the sub-tunnel limit is hit. In the following
example, the quantum is set to 10 kbps, meaning each sub-tunnel will have a
bandwidth requirement of 10 kbps.
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.
Note: Adaptive split-tunnels cannot be configured with
explicit fixed bandwidth configuration, and instead, auto-bandwidth must be
used.
switch(config-te-rsvp-tunnel-myTunnel)# split-tunnel min 1 gbps max 50 gbps
If bandwidth has reduced enough that it could be satisfied by fewer sub-tunnels than
what currently exists, sub-tunnels are not deleted immediately. There is a delay
after which these extra sub-tunnels get removed. The
reduction-delay command is configurable and defaults to 1 hour.
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
Users can optionally configure the minimum, maximum, and initial number of
sub-tunnels to be created as part of a split-tunnel. If these values are not
provided, the system defaults to:
- 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.
These parameters can be configured for both quantum and adaptive split-tunnels, as
illustrated below:
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.
When using auto-bandwidth, it is important to prioritize counting traffic against the
sub-tunnels over the overall tunnel. If this is not done, then auto-bandwidth will
not function correctly for RSVP-TE split tunnels. In the following example, RSVP
sub-tunnels are given a priority for counting over overall tunnels (a smaller number
means higher priority):
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
The tunnel metric feature configures a per-RSVP tunnel metric so that specific
tunnels to a Tunnel End Point (TEP) can take precedence over other tunnels to the
same TEP when forming ECMP. The tunnel metric is published in the tunnel RIB, so it
can also be used in BGP cost calculations.
switch(config-te-rsvp-tunnel-myTunnel)# metric 10
A dynamic metric mode that follows the IGP metric is also available. Note that the
dynamic IGP metric requires IS-IS as the underlying IGP protocol.
switch(config-te-rsvp-tunnel-myTunnel)# metric igp
Per-tunnel Fast-Reroute Configuration
By default, RSVP tunnels’ fast-reroute options are inherited from the global RSVP
configuration. If tunnels need options different from the global one, per-tunnel FRR
configuration can be set with the
fast-reroute mode command. The
options for this are the same as those for the
fast-reroute mode
configuration in the
mpls rsvp mode. For example, if FRR should
be explicitly disabled for a tunnel, use the following command.
switch(config-te-rsvp-tunnel-myTunnel)# fast-reroute mode none
Note 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
Tunnel profiles are configured in their own submode, similar to tunnel
specifications, using the tunnel profile keywords followed by the profile name.
switch(config-te-rsvp)# tunnel profile MyProfile
switch(config-te-rsvp-tunnel-profile-MyProfile)#
Configuration within the tunnel profile is done using the same syntax as commands in
the tunnel specification. For example, if creating a profile with a common bandwidth
configuration, it can be set the same way as in the tunnel specification:
switch(config-te-rsvp-tunnel-profile-MyProfile)# bandwidth auto min 100 mbps max 500 mbps
Note 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
Tunnel profiles can be associated with tunnel specifications using the profile
configuration under the tunnel specification submode.
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.
If a profile is desired for some configuration but not all, values inherited from an
associated profile can be overridden by explicitly configuring the value in the
tunnel specification. For instance, if an associated profile configures
bandwidth 500 mbps but the tunnel specification has
bandwidth 200 mbps explicitly configured, then the resulting
tunnel will have a bandwidth of 200 mbps. If we want a tunnel to have no bandwidth
but also use an associated profile that configures some other value for it, then
bandwidth 0 mbps can be set in the tunnel specification. In
configurations where there is no numerical default, such as color, the
disabled keyword can be used in the tunnel specification to explicitly
turn off the feature, overriding any value that would otherwise be inherited from an
associated profile.
switch(config-te-rsvp-tunnel-MyTunnel)# color disabled
Removing 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
Bandwidth least-fill is switched on by default. It can be disabled under
config-te-rsvp by setting the tie-break mode to random.
switch(config-te-rsvp)# cspf ecmp tie-break random
Least-fill is turned on again by setting the mode to
least-fill.
switch(config-te-rsvp)# cspf ecmp tie-break least-fill
It 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.
The
lsp self-ping configuration enables the LSP self-ping feature.
When enabled, all new LSPs created by RSVP-TE tunnels will perform self-ping.
switch(config-te-rsvp)# lsp self-ping
Least-fill is turned on again by setting the mode to least-fill.
switch(config-te-rsvp)# cspf ecmp tie-break least-fill
A 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.
In the following example, the Preservation Timer is configured to 300 seconds:
switch(config-te-rsvp)# lsp no-path preservation-timer 300 seconds
The 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.