SYSTEM ADMINISTRATOR GUIDE     45/1543-CRA 119 1170/1-V1 Uen C    

Configuring LDP

© Ericsson AB 2009–2010. All rights reserved. No part of this document may be reproduced in any form without the written permission of the copyright owner.

Disclaimer

The contents of this document are subject to revision without notice due to continued progress in methodology, design and manufacturing. Ericsson shall have no liability for any error or damage of any kind resulting from the use of this document.

Trademark List

SmartEdge is a registered trademark of Telefonaktiebolaget LM Ericsson.
NetOp is a trademark of Telefonaktiebolaget LM Ericsson.

Contents

1Overview
1.1LDP Implementation
1.2LDP Neighbor Discovery
1.3LDP Hello Messages
1.4LDP over RSVP

2

Configuration and Operations Tasks
2.1Configuring an LDP Routing Instance
2.2Configuring the Hello Adjacency Holdtime (Optional)
2.3Configuring the Hello Message Interval
2.4LDP Operations

3

Configuration Examples
3.1Basic LDP
3.2Targeted LDP
3.3LDP over RSVP


1   Overview

This document provides an overview of the Label Distribution Protocol (LDP) and describes the tasks and commands used to configure, monitor, troubleshoot, and administer LDP features through the SmartEdge® router.

1.1   LDP Implementation

The SmartEdge router implementation of LDP supports RFC 3036, LDP Specification. LDP enables dynamic label allocation and distribution in a Multiprotocol Label Switching (MPLS) network. A label-switched router (LSR) enabled with LDP can establish label-switched paths (LSPs) to other LSRs in the network. LDP creates label bindings by assigning labels to connected routers and by advertising the bindings to neighbors. LDP also assigns labels to label bindings learned from neighbors, and readvertises the binding to other neighbors. When an LSR advertises a label binding for a route, the LSR is advertising the availability of an LSP to the destination of that route. LDP can learn several LSPs from different neighbors for the same route. In this case, LDP activates only the path selected by the underlying Interior Gateway Protocol (IGP). For this reason, LDP must work together with an IGP, such as the Intermediate System-to-Intermediate System (IS-IS) or Open Shortest Path First (OSPF) protocol.

To discover LDP peers, an LSR periodically transmits LDP Hello messages. After two LDP peers discover each other in this manner, LDP establishes a Transmission Control Protocol (TCP) connection between them. When the TCP connection is complete, an LDP session is established. In our implementation, the LDP router ID is used as the transport address.

During the LDP session, LSRs send LDP label mapping and withdrawal messages. LSRs allocate labels to directly connected interfaces and learn about labels from neighbors. If a directly connected interface is shut down, an LSR withdraws the label and stops advertising it to neighbors. If a neighbor stops advertising a label to an LSR, the label is withdrawn from that LSR’s Label Forwarding Information Base (LFIB). Teardown of LDP adjacencies or sessions results if Hello or keepalive messages are not received within the timer interval.

Be aware that the SmartEdge router supports a maximum of 1,200 targeted LDP sessions or a combination of up to 50 nontargeted sessions and 1,150 targeted sessions. Use the max-session command to configure the maximum number of LDP sessions supported on the router.

Note:  
LDP configuration is supported in the local context only.

1.2   LDP Neighbor Discovery

There are two types of LDP neighbor discovery mechanisms: basic LDP discovery and extended LDP discovery. Basic LDP discovery is used to discover immediate neighbors; extended LDP discovery is used to discover neighbors that can be multiple hops away.

1.3   LDP Hello Messages

There are two types of LDP Hello messages: link Hello messages and targeted Hello messages. Link Hello messages are multicast on an interface to immediate neighbors. Link Hello messages are used in basic LDP discovery. Targeted Hello messages are unicast directly to remote neighbors. Targeted Hello messages are used in extended LDP discovery. Two LDP speaking LSRs can form LDP adjacencies after discovering each other. LDP adjacencies discovered by link Hello are link Hello adjacencies. LDP adjacencies discovered by targeted Hello are targeted Hello adjacencies.

