RSVP-TE LER
RSVP-TE, the Resource Reservation Protocol (RSVP) for Traffic Engineering (TE), is used to distribute MPLS labels for steering traffic and reserving bandwidth. The Label Edge Router (LER) feature implements the headend functionality, such as, RSVP-TE tunnels can originate at an LER which is used to steer traffic into the tunnel.
To Configure RSVP-TE LER
To configure RSVP-TE LER, use thetraffic-engineering mode to configure the rsvp command.
switch(config)# router traffic-engineering
switch(config-te)# rsvp
switch(config-te-rsvp)
In the RSVP-TE submode, the configuration has three components.
- Global configuration
- Path specifications
- Tunnel specifications
Global Configuration
In global configuration, all settings apply to all configured tunnels. Path specifications describe a set of constraints for paths. These are referenced from tunnel specifications to describe which path each tunnel can take.
Path Specifications
Path specifications are explicit and dynamic which differ in whether they involve 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 is only either explicit or dynamic, such as, they share a namespace.
Explicit Path Specifications
In an explicit path specification, the operator provides all hops in the path explicitly. 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.
Example
switch(config-te-rsvp)# path MyPath explicit
switch(config-te-rsvp-path-expl-MyPath)#
To explicitly specify the order of each hop, use the RSVP-TE explicit path configuration mode. In this example, hop 10.0.12.2. then hop 10.0.34.4 is specied.
switch(config-te-rsvp-path-expl-MyPath)# hop 10.0.12.2
switch(config-te-rsvp-path-expl-MyPath)# hop 10.0.34.4
Adding hops with before and after keywords creates a unique internal ordering which will be represented in a canonical form using neither before nor after in the show running-config.
Example
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
When it is no longer necessary to have a hop order use the no hop command.
Example
switch(config-te-rsvp-path-expl-MyPath)# no hop 10.0.12.2
Theshow active command explains what is currently happening with the configuration
Example
switch(config-te-rsvp-path-expl-MyPath)# show active
router traffic-engineering
rsvp
path MyPath explicit
hop 10.0.23.3
hop 10.0.34.4
hop 10.0.45.5
The show pending command explains what happens when exiting the submode.
Example
The pending configuration that becomes active upon exiting the submode is retrieved with the show pending command.
switch(config-te-rsvp-path-expl-MyPath)# show pending
hop 10.0.23.3
hop 10.0.44.4
hop 10.0.45.5
Theshow diff command displays the differences between the show active and show pending commands.
Example
switch(config-te-rsvp-path-expl-MyPath)# show diff
hop 10.0.23.3
-hop 10.0.34.4
+hop 10.0.44.4
hop 10.0.45.5
switch(config-te-rsvp-path-expl-MyPath)#
When you want to keep all your saved changes, use the exit command.
Example
switch(config-te-rsvp-path-expl-MyPath)# exit
switch(config-te-rsvp)#
when you do not want to save any changes, use the abort command.
Example
switch(config-te-rsvp-path-expl-MyPath)# abort
switch(config-te-rsvp)#
Dynamic Path Specifications
In a dynamic path specification, the operator provides constraints with which a Constained Shortest Path First (CSPF) procedure finds a path in the network topology. Effectively, the path specification serves as a template to get instantiated together with other tunnel constraints (like bandwidth requirements). The CSPF result is a list of strict hops which form the ERO.
Example
switch(config-te-rsvp)# path MyPath dynamic
switch(config-te-rsvp-path-dyn-MyPath)#
Exclude hop constraints specifies that CSPF must not choose the selected address on the path. Each excluding hops expresses that neither end of a link in the path may have the specified address. Note that other interfaces on the same node may be used.
Example
switch(config-te-rsvp-path-dyn-MyPath)# hop 10.0.56.6 exclude
Include hop constraints are supported and specify that these hops have to be included in the computed path in a certain order. By default, a hop is strict, meaning that in the computed path it has to appear directly after the previously specified hop. when a hop is loose it allows other hops to be filled by the CSPF procedure. The keywords before and after work as in the submode for explicit paths.
Example
In the following example hop 10.0.23.3 must be included in the path.
switch(config-te-rsvp-path-dyn-MyPath)# hop 10.0.23.3
In the following example hop 10.0.45.5 loose shows the hop does not have to be in any paticular order.
switch(config-te-rsvp-path-dyn-MyPath)# hop 10.0.45.5 loose
The following example shows hop 10.0.12.2 comes before 10.0.23.3.
switch(config-te-rsvp-path-dyn-MyPath)# hop 10.0.12.2 before 10.0.23.3
switch(config-te-rsvp-path-dyn-MyPath)# hop 10.0.67.7 loose after 10.0.45.5
Administrative group constraints are specified to restrict CSPF path computation 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. In particular, 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 31. On the wire, the admin-group of 0 is translated to 0x1, 1 is translated to 0x2.
Example
switch(config-te-rsvp-path-dyn-MyPath)# administrative-group include all 1 include any 2-4 exclude 7,9
Administrative group constraints are specified using a name as an alias mapped to a numerical value. The mapping is configured under the global TE mode.
These names are directly used to configure administrative group constraints in addition to the existing numerical format. The admin group constraints for the dynamic path are configured using the following RSVP LER CLI.
Example
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 is provided as a comma-separated input without spaces.
The submode for dynamic paths has the same commit/abort semantics and show commands as the submode for explicit paths.
Local Interface
Use the local-interface Loopback command to derive the source IP address for RSVP-TE tunnels. This is a mandatory setting.
switch(config-te-rsvp)# local-interface Loopback 0
A few settings are taken from the global mpls rsvp configuration like Fast-Reroute (FRR) mode and soft preemption. The SRLG setting from the global mpls rsvp configuration is also used to specify if the secondary path of a tunnel is set up by excluding SRLGs of all the links in the primary path as additional constraints, therefore allowing the secondary path to be disjoint from the primary path.
Tunnel Specifications
A tunnel needs a specification of which tunnel to go to.
Example
switch(config-te-rsvp)# tunnel MyTunnel
switch(config-te-rsvp-tunnel-MyTunnel)#
Basic Tunnel Configuration
Each tunnel must have a tunnel destination IP.
Example
switch(config-te-rsvp-tunnel-MyTunnel)# destination ip 10.2.2.2
Adding Path Specifications
A tunnel needs to specify along the path in which its LSPs are established. Therefore, a path specification is referenced by its name and configures the primary LSP.
Example
switch(config-te-rsvp-tunnel-MyTunnel)# path MyPath
A secondary LSP is specified which provides a fallback in case the primary LSP is not available. The secondary LSP is either established on-demand cold standby once the primary is not available or pre-signaled hot standby regardless. Configuring a secondary path is optional.
Example
switch(config-te-rsvp-tunnel-MyTunnel)# path MyOtherPath secondary pre-signaled
Only one secondary path can be configured, per tunnel.
Bandwidth Specification
Use the bandwidth command to reserve bandwidth along the path. The bandwidth isexplicitly configured.
Example
switch(config-te-rsvp-tunnel-myTunnel)# bandwidth 10 mbps
Available units are bps, kbps, mbps, and gbps. By default, no bandwidth reservation is signaled, such as a bandwidth of0 bps.
An alternative to explicit bandwidth configuration is to use the autobandwidth feature which specifies the minimum and maximum bandwidth to be used for the tunnel and otherwise adjusts bandwidth with an adjustment period based on the observed traffic going over the tunnel. The adjustment period is an optional parameter measured in seconds. The default adjustment period is 0 . A special value meaning that the algorithm decides when to adjust bandwidth based on statistical measurements (the actual adjustment cannot happen more frequently than the sampling, which occurs every 30 seconds).
Example
switch(config-te-rsvp-tunnel-myTunnel)# bandwidth auto min 1 mbps max 5 mbps adjustment-period 60
The adjustment period is specified in seconds.
Tunnel Priorities
Setup and hold priorities from 0 to 7 are configured for the tunnel, where 0 means most preferred, and 7 means least preferred.
Example
switch(config-te-rsvp-tunnel-myTunnel)# priority setup 5 hold 3
The CLI does not impose restrictions on the priority values. Therefore, hold priority should be more preferred than setup priority to avoid cycles where an LSP is continuously established and immediately preempted.
Enabling The Tunnel
By default, a tunnel is not enabled, so it needs to be explicitly enabled.
Example
switch(config-te-rsvp-tunnel-MyTunnel)# no shutdown
As for path specifications, the submode provides show active, show pending and show diff commands. It has abort/commit semantics.
When you want to keep all your saved changes, use the exit command.
Example
switch(config-te-rsvp-tunnel-MyTunnel)# exit
switch(config-te-rsvp)#
when you do not want to save any changes, use the abort command.
Example
switch(config-te-rsvp-tunnel-MyTunnel)# abort
switch(config-te-rsvp)#