This module describes how to implement MPLS
Label Distribution Protocol on
Cisco ASR 9000 Series Aggregation Services Routers.
The 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).
These 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. The command reference guides include the task IDs required for each command. If you suspect user group assignment is preventing you from using a command, contact your AAA administrator for assistance.
You must be running
Cisco IOS XR software.
You must install a composite mini-image and the MPLS package.
You must activate IGP.
We recommend to use a lower session holdtime bandwidth such as neighbors so that a session down occurs before an adjacency-down on a neighbor. Therefore, the following default values for the hello times are listed:
Holdtime is 15 seconds.
Interval is 5 seconds.
For example, the LDP session holdtime can be configured as 30 seconds by using the holdtime command.
Information About Implementing Cisco MPLS LDP
To implement MPLS LDP, you should understand these concepts:
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.
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. LDP Control Protocol. This figure shows the control messages exchanged between LDP peers.
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 responds 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.
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. Setting Up Label Switched Paths .
This figure illustrates the process of label binding exchange for setting up LSPs.
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:
R4 allocates local label L4 for prefix 10.0.0.0 and advertises it to
its neighbors (R3).
R3 allocates local label L3 for prefix 10.0.0.0 and advertises it to
its neighbors (R1, R2, R4).
R1 allocates local label L1 for prefix 10.0.0.0 and advertises it to
its neighbors (R2, R3).
R2 allocates local label L2 for prefix 10.0.0.0 and advertises it to
its neighbors (R1, R3).
R1’s label information base (LIB) keeps local and remote labels
bindings from its neighbors.
R2’s LIB keeps local and remote labels bindings from its neighbors.
R3’s LIB keeps local and remote labels bindings from its neighbors.
R4’s LIB keeps local and remote labels bindings from its neighbors.
Once label bindings are learned, the LDP control plane is ready to setup
the MPLS forwarding plane as shown in
the following figure.
Figure 3. Forwarding Setup. Once label bindings are learned, the LDP control plane is ready to setup
the MPLS forwarding plane as shown in
this figure.
Because R3 is next hop for 10.0.0.0 as notified by the FIB, R1 selects label binding from R3 and installs
forwarding entry (Layer 1, Layer 3).
Because R3 is next hop for 10.0.0.0 (as notified by FIB), R2 selects
label binding from R3 and installs forwarding entry (Layer 2, Layer 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 (Layer 3, Layer 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 (Layer 4); the
outbound packet is forwarded IP-only.
Incoming IP traffic on ingress LSR R1 gets label-imposed and is
forwarded as an MPLS packet with label L3.
Incoming IP traffic on ingress LSR R2 gets label-imposed and is
forwarded as an MPLS packet with label L3.
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.
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.
IP forwarding takes over and forwards the packet onward.
LDP (Label Distribution Protocol) graceful restart provides a control plane mechanism to ensure high
availability and 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 restarts 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
Advertises the maximum time that other peer will wait for this LSR
to reconnect after control channel failure.
Recovery time
Advertises the maximum time that the 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
Specifies whether a restart could restore the preserved (local)
node state for this flag.
Once the graceful restart session parameters are conveyed and the
session is up and running, graceful restart procedures are activated.
When configuring the LDP graceful restart process in a network with multiple links, targeted LDP hello adjacencies with the same neighbor, or both, make sure that graceful restart is activated on the session before any hello adjacency times out in case of neighbor control plane failures. One way of achieving this is by configuring a lower session hold time between neighbors such that session timeout occurs before hello adjacency timeout. It is recommended to set LDP session hold time using the following formula:
This means that for default values of 15 seconds and 5 seconds for link Hello holdtime and interval respectively, session hold time should be set to 30 seconds at most.
For more information about LDP commands, see the Implementing MPLS Label Distribution Protocol module of the
Cisco ASR 9000 Series
Aggregation Services Router MPLS Configuration Guide.
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. Control Plane Failure. This figure illustrates a control plane failure and shows the process and results of a
control plane failure leading to loss of connectivity.
The R4 LSR control plane restarts.
LIB is lost when the control plane restarts.
The forwarding states installed by the R4 LDP control plane are
immediately deleted.
Any in-transit packets flowing from R3 to R4 (still labeled with L4)
arrive at R4.
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.
The R3 LDP peer detects the failure of the control plane channel and
deletes its label bindings from R4.
The R3 control plane stops using outgoing labels from R4 and deletes
the corresponding forwarding state (rewrites), which in turn causes forwarding
disruption.
The established LSPs connected to R4 are terminated at R3, resulting
in broken end-to-end LSPs from R1 to R4.
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 is divided into different phases:
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.
Figure 5. Recovering with Graceful Restart. This figure
illustrates the process of failure recovery using graceful restart.
The router R4 LSR control plane restarts.
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.
Any in-transit packets from R3 to R4 (still labeled with L4) arrive
at R4.
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.
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.
At this point there are no forwarding disruptions.
The peer also starts the neighbor reconnect timer using the
reconnect time value.
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, indicated 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.
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.
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.
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 can allocate and advertise.
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, 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.
The Session Protection figure
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.
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 resynchronize.
Under certain circumstances, it might be required to delay declaration of resynchronization 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.
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 (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 these 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.
L2VPN configuration is not supported on 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 the Configuring
Transports module in
Cisco ASR 9000 Series Aggregation Services Router IP
Addresses and Services Configuration Guide
.
A typical MPLS LDP deployment requires coordination among several global
neighbor routers. Various configuration tasks are required to implement MPLS
LDP
:
In
Cisco IOS XR software,
the router ID is specified as an interface name or IP address. By default, LDP
uses the global router ID (configured by the global router ID process).
Specifies the time that a discovered neighbor is kept without
receipt of any subsequent hello messages. The default value for the seconds
argument is 15 seconds for link hello and 90 seconds for targeted hello
messages.
Selects the period of time between the transmission of consecutive
hello messages. The default value for the seconds argument is 5 seconds for
link hello messages and 10 seconds for targeted hello messages.
Step 6
Use one of the following commands:
end
commit
Example:
RP/0/RSP0/CPU0:router(config-ldp)# end
or
RP/0/RSP0/CPU0:router(config-ldp)# commit
Saves configuration changes.
When you issue the
end command, the system prompts you to
commit changes:
Uncommitted changes found, commit them before exiting(yes/no/cancel)?
[cancel]:
Entering
yes saves configuration changes to the running
configuration file, exits the configuration session, and returns the router to
EXEC mode.
Entering
no exits the configuration session and returns the
router to EXEC mode without committing the configuration changes.
Entering
cancel leaves the router in the current
configuration session without exiting or committing the configuration changes.
Use the
commit command to save the
configuration changes to the running configuration file and remain within the
configuration session.
Perform this task to configure LDP discovery over a link.
Note
There is no need to enable LDP globally.
Before You Begin
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.
In
Cisco IOS XR software, the router ID
is specified as an interface name or IP address. By default, LDP uses the
global router ID (configured by the global router ID process).
Enters interface configuration mode for the LDP protocol.
Interface type must be Tunnel-TE.
Step 5
Use one of the following commands:
end
commit
Example:
RP/0/RSP0/CPU0:router(config-ldp-if)# end
or
RP/0/RSP0/CPU0:router(config-ldp-if)# commit
Saves configuration changes.
When you issue the
end command, the system prompts you to
commit changes:
Uncommitted changes found, commit them before exiting(yes/no/cancel)?
[cancel]:
Entering
yes saves configuration changes to the running
configuration file, exits the configuration session, and returns the router to
EXEC mode.
Entering
no exits the configuration session and returns the
router to EXEC mode without committing the configuration changes.
Entering
cancel leaves the router in the current
configuration session without exiting or committing the configuration changes.
Use the
commit command to save the
configuration changes to the running configuration file and remain within the
configuration session.
Step 6
show mpls ldp discovery
Example:
RP/0/RSP0/CPU0:router# show mpls ldp discovery
(Optional)
Displays the status of the LDP discovery
process. This command, without an interface filter, generates a list of
interfaces over which the LDP discovery process is running. The output
information contains the state of the link (xmt/rcv hellos), local LDP
identifier, the discovered peer’s LDP identifier, and holdtime values.
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.
Before You Begin
These prerequisites are required to configure LDP discovery
for active targeted hellos:
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.
In
Cisco IOS XR software,
the router ID is specified as an interface name or IP address. By default, LDP
uses the global router ID (configured by global router ID process).
Enters interface configuration mode for the LDP protocol.
Step 5
Use one of the following commands:
end
commit
Example:
RP/0/RSP0/CPU0:router(config-ldp)# end
or
RP/0/RSP0/CPU0:router(config-ldp)# commit
Saves configuration changes.
When you issue the
end command, the system prompts you to
commit changes:
Uncommitted changes found, commit them before exiting(yes/no/cancel)?
[cancel]:
Entering
yes saves configuration changes to the running
configuration file, exits the configuration session, and returns the router to
EXEC mode.
Entering
no exits the configuration session and returns the
router to EXEC mode without committing the configuration changes.
Entering
cancel leaves the router in the current
configuration session without exiting or committing the configuration changes.
Use the
commit command to save the
configuration changes to the running configuration file and remain within the
configuration session.
Step 6
show mpls ldp discovery
Example:
RP/0/RSP0/CPU0:router# show mpls ldp discovery
(Optional)
Displays the status of the LDP discovery
process. This command, without an interface filter, generates a list of
interfaces over which the LDP discovery process is running. The output
information contains the state of the link (xmt/rcv hellos), local LDP
identifier, the discovered peer’s LDP identifier, and holdtime values.
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.
Before You Begin
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 defaults to the global router ID.
Default router IDs are subject to change and may cause an unstable discovery.
In
Cisco IOS XR software, the router ID
is specified as an interface name or IP address. By default, LDP uses the
global router ID (configured by global router ID process).
Directs the system to accept targeted hello messages from any
source and activates passive mode on the LSR for targeted hello acceptance.
This command is executed on the receiver node (with respect to
a given MPLS TE tunnel).
You can control the targeted-hello acceptance using the
discovery targeted-hello accept
command.
Step 5
Use one of the following commands:
end
commit
Example:
RP/0/RSP0/CPU0:router(config-ldp)# end
or
RP/0/RSP0/CPU0:router(config-ldp)# commit
Saves configuration changes.
When you issue the
end command, the system prompts you to
commit changes:
Uncommitted changes found, commit them before exiting(yes/no/cancel)?
[cancel]:
Entering
yes saves configuration changes to the running
configuration file, exits the configuration session, and returns the router to
EXEC mode.
Entering
no exits the configuration session and returns the
router to EXEC mode without committing the configuration changes.
Entering
cancel leaves the router in the current
configuration session without exiting or committing the configuration changes.
Use the
commit command to save the
configuration changes to the running configuration file and remain within the
configuration session.
Step 6
show mpls ldp discovery
Example:
RP/0/RSP0/CPU0:router# show mpls ldp discovery
(Optional)
Displays the status of the LDP discovery
process. This command, without an interface filter, generates a list of
interfaces over which the LDP discovery process is running. The output
information contains the state of the link (xmt/rcv hellos), local LDP
identifier, the discovered peer’s LDP identifier, and holdtime values.
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.
Before You Begin
Before configuring label advertisement, enable LDP and configure an
access list.
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.
Provides an alternative transport address for a TCP connection.
Default transport address advertised by an LSR (for TCP
connections) to its peer is the router ID.
Transport address configuration is applied for a given
LDP-enabled interface.
If the interface version of the command is used, the
configured IP address of the interface is passed to its neighbors as the
transport address.
Step 5
exit
Example:
RP/0/RSP0/CPU0:router(config-ldp-if)# exit
Exits the current configuration mode.
Step 6
holdtimeseconds
Example:
RP/0/RSP0/CPU0:router(config-ldp)# holdtime 30
Changes the time for which an LDP session is maintained in the
absence of LDP messages from the peer.
Outgoing keepalive interval is adjusted accordingly (to
make three keepalives in a given holdtime) with a change in session holdtime value.
Session holdtime is also exchanged when the session is
established.
In this example holdtime is set to 30 seconds, which causes
the peer session to timeout in 30 seconds, as well as transmitting outgoing
keepalive messages toward the peer every 10 seconds.
Configures password authentication (using the TCP MD5 option) for
a given neighbor.
Step 8
backoffinitial maximum
Example:
RP/0/RSP0/CPU0:router(config-ldp)# backoff 10 20
Configures the parameters for the LDP backoff mechanism. The LDP
backoff mechanism prevents two incompatibly configured LSRs from engaging in an
unthrottled sequence of session setup failures. If a session setup attempt
fails due to such incompatibility, each LSR delays its next attempt (backs
off), increasing the delay exponentially with each successive failure until the
maximum backoff delay is reached.
Step 9
Use one of the following commands:
end
commit
Example:
RP/0/RSP0/CPU0:router(config-ldp)# end
or
RP/0/RSP0/CPU0:router(config-ldp)# commit
Saves configuration changes.
When you issue the
end command, the system prompts you to
commit changes:
Uncommitted changes found, commit them before exiting(yes/no/cancel)?
[cancel]:
Entering
yes saves configuration changes to the running
configuration file, exits the configuration session, and returns the router to
EXEC mode.
Entering
no exits the configuration session and returns the
router to EXEC mode without committing the configuration changes.
Entering
cancel leaves the router in the current
configuration session without exiting or committing the configuration changes.
Use the
commit command to save the
configuration changes to the running configuration file and remain within the
configuration session.
Step 10
show mpls ldp neighbor
Example:
RP/0/RSP0/CPU0:router# show mpls ldp neighbor
(Optional)
Displays the status of the LDP session with
its neighbors. This command can be run with various filters as well as with the
brief option.
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).
Before You Begin
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.Use one of the following commands:
end
commit
5.
(Optional) show mpls ldp forwarding
6.
(Optional) show mpls forwarding
7.
(Optional) pingip-address
DETAILED STEPS
Command or Action
Purpose
Step 1
configure
Example:
RP/0/RSP0/CPU0:router# configure
Enters global configuration mode.
Step 2
mpls ldp
Example:
RP/0/RSP0/CPU0:router(config)# mpls ldp
Enters MPLS LDP configuration mode.
Step 3
explicit-null
Example:
RP/0/RSP0/CPU0:router(config-ldp)# explicit-null
Causes a router to advertise an explicit null label in situations
where it normally advertises an implicit null label (for example, to enable an
ultimate-hop disposition instead of PHOP).
Step 4
Use one of the following commands:
end
commit
Example:
RP/0/RSP0/CPU0:router(config-ldp)# end
or
RP/0/RSP0/CPU0:router(config-ldp)# commit
Saves configuration changes.
When you issue the
end command, the system prompts you to
commit changes:
Uncommitted changes found, commit them before exiting(yes/no/cancel)?
[cancel]:
Entering
yes saves configuration changes to the running
configuration file, exits the configuration session, and returns the router to
EXEC mode.
Entering
no exits the configuration session and returns the
router to EXEC mode without committing the configuration changes.
Entering
cancel leaves the router in the current
configuration session without exiting or committing the configuration changes.
Use the
commit command to save the
configuration changes to the running configuration file and remain within the
configuration session.
Step 5
show mpls ldp forwarding
Example:
RP/0/RSP0/CPU0:router# show mpls ldp forwarding
(Optional)
Displays the MPLS LDP view of installed
forwarding states (rewrites).
Step 6
show mpls forwarding
Example:
RP/0/RSP0/CPU0:router# show mpls forwarding
(Optional)
Displays a global view of all MPLS installed
forwarding states (rewrites) by various applications (LDP, TE, and static).
Step 7
pingip-address
Example:
RP/0/RSP0/CPU0:router# ping 192.168.2.55
(Optional)
Checks for connectivity to a particular IP
address (going through MPLS LSP as shown in the
show mpls forwarding command).
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.
Before You Begin
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.
Specifies the length of time that forwarding
can keep LDP-installed forwarding states and rewrites, and specifies wh en the
LDP control plane restarts.
After restart of the control plane, when the forwarding state
holdtime expires, any previously installed LDP forwarding state or rewrite that
is not yet refreshed is deleted from the forwarding.
Recovery time sent after restart is computed as the
current remaining value of the forwarding state hold timer.
Specifies the length of time a neighbor
waits before restarting the node to reconnect before declaring an earlier
graceful restart session as down. This command is used to start a timer on the
peer (upon a neighbor restart). This timer is referred to as Neighbor Liveness
timer.
Step 8
Use one of the following commands:
end
commit
Example:
RP/0/RSP0/CPU0:router(config-ldp)# end
or
RP/0/RSP0/CPU0:router(config-ldp)# commit
Saves configuration changes.
When you issue the
end command, the system prompts you to
commit changes:
Uncommitted changes found, commit them before exiting(yes/no/cancel)?
[cancel]:
Entering
yes saves configuration changes to the running
configuration file, exits the configuration session, and returns the router to
EXEC mode.
Entering
no exits the configuration session and returns the
router to EXEC mode without committing the configuration changes.
Entering
cancel leaves the router in the current
configuration session without exiting or committing the configuration changes.
Use the
commit command to save the
configuration changes to the running configuration file and remain within the
configuration session.
Step 9
show mpls ldp parameters
Example:
RP/0/RSP0/CPU0:router# show mpls ldp parameters
(Optional)
Displays all the current MPLS LDP
parameters.
Step 10
show mpls ldp neighbor
Example:
RP/0/RSP0/CPU0:router# show mpls ldp neighbor
(Optional)
Displays the status of the LDP session with
its neighbors. This command can be run with various filters as well as with the
brief option.
Step 11
show mpls ldp graceful-restart
Example:
RP/0/RSP0/CPU0:router# show mpls ldp graceful-restart
(Optional)
Displays the status of the LDP graceful
restart feature. The output of this command not only shows states of different
graceful restart timers, but also a list of graceful restart neighbors, their
state, and reconnect count.
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.Use one of the following commands:
end
commit
DETAILED STEPS
Command or Action
Purpose
Step 1
configure
Example:
RP/0/RSP0/CPU0:router# configure
Enters the configuration mode.
Step 2
mpls ldp
Example:
RP/0/RSP0/CPU0:router(config)# mpls ldp
Enters the MPLS LDP configuration mode.
Step 3
label accept for
prefix-acl from
ip-address
Example:
RP/0/RSP0/CPU0:router(config-ldp)# label accept for pfx_acl_1 from 192.168.1.1RP/0/RSP0/CPU0:router(config-ldp)# label accept for pfx_acl_2 from 192.168.2.2
Configures inbound label acceptance for prefixes specified by
prefix-acl from neighbor (as specified by its IP address).
Step 4
Use one of the following commands:
end
commit
Example:
RP/0/RSP0/CPU0:router(config-ldp)# end
or
RP/0/RSP0/CPU0:router(config-ldp)# commit
Saves configuration changes.
When you issue the
end command, the system prompts you to
commit changes:
Uncommitted changes found, commit them before exiting(yes/no/cancel)?
[cancel]:
Entering
yes saves configuration changes to the running
configuration file, exits the configuration session, and returns the router to
EXEC mode.
Entering
no exits the configuration session and returns the
router to EXEC mode without committing the configuration changes.
Entering
cancel leaves the router in the current
configuration session without exiting or committing the configuration changes.
Use the
commit command to save the
configuration changes to the running configuration file and remain within the
configuration session.
Enables LDP auto-configuration on the specified interface. The LDP
configurable limit for maximum number of interfaces does not apply to IGP
auto-config interfaces.
Step 6
Use one of the following commands:
end
commit
Example:
RP/0/RSP0/CPU0:router(config-ospf-ar-if)# end
or
RP/0/RSP0/CPU0:router(config-ospf-ar-if)# commit
Saves configuration changes.
When you issue the
end command, the system prompts you to
commit changes:
Uncommitted changes found, commit them before exiting(yes/no/cancel)?
[cancel]:
Entering
yes saves configuration changes to the running
configuration file, exits the configuration session, and returns the router to
EXEC mode.
Entering
no exits the configuration session and returns the
router to EXEC mode without committing the configuration changes.
Entering
cancel leaves the router in the current
configuration session without exiting or committing the configuration changes.
Use the
commit command to save the
configuration changes to the running configuration file and remain within the
configuration session.
Configuring Label Advertisement (Outbound Filtering): Example
The example shows how to configure LDP label advertisement
control.
mpls ldp
label
advertise
disable
for pfx_acl_1 to peer_acl_1
for pfx_acl_2 to peer_acl_2
for pfx_acl_3
interface POS 0/1/0/0
interface POS 0/2/0/0
!
!
!
ipv4 access-list pfx_acl_1
10 permit ip host 1.0.0.0 any
!
ipv4 access-list pfx_acl_2
10 permit ip host 2.0.0.0 any
!
ipv4 access-list peer_acl_1
10 permit ip host 1.1.1.1 any
20 permit ip host 1.1.1.2 any
!
ipv4 access-list peer_acl_2
10 permit ip host 2.2.2.2 any
!
show mpls ldp binding
For additional information related to Implementing MPLS Label
Distribution Protocol, refer to the following references:
Related Documents
Related Topic
Document Title
LDP commands
on Cisco ASR 9000 Series Router
MPLS Label Distribution Protocol Commands on
Cisco ASR 9000 Series Router
module in the Cisco ASR 9000 Series Aggregation
Services Router MPLS Command Reference
Getting started material
Cisco ASR 9000 Series Aggregation Services Router Getting Started Guide
Standards
Standards
Title
No new or modified standards are supported by this feature,
and support for existing standards has not been modified by this feature.
Graceful Restart Mechanism for Label Distribution Protocol
RFC 3815
Definitions of Managed Objects for MPLS LDP
RFC 5036
Label Distribution and Management
Downstream on Demand Label Advertisement
RFC 5286
Basic Specification for IP Fast Reroute: Loop-Free Alternates
Technical Assistance
Description
Link
The Cisco Technical Support website contains thousands of
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.