1.4   LDP over RSVP

The LDP over Resource Reservation Protocol (RSVP) feature enables RSVP LSPs to carry LDP control and data traffic. An RSVP LSP for carrying the LDP traffic must be set up between LDP LSRs, a single-hop LSP, and configured to serve as IGP shortcuts to nodes in the network so that it carries IP traffic between the ingress and egress RSVP LSRs. If the RSVP LSP is configured with next-hop fast reroute (NFRR) for link protection, then the LDP traffic can also be carried over a bypass RSVP LSP and be protected against link failures between LSRs.

Figure 1 shows an example in which an LDP LSP tunnels over an RSVP LSP from LSR A to LSR B and in the event of a link failure, the LDP LSP tunnels over a bypass RSVP to LSR B.

Figure 1   Typical LDP over RSVP Network Topology

2   Configuration and Operations Tasks

Note:  
In this section, the command syntax in the task tables displays only the root command.

For the context in which you configure LDP, you must also:

To ensure that the LDP router ID is always reachable, we recommend that you also configure a loopback interface that is advertised by the IGP, such as OSPF or IS-IS, routing instance.

Note:  
To configure an IGP routing instance and interface, such as IS-IS or OSPF, see either Configuring IS-IS or Configuring OSPF. To configure MPLS, see Configuring MPLS.

To configure LDP, perform the tasks described in the sections that follow.

2.1   Configuring an LDP Routing Instance

This section provides instructions for configuring an LDP routing instance.

Note:  
You must have an IGP (such as IS-IS) configured on your router before you can configure LDP.

To configure an LDP routing instance, perform the tasks described in Table 1. Enter all commands in LDP router configuration mode, unless otherwise noted.

Note:  
LDP configuration is supported in the local context only.

Table 1    Configure an LDP Routing Instance

Task

Root Command

Notes

Enable an LDP routing instance for a context, and to access LDP router configuration mode.

router ldp

Enter this command in context configuration mode.


For LDP to work properly, LDP must work together with an Interior Gateway Protocol (IGP), such as OSPF, IS-IS, RIP, or static routing. Enable LDP in the same context in which the underlying IGP is configured.


For LDP to be able to establish sessions, the LDP transport address of an LDP instance must be reachable. It is recommended that you configure a loopback interface whose address is advertised by the underlying IGP.

Enable the creation of LDP LSP pseudo-circuits.

create-lsp-circuit

Before packet statistics for LDP LSPs can be collected, LDP LSP pseudo-circuits must first be created.

Enable equal cost multipath (ECMP) on LSP transit nodes.

ecmp-transit

A constituent of an ECMP LSP can be protected against link failure at the label edge router (LER) using next-hop fast reroute (NFRR) for link protection when the LDP traffic is carried over a bypass RSVP LSP.


Currently, ECMP over multiple bypass LSPs is not supported.

Enable an egress router to advertise an explicit null label (value 0), in place of an implicit null label (value 3), to the penultimate hop router.

explicit-null (LDP)

By default, LDP advertises an implicit null label for directly connected prefixes. An implicit null label causes the upstream router to perform penultimate hop popping (PHP), and the implicit null label is not transmitted on the last hop. In some cases, such as QoS enforcement, you may not want PHP. In those cases, you can use the explicit-null command to cause a router to advertise an explicit null label in place of an implicit null label for directly connected prefixes, which forces the upstream router to transmit packets with an explicit null label on the last hop. When an explicit-null command is specified for a particular neighbor, an if a context level explicit-null command has been configured, then the context level explicit-null command does not apply to the neighbor.

Enable an LSR to restart an LDP component while preserving its MPLS forwarding state during restart.

graceful-restart (LDP)

Use the no form of this command to disable graceful restart.


After an LSR restarts its control plane, it starts an internal recovery timer and continues to forward traffic using the preserved MPLS forwarding state entries. Before the recovery timer expires, the LSR creates local label bindings by following the normal LDP procedure. When the recovery timer expires, the MPLS forwarding entries that are not refreshed from the LDP peer are deleted and the refreshed ones are preserved without any disruption to the forwarding path.

