Table Of Contents
Implementing MPLS Label Distribution Protocol on Cisco IOS XR Software
Prerequisites for Implementing Cisco MPLS LDP
Information About Implementing Cisco MPLS LDP
Overview of Label Distribution Protocol
Label Advertisement Control (Outbound Filtering)
Label Acceptance Control (Inbound Filtering)
Local Label Allocation Control
How to Implement LDP on Cisco IOS XR Software
Configuring LDP Discovery Parameters
Configuring LDP Discovery Over a Link
Configuring LDP Discovery for Active Targeted Hellos
Configuring LDP Discovery for Passive Targeted Hellos
Configuring Label Advertisement Control (Outbound Filtering)
Setting Up LDP NSF Using Graceful Restart
Configuring Label Acceptance control (Inbound Filtering)
Configuring Local Label Allocation Control
Configuring Session Protection
Configuring LDP IGP Synchronization: OSPF
Configuring LDP IGP Synchronization: ISIS
Configuring LDP IGP Sync Delay Interval
Enabling LDP Auto-configuration for a Specified OSPF Instance
Enabling LDP Auto-configuration in an Area for a Specified OSPF Instance
Disabling LDP Auto-configuration
Configuration Examples for Implementing LDP
Configuring LDP with Graceful Restart: Example
Configuring LDP Discovery: Example
Configuring LDP Discovery for Targeted Hellos: Example
Configuring Label Advertisement (Outbound Filtering): Example
Configuring LDP Neighbors: Example
Configuring LDP Forwarding: Example
Configuring LDP Nonstop Forwarding with Graceful Restart: Example
Configuring Label Acceptance (Inbound Filtering): Example
Configuring Local Label Allocation Control: Example
Configuring LDP Session Protection: Example
Configuring LDP IGP Synchronization - OSPF: Example
Configuring LDP IGP Synchronization - ISIS: Example
Configuring LDP Auto-configuration: Example
Implementing MPLS Label Distribution Protocol on Cisco IOS XR Software
Multiprotocol Label Switching (MPLS) is a standards-based solution driven by the Internet Engineering Task Force (IETF) that was devised to convert the Internet and IP backbones from best-effort networks into business-class transport mediums.
MPLS, with its label switching capabilities, eliminates the need for an IP route look-up and creates a virtual circuit (VC) switching function, allowing enterprises the same performance on their IP-based network services as with those delivered over traditional networks such as Frame Relay or ATM.
Label Distribution Protocol (LDP) performs label distribution in MPLS environments. LDP provides the following capabilities:
•LDP performs hop-by-hop or dynamic path setup; it does not provide end-to-end switching services.
•LDP assigns labels to routes using the underlying Interior Gateway Protocols (IGP) routing protocols.
•LDP provides constraint-based routing using LDP extensions for traffic engineering.
Finally, LDP is deployed in the core of the network and is one of the key protocols used in MPLS-based Layer 2 and Layer 3 Virtual Private Networks (VPNs).
Feature History for Implementing MPLS LDP on Cisco IOS XR Software
Contents
•Prerequisites for Implementing Cisco MPLS LDP
•Information About Implementing Cisco MPLS LDP
•How to Implement LDP on Cisco IOS XR Software
•Configuration Examples for Implementing LDP
Prerequisites for Implementing Cisco MPLS LDP
The following prerequisites are required to implement MPLS LDP:
•You must be in a user group associated with a task group that includes the proper task IDs for MPLS LDP commands.
•You must be running Cisco IOS XR software.
•You must install a composite mini-image and the MPLS package.
•You must activate IGP.
Information About Implementing Cisco MPLS LDP
To implement MPLS LDP, you should understand the following concepts:
•Overview of Label Distribution Protocol
•Label Advertisement Control (Outbound Filtering)
•Label Acceptance Control (Inbound Filtering)
•Local Label Allocation Control
Overview of Label Distribution Protocol
LDP performs label distribution in MPLS environments. LDP uses hop-by-hop or dynamic path setup, but does not provide end-to-end switching services. Labels are assigned to routes that are chosen by the underlying IGP routing protocols. The Label Switched Paths (LSPs) that result from the routes, forward labeled traffic across the MPLS backbone to adjacent nodes.
Label Switched Paths
LSPs are created in the network through MPLS. They can be created statically, by RSVP traffic engineering (TE) or by LDP. LSPs created by LDP perform hop-by-hop path setup instead of an end-to-end path.
LDP Control Plane
The control plane enables label switched routers (LSRs) to discover their potential peer routers and to establish LDP sessions with those peers to exchange label binding information. Figure 1 shows the control messages exchanged between LDP peers.
Figure 1 LDP Control Protocol
LDP uses the hello discovery mechanism to discover its neighbor or peer on the network. When LDP is enabled on an interface, it sends hello messages to a link-local multicast address, and joins a specific multicast group to receive hellos from other LSRs present on the given link. When LSRs on a given link receive hellos, their neighbors are discovered and the LDP session (using TCP) is established.
Note Hellos are not only used to discover and trigger LDP sessions; they are also required to maintain LDP sessions. If a certain number of hellos from a given peer are missed in sequence, LDP sessions are brought down, until the peer is discovered again.
LDP also supports non-link neighbors that could be multiple hops away on the network, using the targeted hello mechanism. In these cases, hellos are sent on a directed, unicast address.
The first message in the session establishment phase is the initialization message, which is used to negotiate session parameters. After session establishment, LDP sends a list of all its interface addresses to its peers in an address message. Whenever a new address becomes available or unavailable, the peers are notified regarding such changes via ADDRESS or ADDRESS_WITHDRAW messages respectively.
When MPLS LDP learns an IGP prefix it allocates a label locally as the inbound label. The local binding between the prefix label is conveyed to its peers via LABEL_MAPPING message. If the binding breaks and becomes unavailable, a LABEL_WITHDRAW message is sent to all its peers, which respond with LABEL_RELEASE messages.
The local label binding and remote label binding received from its peer(s) is used to setup forwarding entries. Using routing information from the IGP protocol and the forwarding information base (FIB), the next active hop is selected. Label binding is learned from the next hop peer, and is used as the outbound label while setting up the forwarding plane.
The LDP session is also kept alive using the LDP keepalive mechanism, where an LSR sends a keepalive message periodically to its peers. If no messages are received and a certain number of keepalive messages are missed from a peer, the session is declared dead, and brought down immediately.
Exchanging Label Bindings
LDP creates LSPs to perform the hop-by-hop path setup so that MPLS packets can be transferred between the nodes on the MPLS network.
Figure 2 illustrates the process of label binding exchange for setting up LSPs.
Figure 2 Setting Up Label Switched Paths
For a given network (10.0.0.0), hop-by-hop LSPs are set up between each of the adjacent routers (or, nodes) and each node allocates a local label and passes it to its neighbor as a binding:
1. R4 allocates local label L4 for prefix 10.0.0.0 and advertises it to its neighbors (R3).
2. R3 allocates local label L3 for prefix 10.0.0.0 and advertises it to its neighbors (R1, R2, R4).
3. R1 allocates local label L1 for prefix 10.0.0.0 and advertises it to its neighbors (R2, R3).
4. R2 allocates local label L2 for prefix 10.0.0.0 and advertises it to its neighbors (R1, R3).
5. R1's Label Information Base (LIB) keeps local and remote labels bindings from its neighbors.
6. R2's LIB keeps local and remote labels bindings from its neighbors.
7. R3's LIB keeps local and remote labels bindings from its neighbors.
8. R4's LIB keeps local and remote labels bindings from its neighbors.
Setting Up LDP Forwarding
Once label bindings are learned, the LDP control plane is ready to setup the MPLS forwarding plane as shown in Figure 3.
Figure 3 Forwarding Setup
1. Because R3 is next hop for 10.0.0.0 as notified by the forwarding information base (FIB), R1 selects label binding from R3 and installs forwarding entry (L1, L3).
2. Because R3 is next hop for 10.0.0.0 (as notified by FIB), R2 selects label binding from R3 and installs forwarding entry (L2, L3).
3. Because R4 is next hop for 10.0.0.0 (as notified by FIB), R3 selects label binding from R4 and installs forwarding entry (L3, L4).
4. Because next hop for 10.0.0.0 (as notified by FIB) is beyond R4, R4 uses NO-LABEL as the outbound and installs the forwarding entry (L4); the outbound packet is forwarded IP-only.
5. Incoming IP traffic on ingress LSR R1 gets label-imposed and is forwarded as an MPLS packet with label L3.
6. Incoming IP traffic on ingress LSR R2 gets label-imposed and is forwarded as an MPLS packet with label L3.
7. R3 receives an MPLS packet with label L3, looks up in the MPLS label forwarding table and switches this packet as an MPLS packet with label L4.
8. R4 receives an MPLS packet with label L4, looks up in the MPLS label forwarding table and finds that it should be Unlabeled, pops the top label, and passes it to the IP forwarding plane.
9. IP forwarding takes over and forwards the packet onward.
LDP Graceful Restart
LDP graceful restart, provides a control plane mechanism to ensure high availability, allows detection and recovery from failure conditions while preserving Nonstop Forwarding (NSF) services. Graceful restart is a way to recover from signaling and control plane failures without impacting forwarding.
Without LDP graceful restart, when an established session fails, the corresponding forwarding states are cleaned immediately from the restarting and peer nodes. In this case LDP forwarding will have to restart from the beginning, causing a potential loss of data and connectivity.
The LDP graceful restart capability is negotiated between two peers during session initialization time, in FT SESSION TLV. In this typed length value (TLV), each peer advertises the following information to its peers:
•Reconnect time: the maximum time that other peer will wait for this LSR to reconnect after control channel failure.
•Recovery time: Max time that other peer has on its side to reinstate or refresh its states with this LSR. This time is used only during session reestablishment after earlier session failure.
•FT flag: This flag indicates whether a restart could restore the preserved (local) node state.
Once the graceful restart session parameters are conveyed and the session is up and running, graceful restart procedures are activated.
Control Plane Failure
When a control plane failure occurs, connectivity can be affected. The forwarding states installed by the router control planes are lost, and the in-transit packets could be dropped, thus breaking NSF.
Figure 4 illustrates a control plane failure and shows the process and results of a control plane failure leading to loss of connectivity.
Figure 4 Control Plane Failure
1. The R4 LSR control plane restarts.
2. LIB is lost when the control plane restarts.
3. The forwarding states installed by the R4 LDP control plane are immediately deleted.
4. Any in-transit packets flowing from R3 to R4 (still labelled with L4) arrive at R4.
5. The MPLS forwarding plane at R4 performs a lookup on local label L4 which fails. Because of this failure, the packet is dropped and NSF is not met.
6. The R3 LDP peer detects the failure of the control plane channel and deletes its label bindings from R4.
7. The R3 control plane stops using outgoing labels from R4 and deletes the corresponding forwarding state (rewrites), which in turn causes forwarding disruption.
8. The established LSPs connected to R4 are terminated at R3, resulting in broken end-to-end LSPs from R1 to R4.
9. The established LSPs connected to R4 are terminated at R3, resulting in broken LSPs end-to-end from R2 to R4.
Phases in Graceful Restart
The graceful restart mechanism can be divided into different phases as follows:
•Control communication failure detection
•Forwarding state maintenance during failure
•Control state recovery
Control Communication Failure Detection
Control communication failure is detected when the system detects either:
•Missed LDP hello discovery messages
•Missed LDP keepalive protocol messages
•Detection of Transmission Control Protocol (TCP) disconnection a with a peer
Forwarding State Maintenance During Failure
Persistent forwarding states at each LSR are achieved through persistent storage (checkpoint) by the LDP control plane. While the control plane is in the process of recovering, the forwarding plane keeps the forwarding states, but marks them as stale. Similarly, the peer control plane also keeps (and marks as stale) the installed forwarding rewrites associated with the node that is restarting. The combination of local node forwarding and remote node forwarding plane states ensures NSF and no disruption in the traffic.
Control State Recovery
Recovery occurs when the session is reestablished and label bindings are exchanged again. This process allows the peer nodes to synchronize and to refresh stale forwarding states.
Recovery with Graceful-Restart
Figure 5 illustrates the process of failure recovery using graceful restart.
Figure 5 Recovering with Graceful Restart
1. The router R4 LSR control plane restarts.
2. With the control plane restart, LIB is gone but forwarding states installed by R4's LDP control plane are not immediately deleted but are marked as stale.
3. Any in-transit packets from R3 to R4 (still labelled with L4) arrive at R4.
4. The MPLS forwarding plane at R4 performs a successful lookup for the local label L4 as forwarding is still intact. The packet is forwarded accordingly.
5. The router R3 LDP peer detects the failure of the control plane and channel and deletes the label bindings from R4. The peer, however, does not delete the corresponding forwarding states but marks them as stale.
6. At this point there are no forwarding disruptions.
7. The peer also starts the neighbor reconnect timer using the reconnect time value.
8. The established LSPs going toward the router R4 are still intact, and there are no broken LSPs.
When the LDP control plane recovers, the restarting LSR starts its forwarding state hold timer and restores its forwarding state from the checkpointed data. This action reinstates the forwarding state and entries and marks them as old.
The restarting LSR reconnects to its peer, indicating in the FT Session TLV, that it either was or was not able to restore its state successfully. If it was able to restore the state, the bindings are resynchronized.
The peer LSR stops the neighbor reconnect timer (started by the restarting LSR), when the restarting peer connects and starts the neighbor recovery timer. The peer LSR checks the FT Session TLV if the restarting peer was able to restore its state successfully. It reinstates the corresponding forwarding state entries and receives binding from the restarting peer. When the recovery timer expires, any forwarding state that is still marked as stale is deleted.
If the restarting LSR fails to recover (restart), the restarting LSR forwarding state and entries will eventually timeout and is deleted, while neighbor-related forwarding states or entries are removed by the Peer LSR on expiration of the reconnect or recovery timers.
Label Advertisement Control (Outbound Filtering)
By default, LDP advertises labels for all the prefixes to all its neighbors. When this is not desirable (for scalability and security reasons), you can configure LDP to perform outbound filtering for local label advertisement for one or more prefixes to one more peers. This feature is known as LDP outbound label filtering, or local label advertisement control.
Label Acceptance Control (Inbound Filtering)
By default, LDP accepts labels (as remote bindings) for all prefixes from all peers. LDP operates in liberal label retention mode, which instructs LDP to keep remote bindings from all peers for a given prefix. For security reasons, or to conserve memory, you can override this behavior by configuring label binding acceptance for set of prefixes from a given peer.
The ability to filter remote bindings for a defined set of prefixes is also referred to as LDP inbound label filtering.
Note Inbound filtering can also be implemented using an outbound filtering policy; however, you may not be able to implement this system if an LDP peer resides under a different administration domain. When both inbound and outbound filtering options are available, we recommend that you use outbound label filtering.
Local Label Allocation Control
By default, LDP allocates local labels for all prefixes that are not Border Gateway Protocol (BGP) prefixes1 . This is acceptable when LDP is used for applications other than Layer 3 virtual private networks (L3VPN) core transport. When LDP is used to set up transport LSPs for L3VPN traffic in the core, it is not efficient or even necessary to allocate and advertise local labels for, potentially, thousands of IGP prefixes. In such a case, LDP is typically required to allocate and advertise local label for loopback /32 addresses for PE routers. This is accomplished using LDP local label allocation control, where an access list can be used to limit allocation of local labels to a set of prefixes. Limiting local label allocation provides several benefits, including reduced memory usage requirements, fewer local forwarding updates, and fewer network and peer updates.
Tip You can configure label allocation using an IP access list to specify a set of prefixes that local labels will allocate and advertise.
Session Protection
When a link comes up, IP converges earlier and much faster than MPLS LDP and may result in MPLS traffic loss until MPLS convergence. If a link flaps, the LDP session will also flap due to loss of link discovery. LDP session protection minimizes traffic loss and provides faster convergence and protects existing LDP (link) sessions by means of "parallel" source of targeted discovery/hello. An LDP session is kept alive and neighbor label bindings are maintained when links are down. Upon reestablishment of primary link adjacencies, MPLS convergence is expedited as LDP need not relearn the neighbor label bindings.
LDP session protection lets you configure LDP to automatically protect sessions with all or a given set of peers (as specified by peer-acl). When configured, LDP initiates backup targeted hellos automatically for neighbors for which primary link adjacencies already exist. These backup targeted hellos maintain LDP sessions when primary link adjacencies go down.
Figure 6 illustrates LDP session protection between neighbors R1 and R3. The primary link adjacency between R1 and R3 is directly connected link and the backup; targeted adjacency is maintained between R1 and R3. If the direct link fails, LDP link adjacency is destroyed, but the session is kept up and running using targeted hello adjacency (through R2). When the direct link comes back up, there is no change in the LDP session state and LDP can converge quickly and begin forwarding MPLS traffic.
Figure 6 Session Protection
Note When LDP session protection is activated (upon link failure), protection is maintained for an unlimited period time.
IGP Synchronization
Lack of synchronization between LDP and IGP can cause MPLS traffic loss. Upon link up, for example, IGP can advertise and use a link before LDP convergence has occurred; or, a link may continue to be used in IGP after an LDP session goes down.
LDP IGP synchronization synchronizes LDP and IGP so that IGP advertises links with regular metrics only when MPLS LDP is converged on that link. LDP considers a link converged when at least one LDP session is up and running on the link for which LDP has sent its applicable label bindings and received at least one label binding from the peer. LDP communicates this information to IGP upon link up or session down events and IGP acts accordingly, depending on sync state.
In the event of an LDP graceful restart session disconnect, a session is treated as converged as long as the graceful restart neighbor is timed out. Additionally, upon local LDP restart, a checkpointed recovered LDP graceful restart session is used and treated as converged and is given an opportunity to connect and re-synchronize.
Under certain circumstances, it might be required to delay declaration of re-synchronization to a configurable interval. LDP provides a configuration option to delay declaring synchronization up for up to 60 seconds. LDP communicates this information to IGP upon linkup or session down events.
Note The configuration for LDP IGP synchronization resides in respective IGPs (OSPF and IS-IS) and there is no LDP-specific configuration for enabling of this feature. However, there is a specific LDP configuration for IGP sync delay timer.
IGP Auto-configuration
To enable LDP on a large number of interfaces, IGP auto-configuration lets you automatically configure LDP on all interfaces associated with a specified IGP interface; for example, when LDP is used for transport in the core network. However, there needs to be one IGP set up to enable LDP auto-configuration.
Typically, LDP assigns and advertises labels for IGP routes and must often be enabled on all active interfaces by an IGP. Without IGP auto-configuration, you must define the set of interfaces under LDP, a procedure that is time-intensive and error-prone.
Note LDP auto-configuration is supported for IPv4 unicast family in the default VRF. The IGP is responsible for verifying and applying the configuration.
You can also disable auto-configuration on a per-interface basis. This permits LDP to enable all IGP interfaces except those that are explicitly disabled and prevents LDP from enabling an interface when LDP auto-configuration is configured under IGP.
LDP Nonstop Routing
LDP nonstop routing (NSR) functionality makes failures, such as route processor (RP) or distributed route processor (DRP) failover, invisible to routing peers with minimal to no disruption of convergence performance. By default, NSR is globally enabled on all LDP sessions except AToM.
A disruption in service may include any of the following events:
•Route processor (RP) or distributed route processor (DRP) failover
•LDP process restart
•In-service system upgrade (ISSU)
•Minimum disruption restart (MDR)
Note Unlike graceful restart functionality, LDP NSR does not require protocol extensions and does not force software upgrades on other routers in the network, nor does LDP NSR require peer routers to support NSR.
Process failures of active TCP or LDP results in session loss and, as a result, NSR cannot be provided unless RP switchover is configured as a recovery action. For more information about how to configure switchover as a recovery action for NSR, see "Configuring Transports on Cisco IOS XR Software" in Cisco IOS XR IP Addresses and Services Configuration Guide.
How to Implement LDP on Cisco IOS XR Software
A typical MPLS LDP deployment requires coordination among several global neighbor routers. Various configuration tasks are required to implement MPLS LDP on Cisco IOS XR software, as follows:
•Configuring LDP Discovery Parameters (optional)
•Configuring LDP Discovery Over a Link (required)
•Configuring LDP Discovery for Active Targeted Hellos (required)
•Configuring LDP Discovery for Passive Targeted Hellos (required)
•Configuring Label Advertisement Control (Outbound Filtering) (optional)
•Setting Up LDP Neighbors (optional)
•Setting Up LDP Forwarding (optional)
•Setting Up LDP NSF Using Graceful Restart (optional)
•Configuring Label Acceptance control (Inbound Filtering) (optional)
•Configuring Local Label Allocation Control (optional)
•Configuring Session Protection (optional)
•Configuring LDP IGP Synchronization: OSPF (optional)
•Configuring LDP IGP Synchronization: ISIS (optional)
•Configuring LDP IGP Sync Delay Interval (optional)
•Enabling LDP Auto-configuration for a Specified OSPF Instance (optional)
•Enabling LDP Auto-configuration in an Area for a Specified OSPF Instance
•Disabling LDP Auto-configuration (optional)
Configuring LDP Discovery Parameters
Perform this task to configure LDP discovery parameters (which may be crucial for LDP operations).
Note The LDP discovery mechanism is used to discover or locate neighbor nodes.
SUMMARY STEPS
1. configure
2. mpls ldp
3. router-id {type number | ip-address}
4. discovery {hello | targeted-hello} holdtime seconds
5. discovery {hello | targeted-hello} interval seconds
6. end
or
commit7. show mpls ldp parameters
DETAILED STEPS
Configuring LDP Discovery Over a Link
Perform this task to configure LDP discovery over a link.
Note There is no need to enable LDP globally.
Prerequisites
A stable router ID is required at either end of the link to ensure the link discovery (and session setup) is successful. If you do not assign a router ID to the routers, the system will default to the global router ID. Default router IDs are subject to change and may cause an unstable discovery.
SUMMARY STEPS
1. configure
2. mpls ldp
3. router-id {type number | ip-address}
4. interface type number
5. end
or
commit6. show mpls ldp discovery
DETAILED STEPS
Configuring LDP Discovery for Active Targeted Hellos
Perform this task to configure LDP discovery for active targeted hellos.
Note The active side for targeted hellos initiates the unicast hello toward a specific destination.
Prerequisites
The following prerequisites are required to configure LDP discovery for active targeted hellos:
•A stable router ID is required at either end of the targeted session. If you do not assign a router ID to the routers, the system will default to the global router ID. Please note that default router IDs are subject to change and may cause an unstable discovery.
•One or more MPLS Traffic Engineering tunnels are established between non-directly connected LSRs.
SUMMARY STEPS
1. configure
2. mpls ldp
3. router-id {type number | ip-address}
4. interface type number
5. end
or
commit6. show mpls ldp discovery
DETAILED STEPS
Configuring LDP Discovery for Passive Targeted Hellos
Perform this task to configure LDP discovery for passive targeted hellos.
A passive side for targeted hello is the destination router (tunnel tail), which passively waits for an incoming hello message. Because targeted hellos are unicast, the passive side waits for an incoming hello message to respond with hello toward its discovered neighbor.
Prerequisites
A stable router ID is required at either end of the link to ensure that the link discovery (and session setup) is successful. If you do not assign a router ID to the routers, the system will default to the global router ID. Default router IDs are subject to change and may cause an unstable discovery.
SUMMARY STEPS
1. configure
2. mpls ldp
3. router-id [type number | ip-address]
4. discovery targeted-hello accept
5. end
or
commit6. show mpls ldp discovery
DETAILED STEPS
Configuring Label Advertisement Control (Outbound Filtering)
Perform this task to configure label advertisement (outbound filtering).
By default, a label switched router (LSR) advertises all incoming label prefixes to each neighboring router. You can control the exchange of label binding information using the mpls ldp label advertise command. Using the optional keywords, you can advertise selective prefixes to all neighbors, advertise selective prefixes to defined neighbors, or disable label advertisement to all peers for all prefixes.
Note Prefixes and peers advertised selectively are defined in the access list.
Prerequisites
Before configuring label advertisement, enable LDP and configure an access list.
SUMMARY STEPS
1. configure
2. mpls ldp
3. label advertise {disable | for prefix-acl [to peer-acl] | interface interface-id}
4. end
or
commitDETAILED STEPS
Setting Up LDP Neighbors
Perform this task to set up LDP neighbors.
Prerequisites
A stable router ID is required at either end of the link to ensure the link discovery (and session setup) is successful. If you do not assign a router ID to the routers, the system will default to the global router ID. Default router IDs are subject to change and may cause an unstable discovery.
SUMMARY STEPS
1. configure
2. mpls ldp
3. interface type number
4. discovery transport-address [ip-address | interface]
5. end
or
commit6. holdtime seconds
7. neighbor ip-address password [encryption] password
8. backoff initial maximum
9. end
or
commit10. show mpls ldp neighbor
DETAILED STEPS
Setting Up LDP Forwarding
Perform this task to set up LDP forwarding.
By default, the LDP control plane implements the penultimate hop popping (PHOP) mechanism. The PHOP mechanism requires that label switched routers use the implicit-null label as a local label for the given Forwarding Equivalence Class (FEC) for which LSR is the penultimate hop. Although PHOP has certain advantages, it may be required to extend LSP up to the ultimate hop under certain circumstances (for example, to propagate MPL QoS). This is done using a special local label (explicit-null) advertised to the peers after which the peers use this label when forwarding traffic toward the ultimate hop (egress LSR).
Prerequisites
A stable router ID is required at either end of the link to ensure the link discovery (and session setup) is successful. If you do not assign a router ID to the routers, the system will default to the global router ID. Default router IDs are subject to change and may cause an unstable discovery.
SUMMARY STEPS
1. configure
2. mpls ldp
3. explicit-null
4. end
or
commit5. show mpls ldp forwarding
6. show mpls forwarding
7. ping ip-address
DETAILED STEPS
Setting Up LDP NSF Using Graceful Restart
Perform this task to set up NSF using LDP graceful restart.
LDP graceful restart is a way to enable NSF for LDP. The correct way to set up NSF using LDP graceful restart is to bring up LDP neighbors (link or targeted) with additional configuration related to graceful restart.
Prerequisites
A stable router ID is required at either end of the link to ensure the link discovery (and session setup) is successful. If you do not assign a router ID to the routers, the system will default to the global router ID. Default router IDs are subject to change and may cause an unstable discovery.
SUMMARY STEPS
1. configure
2. mpls ldp
3. interface {type number}
4. end
or
commit5. graceful-restart
6. graceful-restart forwarding-state-holdtime seconds
7. graceful-restart reconnect-timeout seconds
8. end
or
commit9. show mpls ldp parameters
10. show mpls ldp neighbor
11. show mpls ldp graceful-restart
Note Repeat these steps on neighboring routers.
DETAILED STEPS
Configuring Label Acceptance control (Inbound Filtering)
Perform this task to configure LDP inbound label filtering.
Note By default, there is no inbound label filtering performed by LDP and thus an LSR accepts (and retains) all remote label bindings from all peers.
SUMMARY STEPS
1. configure
2. mpls ldp
3. label accept for prefix-acl from ip-address
4. end
or
commitDETAILED STEPS
Configuring Local Label Allocation Control
Perform this task to configure label allocation control.
Note By default, local label allocation control is disabled and all non-BGP prefixes are assigned local labels.
SUMMARY STEPS
1. configure
2. mpls ldp
3. label allocate for prefix-acl
4. end
or
commitDETAILED STEPS
Configuring Session Protection
Perform this task to configure LDP session protection.
By default, there is no protection is done for link sessions by means of targeted hellos.
SUMMARY STEPS
1. configure
2. mpls ldp
3. session protection [for peer-acl] [duration seconds]
4. end
or
commitDETAILED STEPS
Configuring LDP IGP Synchronization: OSPF
Perform this task to configure LDP IGP Synchronization under OSPF.
Note By default, there is no synchronization between LDP and IGPs.
SUMMARY STEPS
1. configure
2. router ospf interface-id
3. mpls ldp sync
or
area area-id mpls ldp sync
or
area area-id interface name mpls ldp sync4. end
or
commitDETAILED STEPS
Configuring LDP IGP Synchronization: ISIS
Perform this task to configure LDP IGP Synchronization under ISIS.
Note By default, there is no synchronization between LDP and ISIS.
SUMMARY STEPS
1. configure
2. router isis instance-id interface name address-family ipv4 unicast
3. mpls ldp sync [level 1- 2]
4. end
or
commitDETAILED STEPS
Configuring LDP IGP Sync Delay Interval
Perform this task to configure the LDP IGP synchronization delay interval.
By default, LDP does not delay declaring sync up as soon as convergence conditions are met.
SUMMARY STEPS
1. configure
2. mpls ldp
3. igp sync delay seconds
4. end
or
commitDETAILED STEPS
Enabling LDP Auto-configuration for a Specified OSPF Instance
Perform this task to enable IGP auto-configuration globally for a specified OSPF process name.
You can disable auto-configuration on a per-interface basis. This lets LDP enable all IGP interfaces except those that are explicitly disabled (see Disabling LDP Auto-configuration).
Note This feature is supported for IPv4 unicast family in default VRF only.
SUMMARY STEPS
1. configure
2. router ospf process-name
3. mpls ldp auto-config
4. area area-id
5. interface type interface-id
6. end
or
commitDETAILED STEPS
Enabling LDP Auto-configuration in an Area for a Specified OSPF Instance
Perform this task to enable IGP auto-configuration in a defined area with a specified OSPF process name.
You can disable auto-configuration on a per-interface basis. This lets LDP enable all IGP interfaces except those that are explicitly disabled (see, Disabling LDP Auto-configuration).
Note This feature is supported for IPv4 unicast family in default VRF only.
SUMMARY STEPS
1. configure
2. router ospf process name
3. area area-id
4. mpls ldp auto-config
5. interface type interface-id
6. end
or
commitDETAILED STEPS
Disabling LDP Auto-configuration
Perform this task to disable IGP auto-configuration.
You can disable auto-configuration on a per-interface basis. This lets LDP enable all IGP interfaces except those that are explicitly disabled.
SUMMARY STEPS
1. configure
2. mpls ldp
3. interface type interface-id
4. igp auto-config disable
5. end
or
commitDETAILED STEPS
Configuring LDP NSR
Perform this task to configure LDP NSR (see LDP Nonstop Routing).
Note By default, NSR is globally-enabled on all LDP sessions except AToM.
SUMMARY STEPS
1. configure
2. mpls ldp
3. nsr
4. end
or
commit5. show mpls ldp nsr statistics
DETAILED STEPS
Configuration Examples for Implementing LDP
This section provides the following configuration examples:
•Configuring LDP with Graceful Restart: Example
•Configuring LDP Discovery: Example
•Configuring LDP Link: Example
•Configuring LDP Discovery for Targeted Hellos: Example
•Configuring Label Advertisement (Outbound Filtering): Example
•Configuring LDP Neighbors: Example
•Configuring LDP Forwarding: Example
•Configuring LDP Nonstop Forwarding with Graceful Restart: Example
•Configuring Label Acceptance (Inbound Filtering): Example
•Configuring Local Label Allocation Control: Example
•Configuring LDP Session Protection: Example
•Configuring LDP IGP Synchronization - OSPF: Example
•Configuring LDP IGP Synchronization - ISIS: Example
•Configuring LDP Auto-configuration: Example
Configuring LDP with Graceful Restart: Example
The following example shows how to enable LDP with graceful restart on the POS interface 0/2/0/0:
mpls ldpgraceful-restartinterface pos0/2/0/0!Configuring LDP Discovery: Example
The following example shows how to configure LDP discovery parameters:
mpls ldprouter-id loopback0discovery hello holdtime 15discovery hello interval 5!show mpls ldp parametersshow mpls ldp discoveryConfiguring LDP Link: Example
The following example shows how to configure LDP link parameters:
mpls ldpinterface pos 0/1/0/0!!show mpls ldp discoveryConfiguring LDP Discovery for Targeted Hellos: Example
The following example shows how to configure LDP Discovery to accept targeted hello messages:
Active (tunnel head)
mpls ldprouter-id loopback0interface tunnel-te 12001!!Passive (tunnel tail)
mpls ldprouter-id loopback0discovery targeted-hello accept!Configuring Label Advertisement (Outbound Filtering): Example
The following example shows how to configure LDP label advertisement control:
mpls ldplabeladvertisedisablefor pfx_acl_1 to peer_acl_1for pfx_acl_2 to peer_acl_2for pfx_acl_3interface POS 0/1/0/0interface POS 0/2/0/0!!!ipv4 access-list pfx_acl_110 permit ip host 1.0.0.0 any!ipv4 access-list pfx_acl_210 permit ip host 2.0.0.0 any!ipv4 access-list peer_acl_110 permit ip host 1.1.1.1 any20 permit ip host 1.1.1.2 any!ipv4 access-list peer_acl_210 permit ip host 2.2.2.2 any!show mpls ldp bindingConfiguring LDP Neighbors: Example
The following example shows how to disable label advertisement:
mpls ldprouter-id Loopback0neighbor 1.1.1.1 password encrypted 110A1016141Eneighbor 2.2.2.2 implicit-withdraw!Configuring LDP Forwarding: Example
The following example shows how to configure LDP forwarding:
mpls ldpexplicit-null!show mpls ldp forwardingshow mpls forwardingConfiguring LDP Nonstop Forwarding with Graceful Restart: Example
The following example shows how to configure LDP nonstop forwarding with graceful restart:
mpls ldploggraceful-restart!graceful-restartgraceful-restart forwarding state-holdtime 180graceful-restart reconnect-timeout 15interface pos0/1/0/0!show mpls ldp graceful-restartshow mpls ldp neighbor grshow mpls ldp forwardingshow mpls forwardingConfiguring Label Acceptance (Inbound Filtering): Example
The following example shows how to configure inbound label filtering:
mpls ldplabelacceptfor pfx_acl_2 from 192.168.2.2!!!Configuring Local Label Allocation Control: Example
The following example shows how to configure local label allocation control:
mpls ldplabelallocate for pfx_acl_1!!Configuring LDP Session Protection: Example
The following example shows how to configure session protection:
mpls ldpsession protection for peer_acl_1 duration 60!Configuring LDP IGP Synchronization - OSPF: Example
The following example shows how to configure LDP IGP synchronization:
router ospf 100mpls ldp sync!mpls ldpigp sync delay 30!Configuring LDP IGP Synchronization - ISIS: Example
The following example shows how to configure LDP IGP synchronization:
router isis 100interface POS 0/2/0/0address-family ipv4 unicastmpls ldp sync!!!mpls ldpigp sync delay 30!Configuring LDP Auto-configuration: Example
The following example shows how to configure the IGP auto-configuration feature globally for a specific OSPF interface ID:
router ospf 100mpls ldp auto-configarea 0interface pos 1/1/1/1The following example shows how to configure the IGP auto-configuration feature on a given area for a given OSPF interface ID:
router ospf 100area 0mpls ldp auto-configinterface interface pos 1/1/1/1Additional References
For additional information related to Implementing MPLS Label Distribution Protocol, refer to the following references:
Related Documents
Standards
Standards 1 TitleTechnical Assistance Center (TAC) home page, containing 30,000 pages of searchable technical content, including links to products, technologies, solutions, technical tips, and tools. Registered Cisco.com users can log in from this page to access even more content.
—
1 Not all supported standards are listed.
MIBs
MIBs MIBs Link—
To locate and download MIBs using Cisco IOS XR software, use the Cisco MIB Locator found at the following URL and choose a platform under the Cisco Access Products menu: http://cisco.com/public/sw-center/netmgmt/cmtk/mibs.shtml
RFCs
RFCs 1 TitleRFC 3031
Multiprotocol Label Switching Architecture
RFC 3036
LDP Specification
RFC 3037
LDP Applicability
RFC 3478
Graceful Restart Mechanism for Label Distribution Protocol
RFC3815
Definitions of Managed Objects for MPLS LDP
1 Not all supported RFCs are listed.
Technical Assistance
1 For L3VPN Inter-AS option C, LDP may also be required to assign local labels for some BGP prefixes.