Enable the creation of pseudo-circuits for the LDP LSPs, and configure the maximum number of LDP sessions allowed on the router.

max-session

Use the no form of this command to disable the creation of pseudo-circuits for the LDP LSPs.


Use the default form of this command to return the maximum number of LDP sessions to the default of 1200 sessions.

Enable LDP on an interface so that it can be used to exchange Hello messages with neighbors and to establish an LSP.

interface (LDP)

You must also enable MPLS on the interface for the LSP to be established properly. You may also need to enable an IGP, such IS-IS or OSPF, on the interface.

Apply an IP prefix list to filter LDP label advertisements.

label-binding

A typical filtering application is to apply a prefix list that restricts LDP to advertise labels for only loopback interface IP addresses. Limiting LDP label advertisements to loopback interfaces provides fast and reliable transportation of label binding information, and streamlines the efforts to build LSPs.

Assign an encrypted MD5 password to an LDP neighbor.

neighbor password

For an LDP session to be established, the MD5 password must be the same on both the router and its neighbor.

Configure a remote LDP neighbor and enable extended LDP discovery of the specified neighbor.

neighbor targeted

LDP targeted neighbor discovery is required for L2VPN support if the PE routers are not directly connected. Using the targeted discovery mechanism, the PE routers establish an LDP session using an extended discovery mechanism where they do not have to be directly connected (as is required in hop-by-hop neighbors). LDP is used to distribute L2VPN labels to the remote router.


LDP is used for distributing the VC labels across the path from the egress PE router to the ingress PE router. The VC label bindings are distributed using LDP downstream unsolicited mode. The PE routers establish an LDP session using an extended discovery mechanism where they do not have to be directly connected (as required in hop-by-hop neighbors). A new FEC type element is used for targeted discovery. A single VC forwarding equivalence class (FEC) element must be advertised per VC label.


For distributing L2VPN labels, targeted LDP implementation supports the following features:


  • LDP downstream Unsolicited Mode

  • LDP request operation implemented in LDP

  • VC labels allocated from per platform label space

Configure the interface to be used as the LDP router ID.

router-id (LDP)

Because the router ID is used as the transport IP address for establishing a TCP connection, changing the router ID causes an active LDP session to be torn down, and then reestablished. Take care not to change the router ID when an LDP session is active.


By default, the SmartEdge router determines the LDP router ID in the following sequence:


  • If a fixed LDP router ID configured through the router-id command in LDP configuration mode, it is used.

  • If neither router ID is configured, the configured loopback interface with the highest IP address is used as the LDP router ID.

  • If a loopback interface is not configured, the operational interface with the highest IP address is used as the LDP router ID.

Enable LDP LSPs to inherit the Intermediate System-to-Intermediate System (IS-IS) routing metric for Border Gateway Protocol (BGP) to use when selecting a path.

multi-paths

Optional. Set the maximum number of seconds LDP waits before notifying OSPF that label exchange is complete.

ldp-igp-synchronization timeout seconds

Use this command if you are configuring LDP-IGP synchronization with OSPF.


Be aware that for LDP-IGP synchronization with OSPF to work, you must enable LDP-IGP synchronization on the OSPF router, or on a specific interface, as described in Configuring OSPF.

Configure the transport address advertised in LDP Hello messages.

transport address

Transport addresses are advertised in LDP Hello messages and are exchanged among LDP neighbors. LDP uses the local transport address as the source, and the received transport address as the destination when trying to establish a TCP connection to a neighbor. Therefore, transport addresses must be reachable. LDP also uses transport addresses to determine which of the two LSRs should perform active open.


If a transport address is not explicitly configured, the LSR router ID is used as the transport address. In this case, the router ID must be reachable; however, if a transport address is explicitly configured, then the specified value is used. In this case, the router ID is not required to be reachable.

Enable LDP over RSVP.

use-te-lsp

When LDP over RSVP is enabled, the LDP LSP setup queries for any available RSVP LSPs to the LDP next hop LSR. If an RSVP LSP is available, the LSP route on an ingress LSR or the label forwarding table on an intermediate node, is set up to tunnel the LDP LSP on the RSVP LSP.


For LDP over LSP to work, the following configurations must be enabled:


  • The RSVP LSPs must be configured to serve as IGP shortcuts to nodes in a network.

  • Explicit routes must be assigned to the primary and bypass RSVP LSPs so that they are not dependent on the routes configured by the routing protocols used to establish the LSP.

  • The remote LDP neighbors must be configured, and extended LDP discovery of the specified neighbor must be enabled.

  • The IP address specified for the LDP neighbor and RSVP LSP egress label-switched router (LSR) must be the same.


Next-hop fast reroute (NFRR) is not required for LDP over RSVP to work. However, if you want to use the RSVP LSPs to provide NFRR for link protection for the LDP traffic, you must configure bypass RSVP LSPs.

Configure the Hello adjacency holdtime (optional).

For the complete list of tasks used to configure the Hello adjacency holdtime, see Configuring the Hello Adjacency Holdtime (Optional).

Configure the Hello message interval.

For the complete list of tasks used to configure the Hello message interval, see Configuring the Hello Message Interval.

2.2   Configuring the Hello Adjacency Holdtime (Optional)

To configure the Hello adjacency holdtime, perform the tasks described in Table 2. Enter all commands in LDP router configuration mode.

Table 2    Configure the Hello Adjacency Holdtime

Task

Root Command

Notes

Configure the time for which an LDP link Hello adjacency is maintained in the absence of link Hello messages from the LDP neighbor.

hello holdtime

LDP neighbors periodically exchange Hello messages to maintain their adjacencies. The Hello holdtime determines the time after which, if LDP messages from the LDP neighbor are not received, the LDP hello adjacency is deleted. When the last LDP adjacency to a LDP neighbor is deleted, the LDP session to that LDP neighbor is torn down.


For LDP neighbors to negotiate a Hello holdtime, each LDP neighbor includes a proposed Hello holdtime in their transmitted Hello message. The negotiated Hello holdtime used between the two neighbors is the lesser of the two proposed values.


The locally configured link Hello holdtime as specified in hello holdtime command is included in the link Hello messages sent to immediate LDP neighbors. The negotiated holdtime used to timeout a link Hello adjacency is the lesser of the time value specified in the hello holdtime command and the hello holdtime received in link hello messages from the LDP neighbor of the adjacency.


The default link Hello adjacency holdtime is 15 seconds.

     

Configure the time for which LDP targeted Hello adjacency is maintained in the absence of targeted Hello messages from an LDP neighbor.

targeted-hello holdtime

If LDP targeted Hello messages from an LDP neighbor are not received after the specified Hello holdtime, the LDP adjacency is deleted. If this is the last adjacency between the local LDP instance and an LDP neighbor, the LDP session to that LDP neighbor is torn down.


The locally configured targeted Hello holdtime as specified by the targeted-hello holdtime command is included in the targeted Hello messages sent to remote LDP neighbors. The negotiated holdtime used to timeout a targeted Hello adjacency is the minimum of the time value specified by the targeted-hello holdtime command and the Hello holdtime received in targeted Hello messages from the LDP neighbor of the adjacency.

2.3   Configuring the Hello Message Interval

To configure the Hello message interval, perform the tasks described in Table 3. Enter all commands in LDP router configuration mode.

Table 3    Configure the Hello Message Interval

Task

Root Command

Notes

Configure the interval between consecutive LDP link Hello messages used in basic LDP discovery.

hello interval (LDP)

If the Hello interval is explicitly configured, then the specified value is used to control the link Hello interval regardless of the link Hello holdtime; however, if the Hello interval is not explicitly configured, the Hello interval used is the negotiated LDP link Hello holdtime divided by three. The negotiated LDP link Hello holdtime is the lesser of the received LDP link Hello holdtime and the locally configured LDP link Hello holdtime.

Configure the interval between consecutive LDP targeted Hello messages used in extended LDP discovery.

targeted-hello interval

If the targeted Hello interval is explicitly configured, then the specified value is used to control targeted Hello interval regardless of the targeted Hello holdtime; however, if the targeted Hello interval is not explicitly configured, the targeted Hello interval used is the negotiated LDP targeted Hello holdtime divided by three. The negotiated LDP targeted Hello holdtime is the lesser of the received LDP targeted Hello holdtime and the locally configured LDP targeted Hello holdtime.

2.4   LDP Operations

To manage LDP functions, perform the appropriate tasks described in Table 4. Enter the show commands in any mode; enter the debug commands in exec mode.

Table 4    LDP Operations Tasks

Task

Root Command

Enable the generation of debug messages for all LDP events.

debug ldp all

Limit the generation of LDP debug messages to specific interfaces, neighbor IP addresses, or IP prefixes.

debug ldp filter

Enable the generation of debug messages for LDP messages.

debug ldp message

Enable the generation of debug messages for LDP protocol interaction.

debug ldp protocol

Display the LDP commands that are configured in the current context.

show configuration ldp

Display LDP interface IP address to label-switched router (LSR) ID mappings.

show ldp address

Display LDP label binding information.

show ldp binding

Display any filters that may be currently enabled to control the generation of LDP debug messages.

show ldp debug-filter

Display LDP interface information.

show ldp interface

Display LDP neighbor information.

show ldp neighbor

Display a summary of LDP information.

show ldp summary

3   Configuration Examples

The following sections provide examples of LDP configuration.

3.1   Basic LDP

The following example configures an IS-IS backbone network between two SmartEdge routers. Each has an IS-IS, MPLS, and LDP routing instance and a single interface (the backbone between the two routers) enabled for IS-IS, MPLS, and LDP. Each router has an IS-IS loopback interface that is used as the LDP router ID. A filter restricts LDP to advertise labels for only loopback interface IP addresses.

The configuration for LSR-A is as follows:

[local]LSR-A(config)#context local

[local]LSR-A(config-ctx)#router isis isis-backbone

[local]LSR-A(config-isis)#net 49.2222.0010.0100.1001.00

[local]LSR-A(config-isis)#exit

[local]LSR-A(config-ctx)#ip prefix-list loop-only

[local]LSR-A(config-prefix-list)#permit 0.0.0.0/0 eq 32

[local]LSR-A(config-prefix-list)#exit

[local]LSR-A(config-ctx)#interface backbone1

[local]LSR-A(config-if)#ip address 10.1.1.1/24

[local]LSR-A(config-if)#isis router isis-backbone

[local]LSR-A(config-if)#exit

[local]LSR-A(config-ctx)#interface loop1 loopback

[local]LSR-A(config-if)#ip address 1.1.1.1/32 

[local]LSR-A(config-if)#isis router isis-backbone

[local]LSR-A(config-if)#isis passive-interface

[local]LSR-A(config-if)#exit

[local]LSR-A(config-ctx)#router mpls 1

[local]LSR-A(config-mpls)#interface backbone1

[local]LSR-A(config-mpls-interface)#exit

[local]LSR-A(config-mpls)#exit

[local]LSR-A(config-ctx)#exit

[local]LSR-A(config)#port pos 6/1

[local]LSR-A(config-port)#bind interface backbone1 local

[local]LSR-A(config-port)#no shutdown

[local]LSR-A(config-port)#exit

[local]LSR-A(config)#context local

[local]LSR-A(config-ctx)#router ldp

[local]LSR-A(config-ldp)#interface backbone1

The configuration for LSR-B is as follows:

[local]LSR-B(config)#context local

[local]LSR-B(config-ctx)#router isis isis-backbone

[local]LSR-B(config-isis)#net 49.2222.0010.0100.1001.00

[local]LSR-B(config-isis)#exit

[local]LSR-B(config-ctx)#ip prefix-list loop-only

[local]LSR-B(config-prefix-list)#permit 0.0.0.0/0 eq 32

[local]LSR-B(config-prefix-list)#exit

[local]LSR-B(config-ctx)#interface backbone1

[local]LSR-B(config-if)#ip address 10.2.2.2/24

[local]LSR-B(config-if)#isis router isis-backbone

[local]LSR-B(config-if)#exit

[local]LSR-B(config-ctx)#interface loop1 loopback

[local]LSR-B(config-if)#ip address 1.1.1.1/32 

[local]LSR-B(config-if)#isis router isis-backbone

[local]LSR-B(config-if)#exit

[local]LSR-B(config-ctx)#router mpls 1

[local]LSR-B(config-mpls)#interface backbone1

[local]LSR-B(config-mpls-interface)#exit

[local]LSR-B(config-mpls)#exit

[local]LSR-B(config-ctx)#exit

[local]LSR-B(config)#port pos 6/1

[local]LSR-B(config-port)#bind interface backbone1 local

[local]LSR-B(config-port)#no shutdown

[local]LSR-B(config-port)#exit

[local]LSR-B(config)#context local

[local]LSR-B(config-ctx)#router ldp

[local]LSR-B(config-ldp)#interface backbone1

[local]LSR-B(config-ldp)#label-binding prefix-list loop-only out

3.2   Targeted LDP

The following example configures two PE routers (PE1 and PE2) for targeted LDP discovery. The two routers are connected over an IGP in an MPLS network, so their router IDs are known to each other through IGP. Figure 2 shows the network topology for this example.

Figure 2   Targeted LDP Network Topology

The LDP router ID address is also used as the LDP transport address for establishing the LDP targeted neighbor. The router-id command is used in LDP router configuration mode to configure the LDP router ID on the router. If the router- id command is removed from the configuration example, the LDP router ID is picked up as follows:

The configuration for the PE1 router is as follows:

[local]PE1(config)#context local

[local]PE1(config-ctx)#interface loop1 loopback

[local]PE1(config-if)#ip address 11.200.1.1/32

[local]PE1(config-if)#exit

[local]PE1(config-ctx)#router ldp

[local]PE1(config-ldp)#router-id 11.200.1.1

[local]PE1(config-ldp)#neighbor 11.200.1.2 targeted

[local]PE1(config-ldp)#end

The configuration for the PE2 router is as follows:

[local]PE2(config)#context local

[local]PE2(config-ctx)#interface loop1 loopback 

[local]PE2(config-if)#ip address 11.200.1.2

[local]PE2(config-if)#exit

[local]PE2(config-ctx)#router ldp

[local]PE2(config-ldp)#router-id 11.200.1.2

[local]PE2(config-ldp)#neighbor 11.200.1.1 targeted

[local]PE2(config-ldp)#end

3.3   LDP over RSVP

The following example configures two LSRs to tunnel LDP traffic over RSVP LSPs. LDP uses the two RSVP LSPs, lsp-lsrA-to-lsrB and lsp-lsrB-to-lsrA, to carry traffic between LSR A and LSR B. If a link fails, LDP traffic switches to the bypass LSPs, bypass-lsp-lsrA-to-lsrB and bypass-lsp-lsrB-to-lsrA, to carry traffic between LSR A and LSR B. LDP traffic is carried between LSR B and LSR C using the standard LDP configuration. Figure 3 shows the network topology for this example.

Figure 3   Typical LDP over RSVP Network Topology

The configuration for LSR A is as follows:

[local]LSR-A#config

[local]LSR-A(config)#context local

[local]LSR-A(config-ctx)#no ip domain-lookup

[local]LSR-A(config-ctx)#interface loopback1 loopback

[local]LSR-A(config-if)#ip address 10.10.10.1

[local]LSR-A(config-if)#exit

[local]LSR-A(config-ctx)#interface to-lsrB

[local]LSR-A(config-if)#ip address 20.20.20.2

[local]LSR-A(config-if)#exit

[local]LSR-A(config-ctx)#interface to-bypass-lsr

[local]LSR-A(config-if)#ip address 30.30.30.3

[local]LSR-A(config-if)#exit

[local]LSR-A(config-ctx)#router ospf 1

[local]LSR-A(config-ospf)#area 0.0.0.0

[local]LSR-A(config-ospf-area)#interface to-lsrB

[local]LSR-A(config-ospf-if)#exit

[local]LSR-A(config-ospf-area)#interface loopback1

[local]LSR-A(config-ospf-if)#exit

[local]LSR-A(config-ospf-area)#interface to-bypass-lsr

[local]LSR-A(config-ospf-if)#exit

[local]LSR-A(config-ospf)#exit

[local]LSR-A(config-ctx)#router mpls

[local]LSR-A(config-mpls)#interface to-lsrB

[local]LSR-A(config-mpls-if)#exit

[local]LSR-A(config-mpls)#interface loopback1

[local]LSR-A(config-mpls-if)#exit

[local]LSR-A(config-mpls)#interface to-bypass-lsr

[local]LSR-A(config-mpls-if)#exit

[local]LSR-A(config-mpls)#exit

[local]LSR-A(config-ctx)#router rsvp

[local]LSR-A(config-rsvp)#igp-shortcut

[local]LSR-A(config-rsvp)#interface to-lsrB

[local]LSR-A(config-rsvp-if)#exit

[local]LSR-A(config-rsvp)#interface loopback1

[local]LSR-A(config-rsvp-if)#exit

[local]LSR-A(config-rsvp)#interface to-bypass-lsr

[local]LSR-A(config-rsvp-if)#exit

[local]LSR-A(config-rsvp)#explicit-route to-lsrB

[local]LSR-A(config-rsvp-explicit-route)#next-hop 50.50.50.5

[local]LSR-A(config-rsvp-explicit-route)#exit

[local]LSR-A(config-rsvp)#lsp lsrA-to-lsrB

[local]LSR-A(config-rsvp-lsp)#ingress 10.10.10.1

[local]LSR-A(config-rsvp-lsp)#egress 40.40.40.4

[local]LSR-A(config-rsvp-lsp)#source-path to-lsrB

[local]LSR-A(config-rsvp-lsp)#local-protection

[local]LSR-A(config-rsvp-lsp)#exit

[local]LSR-A(config-rsvp)#explicit-route to-lsrB-2

[local]LSR-A(config-rsvp-explicit-route)#next-hop 80.80.80.8

[local]LSR-A(config-rsvp-explicit-route)#next-hop 70.70.70.7

[local]LSR-A(config-rsvp-explicit-route)#exit

[local]LSR-A(config-rsvp)#lsp bypass-lsp-lsrA-to-lsrB bypass 50.50.50.5

[local]LSR-A(config-rsvp-lsp)#egress 40.40.40.4

[local]LSR-A(config-rsvp-lsp)#source-path to-lsrB-2

[local]LSR-A(config-rsvp-lsp)#exit

[local]LSR-A(config-rsvp)#exit

[local]LSR-A(config-ctx)#router ldp

[local]LSR-A(config-ldp)#use-te-lsp

[local]LSR-A(config-ldp)#interface to-lsrB

[local]LSR-A(config-ldp)#interface loopback1

[local]LSR-A(config-ldp)#neighbor 40.40.40.4 targeted

[local]LSR-A(config-ldp)#neighbor 110.110.110.11 targeted

The configuration for LSR-B is as follows:

[local]LSR-B#config

[local]LSR-B(config)#context local

[local]LSR-B(config-ctx)#no ip domain-lookup

[local]LSR-B(config-ctx)#interface loopback1 loopback

[local]LSR-B(config-if)#ip address 40.40.40.4

[local]LSR-B(config-if)#exit

[local]LSR-B(config-ctx)#interface to-lsrA

[local]LSR-B(config-if)#ip address 50.50.50.5

[local]LSR-B(config-if)#exit

[local]LSR-B(config-ctx)#interface to-lsrC

[local]LSR-B(config-if)#ip address 60.60.60.6

[local]LSR-B(config-if)#exit

[local]LSR-B(config-ctx)#interface to-bypass-lsr

[local]LSR-B(config-if)#ip address 70.70.70.7

[local]LSR-B(config-if)#exit

[local]LSR-B(config-ctx)#router ospf 1

[local]LSR-B(config-ospf)#area 0.0.0.0

[local]LSR-B(config-ospf-area)#interface to-lsrA

[local]LSR-B(config-ospf-if)#exit

[local]LSR-B(config-ospf-area)#interface to-lsrC

[local]LSR-B(config-ospf-if)#exit

[local]LSR-B(config-ospf-area)#interface loopback1

[local]LSR-B(config-ospf-if)#exit

[local]LSR-B(config-ospf-area)#interface to-bypass-lsr

[local]LSR-B(config-ospf-if)#exit

[local]LSR-B(config-ospf-area)#exit

[local]LSR-B(config-ospf)#exit

[local]LSR-B(config-ctx)#router mpls

[local]LSR-B(config-mpls)#interface to-lsrA

[local]LSR-B(config-mpls-if)#exit

[local]LSR-B(config-mpls)#interface to-lsrC

[local]LSR-B(config-mpls-if)#exit

[local]LSR-B(config-mpls)#interface loopback1

[local]LSR-B(config-mpls-if)#exit

[local]LSR-B(config-mpls)#interface to-bypass-lsr

[local]LSR-B(config-mpls-if)#exit

[local]LSR-B(config-mpls)#exit

[local]LSR-B(config-ctx)#router rsvp

[local]LSR-B(config-rsvp)#igp-shortcut

[local]LSR-B(config-rsvp)#interface to-lsrA

[local]LSR-B(config-rsvp-if)#exit

[local]LSR-B(config-rsvp)#interface to-lsrC

[local]LSR-B(config-rsvp-if)#exit

[local]LSR-B(config-rsvp)#interface loopback1

[local]LSR-B(config-rsvp-if)#exit

[local]LSR-B(config-rsvp)#interface to-bypass-lsr

[local]LSR-B(config-rsvp-if)#exit

[local]LSR-B(config-rsvp)#explicit-route to-lsrA

[local]LSR-B(config-rsvp-explicit-route)#next-hop 20.20.20.2

[local]LSR-B(config-rsvp-explicit-route)#exit

[local]LSR-B(config-rsvp)#lsp lsp-lsrB-to-lsrA

[local]LSR-B(config-rsvp-lsp)#ingress 40.40.40.4

[local]LSR-B(config-rsvp-lsp)#egress 10.10.10.1

[local]LSR-B(config-rsvp-lsp)#source-path to-lsrA

[local]LSR-B(config-rsvp-lsp)#local-protection

[local]LSR-B(config-rsvp-lsp)#exit

[local]LSR-B(config-rsvp)#explicit-route to-lsrA-2

[local]LSR-B(config-rsvp-explicit-route)#next-hop 90.90.90.9

[local]LSR-B(config-rsvp-explicit-route)#next-hop 30.30.30.3

[local]LSR-B(config-rsvp-explicit-route)#exit

[local]LSR-B(config-rsvp)#lsp bypass-lsrB-to-lsrA bypass 20.20.20.2

[local]LSR-B(config-rsvp-lsp)#egress 40.40.40.4

[local]LSR-B(config-rsvp-lsp)#source-path to-lsrA-2

[local]LSR-B(config-rsvp-lsp)#exit

[local]LSR-B(config-rsvp)#exit

[local]LSR-B(config-ctx)#router ldp

[local]LSR-B(config-ldp)#use-te-lsp

[local]LSR-B(config-ldp)#interface to-lsrA

[local]LSR-B(config-ldp)#interface to-lsrC

[local]LSR-B(config-ldp)#interface loopback1

[local]LSR-B(config-ldp)#interface to-bypass-lsr

[local]LSR-B(config-ldp)#neighbor 10.10.10.1 targeted

[local]LSR-B(config-ldp)#neighbor 110.110.110.11 targeted

[local]LSR-B(config-ldp)#end