Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
365 views32 pages

MPLS Label Distribution Protocol (LDP)

okuj hnj
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
365 views32 pages

MPLS Label Distribution Protocol (LDP)

okuj hnj
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 32

MPLS Label Distribution Protocol (LDP)

Multiprotocol Label Switching (MPLS) Label Distribution Protocol (LDP) enables peer label switch
routers (LSRs) in an MPLS network to exchange label binding information for supporting hop-by-hop
forwarding in an MPLS network. This module explains the concepts related to MPLS LDP and describes
how to configure MPLS LDP in a network.
History for the MPLS LDP Feature

Release

Modification

12.0(10)ST

This feature was introduced in Cisco IOS Release 12.0(10)ST,


incorporating a new set of Multiprotocol Label Switching (MPLS) CLI
commands implemented for use with Cisco routers and switches. The CLI
commands in this release reflected MPLS command syntax and
terminology, thus facilitating the orderly transition from a network using
the Tag Distribution Protocol (TDP) to one using the Label Distribution
Protocol (LDP).

12.0(14)ST

This feature was integrated into Cisco IOS Release 12.0(14)ST. This
release introduced several new MPLS CLI commands, provided support
for MPLS VPNs by means of a new vrf vpn-name parameter in certain
existing commands, and modified other commands to ensure consistent
interpretation of associated prefix-access-list arguments by Cisco IOS
software.

12.1(2)T

This feature was integrated into Cisco IOS 12.1(2)T. Also, the debug mpls
atm-ldp api, debug mpls atm-ldp routes, and debug mpls atm-ldp
states commands were modified.

12.1(8a)E

This feature was integrated into Cisco IOS Release 12.1(8a)E.

12.2(2)T

This feature was integrated into Cisco IOS Release 12.2(2)T.

12.2(4)T

This feature was integrated into Cisco IOS Release 12.2(4)T. Also, support
was added for Cisco MGX 8850 and MGX 8950 switches equipped with a
Cisco MGX RPM-PR card, and the VPI range in the show mpls atm-ldp
bindings and show mpls ip binding commands was changed to 4095.

12.2(8)T

This feature was integrated into Cisco IOS Release 12.2(8)T. This release
introduced the debug mpls atm-ldp failure command.

12.0(21)ST

This feature was integrated into Cisco IOS Release 12.0(21)ST. This
release introduced the mpls ldp neighbor implicit-withdraw command.

Corporate Headquarters:
Cisco Systems, Inc., 170 West Tasman Drive, San Jose, CA 95134-1706 USA

2005 Cisco Systems, Inc. All rights reserved.

MPLS Label Distribution Protocol (LDP)


Contents

12.0(22)S

This feature was integrated into Cisco IOS Release 12.0(22)S. The mpls
ldp neighbor targeted-session command and the interface keyword for
the mpls ldp advertise-labels command were added.

12.0(23)S

This feature was integrated into Cisco IOS Release 12.0(23)S. Default
values for the mpls ldp discovery command holdtime and interval
keywords were changed.

12.2(13)T

This feature was integrated into Cisco IOS Release 12.2(13)T.

12.4(3)

The default MPLS label distribution protocol changed from TDP to LDP.
If no protocol is explicitly configured by the mpls label protocol
command, LDP is the default label distribution protocol. See the mpls
label protocol (global configuration) command for more information.
Note

Use caution when upgrading the image on a router that uses TDP.
Ensure that the TDP sessions are established when the new image
is loaded. You can accomplish this by issuing the global
configuration command mpls label protocol tdp. Issue this
command and save it to the startup configuration before loading
the new image. Alternatively, you can enter the command and save
the running configuration immediately after loading the new
image.

LDP configuration commands are saved by using the MPLS form of the
command rather than the tag-switching form. Previously, commands were
saved by using the tag-switching form of the command, for backward
compatibility. See the Saving Configurations: MPLS/Tag Switching
Commands section on page 13 for more information.
12.4(5)

The vrf vrf-name keyword/argument pair was added for the mpls ldp
router-id command to allow you to associate the LDP router ID with a
nondefault VRF.

Finding Support Information for Platforms and Cisco IOS Software Images

Use Cisco Feature Navigator to find information about platform support and Cisco IOS software image
support. Access Cisco Feature Navigator at http://www.cisco.com/go/fn. You must have an account on
Cisco.com. If you do not have an account or have forgotten your username or password, click Cancel at
the login dialog box and follow the instructions that appear.

Contents

Prerequisites for MPLS LDP, page 3

Restrictions for MPLS LDP, page 3

Information About MPLS LDP, page 3

How to Configure MPLS LDP, page 6

MPLS LDP Configuration Examples, page 22

Command Reference, page 27

Cisco IOS Release 12.4(5)

MPLS Label Distribution Protocol (LDP)


Prerequisites for MPLS LDP

Prerequisites for MPLS LDP


Label switching on a router requires that Cisco Express Forwarding (CEF) be enabled on that router.
Refer to the chapters on CEF in the following documents for configuration information:

Cisco IOS IP Switching Configuration Guide, Release 12.4

Cisco IOS IP Switching Command Reference, Release 12.4

Restrictions for MPLS LDP


Not all MPLS LDP features and platforms are supported in every release. For information about platform
and feature support, see Cisco Feature Navigator at http://www.cisco.com/go/fn.

Information About MPLS LDP


To configure MPLS LDP, you should understand the following concepts:

Introduction to MPLS LDP, page 3

MPLS LDP Functional Overview, page 3

Introduction to LDP Sessions, page 4

Introduction to LDP Label Bindings, Label Spaces, and LDP Identifiers, page 5

Introduction to MPLS LDP


MPLS LDP provides the means for LSRs to request, distribute, and release label prefix binding
information to peer routers in a network. LDP enables LSRs to discover potential peers and to establish
LDP sessions with those peers for the purpose of exchanging label binding information.
MPLS LDP enables one LSR to inform another LSR of the label bindings it has made. Once a pair of
routers communicate the LDP parameters, they establish a label-switched path (LSP). MPLS LDP
enables LSRs to distribute labels along normally routed paths to support MPLS forwarding. This method
of label distribution is also called hop-by-hop forwarding. With IP forwarding, when a packet arrives at
a router the router looks at the destination address in the IP header, performs a route lookup, and
forwards the packet to the next hop. With MPLS forwarding, when a packet arrives at a router the router
looks at the incoming label, looks up the label in a table, and then forwards the packet to the next hop.
MPLS LDP is useful for applications that require hop-by-hop forwarding, such as MPLS VPNs.

MPLS LDP Functional Overview


Cisco MPLS LDP provides the building blocks for MPLS-enabled applications, such as MPS Virtual
Private Networks (VPNs).
LDP provides a standard methodology for hop-by-hop, or dynamic label, distribution in an MPLS
network by assigning labels to routes that have been chosen by the underlying Interior Gateway Protocol
(IGP) routing protocols. The resulting labeled paths, called label switch paths (LSPs), forward label
traffic across an MPLS backbone to particular destinations. These capabilities enable service providers
to implement MPLS-based IP VPNs and IP+ATM services across multivendor MPLS networks.

Cisco IOS Release 12.4(5)

MPLS Label Distribution Protocol (LDP)


Information About MPLS LDP

From an historical and functional standpoint, LDP is a superset of the Cisco prestandard Tag Distribution
Protocol (TDP), which also supports MPLS forwarding along normally routed paths. For those features
that LDP and TDP share in common, the pattern of protocol exchanges between network routing
platforms is identical. The differences between LDP and TDP for those features supported by both
protocols are largely embedded in their respective implementation details, such as the encoding of
protocol messages.
This release of LDP, which supports both the LDP and TDP protocols, provides the means for
transitioning an existing network from a TDP environment to an LDP environment. Thus, you can run
LDP and TDP simultaneously on any router platform. The label distribution protocol that you select can
be configured on a per-interface basis for directly connected neighbors and on a per-session basis for
nondirectly connected (targeted) neighbors. In addition, an LSP across an MPLS network can be
supported by LDP on some hops and by TDP on other hops.

Introduction to LDP Sessions


When you enable MPLS LDP, the LSRs send out messages to try to find other LSRs with which they can
create LDP sessions. The following sections explain the differences between directly connected LDP
sessions and nondirectly connected LDP sessions.

Directly Connected MPLS LDP Sessions


If an LSR is one hop from its neighbor, it is directly connected to its neighbor. The LSR sends out LDP
link Hello messages as User Datagram Protocol (UDP) packets to all the routers on the subnet
(multicast). A neighboring LSR may respond to the link Hello message, allowing the two routers to
establish an LDP session. This is called basic discovery.
To initiate an LDP session between routers, the routers determine which router will take the active role
and which router will take the passive role. The router that takes the active role establishes the LDP TCP
connection session and initiates the negotiation of the LDP session parameters. To determine the roles,
the two routers compare their transport addresses. The router with the higher IP address takes the active
role and establishes the session.
After the LDP TCP connection session is established, the LSRs negotiate the session parameters,
including the method of label distribution to be used. Two methods are available:

Downstream Unsolicited: An LSR advertises label mappings to peers without being asked to.

Downstream on Demand: An LSR advertises label mappings to a peer only when the peer asks for
them.

For information about creating LDP sessions, see the Enabling Directly Connected LDP Sessions
section on page 7.

Nondirectly Connected MPLS LDP Sessions


If the LSR is more than one hop from its neighbor, it is nondirectly connected to its neighbor. For these
nondirectly connected neighbors, the LSR sends out a targeted Hello message as a UDP packet, but as a
unicast message specifically addressed to that LSR. The nondirectly connected LSR responds to the
Hello message and the two routers begin to establish an LDP session. This is called extended discovery.
An MPLS LDP targeted session is a label distribution session between routers that are not directly
connected. When you create an MPLS traffic engineering tunnel interface, you need to establish a label
distribution session between the tunnel headend and the tailend routers. You establish nondirectly
connected MPLS LDP sessions by enabling the transmission of targeted Hello messages.

Cisco IOS Release 12.4(5)

MPLS Label Distribution Protocol (LDP)


Information About MPLS LDP

You can use the mpls ldp neighbor targeted command to set up a targeted session when other means
of establishing targeted sessions do not apply, such as configuring mpls ip on a traffic engineering (TE)
tunnel or configuring Any Transport over MPLS (AToM) virtual circuits (VCs). For example, you can
use this command to create a targeted session between directly connected MPLS label switch routers
(LSRs) when MPLS label forwarding convergence time is an issue.
The mpls ldp neighbor targeted command can improve label convergence time for directly connected
neighbor LSRs when the link(s) directly connecting them are down. When the links between the
neighbor LSRs are up, both the link and targeted Hellos maintain the LDP session. If the links between
the neighbor LSRs go down, the targeted Hellos maintain the session, allowing the LSRs to retain labels
learned from each other. When a link directly connecting the LSRs comes back up, the LSRs can
immediately reinstall labels for forwarding use without having to reestablish their LDP session and
exchange labels.
The exchange of targeted Hello messages between two nondirectly connected neighbors can occur in
several ways, including the following:

Router 1 sends targeted Hello messages carrying a response request to Router 2. Router 2 sends
targeted Hello messages in response if its configuration permits. In this situation, Router 1 is
considered to be active and Router 2 is considered to be passive.

Router 1 and Router 2 both send targeted Hello messages to each other. Both routers are considered
to be active. Both, one, or neither router can also be passive, if they have been configured to respond
to requests for targeted Hello messages from each other.

The default behavior of an LSR is to ignore requests from other LSRs that send targeted Hello messages.
You can configure an LSR to respond to requests for targeted Hello messages by issuing the mpls ldp
discovery targeted-hello accept command.
The active LSR mandates the protocol that is used for a targeted session. The passive LSR uses the
protocol of the received targeted Hello messages.
For information about creating MPLS LDP targeted sessions, see the Establishing Nondirectly
Connected MPLS LDP Sessions section on page 10.

Introduction to LDP Label Bindings, Label Spaces, and LDP Identifiers


An LDP label binding is an association between a destination prefix and a label. The label used in a label
binding is allocated from a set of possible labels called a label space.
LDP supports two types of label spaces:

Interface-specificAn interface-specific label space uses interface resources for labels. For
example, label-controlled ATM (LC-ATM) interfaces use virtual path identifiers/virtual circuit
identifiers (VPIs/VCIs) for labels. Depending on its configuration, an LDP platform may support
zero, one, or more interface-specific label spaces.

Platform-wideAn LDP platform supports a single platform-wide label space for use by interfaces
that can share the same labels. For Cisco platforms, all interface types, except LC-ATM, use the
platform-wide label space.

LDP uses a 6-byte quantity called an LDP Identifier (or LDP ID) to name label spaces. The LDP ID is
made up of the following components:

The first four bytes, called the LPD router ID, identify the LSR that owns the label space.

The last two bytes, called the local label space ID, identify the label space within the LSR. For the
platform-wide label space, the last two bytes of the LDP ID are always both 0.

The LDP ID takes the following form:

Cisco IOS Release 12.4(5)

MPLS Label Distribution Protocol (LDP)


How to Configure MPLS LDP

<LDP router ID> : <local label space ID>


The following are examples of LPD IDs:

172.16.0.0:0

192.168.0.0:3

The router determines the LDP router ID as follows, if the mpls ldp router-id command is not executed,
1.

The router examines the IP addresses of all operational interfaces.

2.

If these IP addresses include loopback interface addresses, the router selects the largest loopback
address as the LDP router ID.

3.

Otherwise, the router selects the largest IP address pertaining to an operational interface as the LDP
router ID.

The normal (default) method for determining the LDP router ID may result in a router ID that is not
usable in certain situations. For example, the router might select an IP address as the LDP router ID that
the routing protocol cannot advertise to a neighboring router. The mpls ldp router-id command allows
you to specify the IP address of an interface as the LDP router ID. Make sure the specified interface is
operational so that its IP address can be used as the LDP router ID.
When you issue the mpls ldp router-id command without the force keyword, the router select selects
the IP address of the specified interface (provided that the interface is operational) the next time it is
necessary to select an LDP router ID, which is typically the next time the interface is shut down or the
address is configured.
When you issue the mpls ldp router-id command with the force keyword, the effect of the mpls ldp
router-id command depends on the current state of the specified interface:

If the interface is up (operational) and if its IP address is not currently the LDP router ID, the LDP
router ID changes to the IP address of the interface. This forced change in the LDP router ID tears
down any existing LDP sessions, releases label bindings learned via the LDP sessions, and interrupts
MPLS forwarding activity associated with the bindings.

If the interface is down (not operational) when the mpls ldp router-id force command is issued,
when the interface transitions to up, the LDP router ID changes to the IP address of the interface.
This forced change in the LDP router ID tears down any existing LDP sessions, releases label
bindings learned via the LDP sessions, and interrupts MPLS forwarding activity associated with the
bindings.

How to Configure MPLS LDP


This section contains the following procedures:

Enabling Directly Connected LDP Sessions, page 7 (required)

Establishing Nondirectly Connected MPLS LDP Sessions, page 10 (optional)

Saving Configurations: MPLS/Tag Switching Commands, page 13 (optional)

Specifying the LDP Router ID, page 13 (optional)

Preserving QoS Settings with MPLS LDP Explicit Null, page 15 (optional)

Protecting Data Between LDP Peers with MD5 Authentication, page 19 (optional)

Cisco IOS Release 12.4(5)

MPLS Label Distribution Protocol (LDP)


How to Configure MPLS LDP

Enabling Directly Connected LDP Sessions


This procedure explains how to configure MPLS LDP sessions between two directly connected routers.

SUMMARY STEPS
1.

enable

2.

configure terminal

3.

mpls ip

4.

mpls label protocol {ldp | tdp | both}

5.

interface type number

6.

mpls ip

7.

exit

8.

exit

9.

show mpls interfaces [interface] [detail]

10. show mpls ldp discovery [all | vrf vpn-name] [detail]


11. show mpls ldp neighbor [[vrf vpn-name] [address | interface] [detail] | [all]]

DETAILED STEPS

Step 1

Command or Action

Purpose

enable

Enables privileged EXEC mode.

Enter your password if prompted.

Example:
Router> enable

Step 2

configure terminal

Enters global configuration mode.

Example:
Router# configure terminal

Step 3

mpls ip

Configures MPLS hop-by-hop forwarding globally.

The mpls ip command is enabled by default; you do not


have to specify this command.

Globally enabling MPLS forwarding does not enable it


on the router interfaces. You must enable MPLS
forwarding on the interfaces as well as for the router.

Example:
Router(config)# mpls ip

Step 4

mpls label protocol {ldp | tdp | both}

Example:
Router(config)# mpls label protocol ldp

Configures the use of LDP on all interfaces. LDP is the


default.

If you set all interfaces globally to LDP, you can


override specific interfaces with either the tdp or both
keyword by specifying the command in interface
configuration mode.

Cisco IOS Release 12.4(5)

MPLS Label Distribution Protocol (LDP)


How to Configure MPLS LDP

Step 5

Command or Action

Purpose

Router(config)# interface type number

Specifies the interface to be configured and enters interface


configuration mode.

Example:
Router(config)# interface ethernet3/0

Step 6

mpls ip

Configures MPLS hop-by-hop forwarding on the interface.

Example:

You must enable MPLS forwarding on the interfaces as


well as for the router.

Router(config-if)# mpls ip

Step 7

Exits interface configuration mode and enters global


configuration mode.

exit
Example:
Router(config-if)# exit

Step 8

Exits global configuration mode and enters privileged


EXEC mode.

exit

Example:
Router(config)# exit

Step 9

show mpls interfaces [interface] [detail]

Verifies that the interfaces have been configured to use LDP,


TDP, or both.

Example:
Router# show mpls interfaces

Step 10

show mpls ldp discovery [all | vrf vpn-name]


[detail]

Verifies that the interface is up and is sending Discovery


Hello messages.

Example:
Router# show mpls ldp discovery

Step 11

show mpls ldp neighbor [[vrf vpn-name] [address


| interface] [detail] | [all]]

Example:
Router# show mpls ldp neighbor

Cisco IOS Release 12.4(5)

Displays the status of LDP sessions.

MPLS Label Distribution Protocol (LDP)


How to Configure MPLS LDP

Examples
The following show mpls interfaces command verifies that interfaces Ethernet 1/0 and 1/1 have been
configured to use LDP:
Router# show mpls interfaces
Interface
Ethernet3/0
Ethernet3/1

IP
Yes (ldp)
Yes

Tunnel
No
No

BGP Static Operational


No No
Yes
No No
Yes

The following show mpls ldp discovery command verifies that the interface is up and is sending LDP
Discovery Hello messages (as opposed to TDP Hello messages):
Router# show mpls ldp discovery
Local LDP Identifier:
172.16.12.1:0
Discovery Sources:
Interfaces:
Ethernet3/0 (ldp): xmit

The following example shows that the LDP session between routers was successfully established:
Router# show mpls ldp neighbor
Peer LDP Ident: 10.1.1.2:0; Local LDP Ident 10.1.1.1:0
TCP connection: 10.1.1.2.18 - 10.1.1.1.66
State: Oper; Msgs sent/rcvd: 12/11; Downstream
Up time: 00:00:10
LDP discovery sources:
FastEthernet1/0, Src IP addr: 10.20.10.2
Addresses bound to peer LDP Ident:
10.1.1.2
10.20.20.1
10.20.10.2

For examples on configuring directly connected LDP sessions, see the Configuring Directly Connected
MPLS LDP Sessions: Example section on page 22.

Cisco IOS Release 12.4(5)

MPLS Label Distribution Protocol (LDP)


How to Configure MPLS LDP

Establishing Nondirectly Connected MPLS LDP Sessions


This section explains how to configure nondirectly connected MPLS LDP sessions, which enable you to
establish an LDP session between routers that are not directly connected.

Prerequisites

MPLS requires CEF.

You must configure the routers at both ends of the tunnel to be active or enable one router to be
passive with the mpls ldp discovery targeted-hello accept command.

1.

enable

2.

configure terminal

3.

mpls ip

4.

mpls label protocol {ldp | tdp | both}

5.

interface tunnelnumber

6.

tunnel destination ip-address

7.

mpls ip

8.

exit

9.

exit

SUMMARY STEPS

10. show mpls ldp discovery [all | vrf vpn-name] [detail]

DETAILED STEPS

Step 1

Command or Action

Purpose

enable

Enables privileged EXEC mode.

Enter your password if prompted.

Example:
Router> enable

Step 2

configure terminal

Enters global configuration mode.

Example:
Router# configure terminal

Step 3

mpls ip

Configures MPLS hop-by-hop forwarding globally.

The mpls ip command is enabled by default; you do not


have to specify this command.

Globally enabling MPLS forwarding does not enable it


on the router interfaces. You must enable MPLS
forwarding on the interfaces as well as for the router.

Example:
Router(config)# mpls ip

Cisco IOS Release 12.4(5)

10

MPLS Label Distribution Protocol (LDP)


How to Configure MPLS LDP

Step 4

Command or Action

Purpose

mpls label protocol {ldp | tdp | both}

Configures the use of LDP on all interfaces. LDP is the


default.

Example:

Router(config)# mpls label protocol ldp

Step 5

interface tunnelnumber

If you set all interfaces globally to LDP, you can


override specific interfaces with either the tdp or both
keyword by specifying the command in interface
configuration mode.

Configures a tunnel interface and enters interface


configuration mode.

Example:
Router(config)# interface tunnel1

Step 6

tunnel destination ip-address

Assigns an IP address to the tunnel interface.

Example:
Router(config-if)# tunnel destination
172.16.1.1

Step 7

mpls ip

Configures MPLS hop-by-hop forwarding on the interface.

Example:

You must enable MPLS forwarding on the interfaces as


well as for the router.

Router(config-if)# mpls ip

Step 8

exit

Exits interface configuration mode and enters global


configuration mode.

Example:
Router(config-if)# exit

Step 9

exit

Exits global configuration mode and enters privileged


EXEC mode.

Example:
Router(config)# exit

Step 10

show mpls ldp discovery [all | vrf vpn-name]


[detail]

Verifies that the interface is up and is sending Discovery


Hello messages.

Example:
Router# show mpls ldp discovery

Cisco IOS Release 12.4(5)

11

MPLS Label Distribution Protocol (LDP)


How to Configure MPLS LDP

Example
The following example shows the output of the show mpls ldp discovery command for a nondirectly
connected LDP session.
Router# show mpls ldp discovery
Local LDP Identifier:
172.16.0.0:0
Discovery Sources:
Interfaces:
POS2/0 (ldp): xmit/recv
LDP Id: 172.31.255.255:0
Tunnel1 (ldp): Targeted -> 192.168.255.255
Targeted Hellos:
172.16.0.0 -> 192.168.255.255 (ldp): active, xmit/recv
LDP Id: 192.168.255.255:0
172.16.0.0 -> 192.168.0.0 (tdp): passive, xmit/recv
TDP Id: 192.168.0.0:0

This command output indicates that:

The local LSR (172.16.0.0) sent LDP link Hello messages on interface POS2/0 and discovered
neighbor 172.31.255.255.

The local LSR sent LDP targeted Hello messages associated with interface Tunnel1 to target
192.168.255.255. The LSR was configured to use LDP.

The local LSR is active for targeted discovery activity with 192.168.255.255; this means that the
targeted Hello messages it sends to 192.168.255.255 carry a response request. The local LSR was
configured to have an LDP session with the nondirectly connected LSR 192.168.255.255.

The local LSR is not passive from the discovery activity with 192.168.255.255 for one of the
following reasons:
The targeted Hello messages it receives from 192.168.255.255 do not carry a response request.
The local LSR has not been configured to respond to such requests.

The local LSR sent TDP directed Hello messages to the target LSR 192.168.0.0. This LSR uses TDP
because the Hello messages received from the target LSR 192.168.0.0 were TDP directed Hello
messages.

The local LSR is passive in discovery activity with LSR 192.168.0.0. This means that the directed
Hello messages it receives from LSR 192.168.0.0 carry a response request and that the local LSR
has been configured with the mpls ldp discovery targeted-hello accept command to respond to
such requests from LSR 192.168.0.0.

The local LSR is not active in discovery activity with LSR 192.168.0.0, because no application that
requires an LDP session with LSR 192.168.0.0 has been configured on the local LSR.

For examples of configuring LDP targeted sessions, see the Establishing Nondirectly Connected MPLS
LDP Sessions: Example section on page 24.

Cisco IOS Release 12.4(5)

12

MPLS Label Distribution Protocol (LDP)


How to Configure MPLS LDP

Saving Configurations: MPLS/Tag Switching Commands


In releases of Cisco IOS software prior to 12.4(2)T, some MPLS commands had both a tag-switching
version and an MPLS version. For example, the two commands tag-switching ip and mpls ip were the
same. To support backward compatibility, the tag-switching form of the command was written to the
saved configuration.
Starting in Cisco IOS Release 12.4(2)T, the MPLS form of the command is written to the saved
configuration.
For example, if an LC-ATM interface is configured using the following commands, which have both a
tag-switching form and an MPLS form:
Router(config)# interface ATM3/0.1 tag-switching
Router(config-if)# ip unnumbered Loopback0
router(config-if)# tag-switching ip
Router(config-if)# mpls label protocol ldp

After you enter these commands and save this configuration or display the running configuration with
the show running command, the commands saved or displayed appear as follows:
interface ATM3/0.1 mpls
ip unnumbered Loopback0
mpls ip
mpls label protocol ldp

Specifying the LDP Router ID


The mpls ldp router-id command allows you to establish the IP address of an interface as the LDP router
ID.
The following steps describe the normal process for determining the LDP router ID:
1.

The router considers all the IP addresses of all operational interfaces.

2.

If these addresses include loopback interface addresses, the router selects the largest loopback
address. Configuring a loopback address helps ensure a stable LDP ID for the router, because the
state of loopback addresses does not change. However, configuring a loopback interface and
IP address on each router is not required.
The loopback IP address does not become the router ID of the local LDP ID under the following
circumstances:
If the loopback interface has been explicitly shut down.
If the mpls ldp router-id command specifies that a different interface should be used as the

LDP router ID.


If you use a loopback interface, make sure that the IP address for the loopback interface is
configured with a /32 network mask. In addition, make sure that the routing protocol in use is
configured to advertise the corresponding /32 network.
3.

Otherwise, the router selects the largest interface address.

The router might select a router ID that is not usable in certain situations. For example, the router might
select an IP address that the routing protocol cannot advertise to a neighboring router.
The router implements the router ID the next time it is necessary to select an LDP router ID. The effect
of the command is delayed until the next time it is necessary to select an LDP router ID, which is
typically the next time the interface is shut down or the address is deconfigured.

Cisco IOS Release 12.4(5)

13

MPLS Label Distribution Protocol (LDP)


How to Configure MPLS LDP

If you use the force keyword with the mpls ldp router-id command, the router ID takes effect more
quickly. However, implementing the router ID depends on the current state of the specified interface:

If the interface is up (operational) and its IP address is not currently the LDP router ID, the LDP
router ID is forcibly changed to the IP address of the interface. This forced change in the LDP router
ID tears down any existing LDP sessions, releases label bindings learned via the LDP sessions, and
interrupts MPLS forwarding activity associated with the bindings.

If the interface is down, the LDP router ID is forcibly changed to the IP address of the interface when
the interface transitions to up. This forced change in the LDP router ID tears down any existing LDP
sessions, releases label bindings learned via the LDP sessions, and interrupts MPLS forwarding
activity associated with the bindings.

Prerequisites
Make sure the specified interface is operational before assigning it as the LDP router ID.

SUMMARY STEPS
1.

enable

2.

configure terminal

3.

mpls ip

4.

mpls label protocol {ldp | tdp | both}

5.

mpls ldp router-id interface [force]

6.

exit

7.

show mpls ldp discovery [all | detail |vrf vpn-name]

DETAILED STEPS

Step 1

Command or Action

Purpose

enable

Enables privileged EXEC mode.

Enter your password if prompted.

Example:
Router> enable

Step 2

configure terminal

Enters global configuration mode.

Example:
Router# configure terminal

Step 3

mpls ip

Configures MPLS hop-by-hop forwarding globally.

The mpls ip command is enabled by default; you do not


have to specify this command.

Globally enabling MPLS forwarding does not enable it


on the router interfaces. You must enable MPLS
forwarding on the interfaces as well as for the router.

Example:
Router(config)# mpls ip

Cisco IOS Release 12.4(5)

14

MPLS Label Distribution Protocol (LDP)


How to Configure MPLS LDP

Step 4

Command or Action

Purpose

mpls label protocol {ldp | tdp | both}

Configures the use of LDP on all interfaces. LDP is the


default.

Example:
Router(config)# mpls label protocol ldp

Step 5

mpls ldp router-id interface [force]

If you set all interfaces globally to LDP, you can


override specific interfaces with either the tdp or both
keyword by specifying the command in interface
configuration mode.

Specifies the preferred interface for determining the LDP


router ID.

Example:
Router(config)# mpls ldp router-id pos2/0/0

Step 6

Exits global configuration mode and enters privileged


EXEC mode.

exit

Example:
Router(config)# exit

Step 7

show mpls ldp discovery [all | detail |vrf


vpn-name]

Displays the LDP identifier for the local router.

Example:
Router# show mpls ldp discovery

Example
The following example assigns interface pos2/0/0 as the LDP router ID:
Router> enable
Router# configure terminal
Router(config)# mpls ip
Router(config)# mpls label protocol ldp
Router(config)# mpls ldp router-id pos2/0/0 force

The following example displays the LDP router ID (10.15.15.15):


Router# show mpls ldp discovery
Local LDP Identifier:
10.15.15.15:0
Discovery Sources:
Interfaces:
Ethernet4 (ldp): xmit/recv
LDP Id: 10.14.14.14:0

Preserving QoS Settings with MPLS LDP Explicit Null


Normally, LDP advertises an Implicit Null label for directly connected routes. The Implicit Null label
causes the second last (penultimate) label switched router (LSR) to remove the MPLS header from the
packet. In this case, the penultimate LSR and the last LSR do not have access to the quality of service
(QoS) values that the packet carried before the MPLS header was removed. To preserve the QoS values,
you can configure the LSR to advertise an explicit NULL label (a label value of zero). The LSR at the
penultimate hop forwards MPLS packets with a NULL label instead of forwarding IP packets.

Cisco IOS Release 12.4(5)

15

MPLS Label Distribution Protocol (LDP)


How to Configure MPLS LDP

Note

An explicit NULL label is not needed when the penultimate hop receives MPLS packets with a label
stack that contains at least two labels and penultimate hop popping is performed. In that case, the inner
label can still carry the QoS value needed by the penultimate and edge LSR to implement their QoS
policy.
When you issue the mpls ldp explicit-null command, Explicit Null is advertised in place of Implicit
Null for directly connected prefixes.

SUMMARY STEPS
1.

enable

2.

configure terminal

3.

mpls ip

4.

mpls label protocol {ldp | tdp | both}

5.

interface type number

6.

mpls ip

7.

exit

8.

mpls ldp explicit-null [for prefix-acl | to peer-acl | for prefix-acl to peer-acl]

9.

exit

10. show mpls forwarding-table [network {mask | length} | labels label [- label] | interface interface

| next-hop address | lsp-tunnel [tunnel-id]] [vrf vpn-name] [detail]

DETAILED STEPS

Step 1

Command or Action

Purpose

enable

Enables privileged EXEC mode.

Enter your password if prompted.

Example:
Router> enable

Step 2

configure terminal

Enters global configuration mode.

Example:
Router# configure terminal

Step 3

mpls ip

Configures MPLS hop-by-hop forwarding globally.

The mpls ip command is enabled by default; you do not


have to specify this command.

Globally enabling MPLS forwarding does not enable it


on the router interfaces. You must enable MPLS
forwarding on the interfaces as well as for the router.

Example:
Router(config)# mpls ip

Cisco IOS Release 12.4(5)

16

MPLS Label Distribution Protocol (LDP)


How to Configure MPLS LDP

Step 4

Command or Action

Purpose

mpls label protocol {ldp | tdp | both}

Configures the use of LDP on all interfaces. LDP is the


default.

Example:
Router(config)# mpls label protocol ldp

Step 5

If you set all interfaces globally to LDP, you can


override specific interfaces with either the tdp or both
keyword by specifying the command in interface
configuration mode.

Specifies the interface to be configured and enters interface


configuration mode.

interface type number

Example:
Router(config)# interface atm2/0

Step 6

Configures MPLS hop-by-hop forwarding on the interface.

mpls ip

Example:

You must enable MPLS forwarding on the interfaces as


well as for the router.

Router(config-if)# mpls ip

Step 7

Exits interface configuration mode and enters global


configuration mode.

exit
Example:
Router(config-if)# exit

Step 8

mpls ldp explicit-null [for prefix-acl | to


peer-acl | for prefix-acl to peer-acl]

Advertises an Explicit Null label in situations where it


would normally advertise an Implicit Null label.

Example:
Router(config)# mpls ldp explicit-null

Step 9

Exits global configuration mode and enter privileged EXEC


mode.

exit

Example:
Router(config)# exit

Step 10

show mpls forwarding-table [network {mask |


length} | labels label [- label] | interface
interface | next-hop address | lsp-tunnel
[tunnel-id]] [vrf vpn-name] [detail]

Verifies that MPLS packets are forwarded with an


explicit-null label (value of 0).

Example:
Router# show mpls forwarding-table

Examples
Enabling explicit-null on an egress LSR causes that LSR to advertise the explicit-null label to all
adjacent MPLS routers.
Router# configure terminal
Router(config)# mpls ldp explicit-null

If you issue the show mpls forwarding-table command on an adjacent router, the output shows that
MPLS packets are forwarded with an explicit-null label (value of 0). In the following example, the
second column shows that entries have outgoing labels of 0, where once they were marked Pop label.
Router# show mpls forwarding-table
Local

Outgoing

Prefix

Bytes label Outgoing

Next Hop

Cisco IOS Release 12.4(5)

17

MPLS Label Distribution Protocol (LDP)


How to Configure MPLS LDP

label
19
22
23
24
25
26
27
28

label or VC or Tunnel Id
Pop tag
10.12.12.12/32
0
10.14.14.14/32
0
172.24.24.24/32
0
192.168.0.0/8
0
10.15.15.15/32
0
172.16.0.0/8
25
10.16.16.16/32
0
10.34.34.34/32

switched
0
0
0
0
0
0
0
0

interface
Fa2/1/0
Fa2/0/0
Fa2/0/0
Fa2/0/0
Fa2/0/0
Fa2/0/0
Fa2/0/0
Fa2/0/0

172.16.0.1
192.168.0.2
192.168.0.2
192.168.0.2
192.168.0.2
192.168.0.2
192.168.0.22
192.168.0.2

Enabling explicit-null and specifying the for keyword with a standard access control list (ACL) changes
all adjacent MPLS routers' tables to swap an explicit-null label for only those entries specified in the
access-list. In the following example, an access-list is created that contains the 10.24.24.24/32 entry.
Explicit null is configured and the access list is specified.
Router# configure terminal
Router(config)# mpls label protocol ldp
Router(config)# access-list 24 permit host 10.24.24.24
Router(config)# mpls ldp explicit-null for 24

If you issue the show mpls forwarding-table command on an adjacent router, the output shows that the
only the outgoing labels for the addresses specified (172.24.24.24/32) change from Pop label to 0. All
other Pop label outgoing labels remain the same.
Router# show mpls forwarding-table
Local
label
19
22
23
24
25
26
27
28

Outgoing
Prefix
label or VC or Tunnel Id
Pop tag
10.12.12.12/32
0
10.14.14.14/32
0
172.24.24.24/32
0
192.168.0.0/8
0
10.15.15.15/32
0
172.16.0.0/8
25
10.16.16.16/32
0
10.34.34.34/32

Bytes label Outgoing


switched
interface
0
Fa2/1/0
0
Fa2/0/0
0
Fa2/0/0
0
Fa2/0/0
0
Fa2/0/0
0
Fa2/0/0
0
Fa2/0/0
0
Fa2/0/0

Next Hop
172.16.0.1
192.168.0.2
192.168.0.2
192.168.0.2
192.168.0.2
192.168.0.2
192.168.0.22
192.168.0.2

Enabling explicit null and adding the to keyword and an access list enables you to advertise explicit-null
labels to only those adjacent routers specified in the access-list.To advertise explicit-null to a particular
router, you must specify the router's LDP ID in the access-list.
In the following example, an access-list contains the 10.15.15.15/32 entry, which is the LDP ID of an
adjacent MPLS router. The router that is configured with explicit null advertises explicit-null labels only
to that adjacent router.
Router# show mpls ldp discovery
Local LDP Identifier:
10.15.15.15:0
Discovery Sources:
Interfaces:
Ethernet4 (ldp): xmit/recv
TDP Id: 10.14.14.14:0
Router# configure terminal
Router(config)# mpls label protocol ldp
Router(config)# access-list 15 permit host 10.15.15.15
Router(config)# mpls ldp explicit-null to 15

Cisco IOS Release 12.4(5)

18

MPLS Label Distribution Protocol (LDP)


How to Configure MPLS LDP

If you issue the show mpls forwarding-table command, the output shows that explicit null labels are
going only to the router specified in the access list.
Router# show mpls forwarding-table
Local
label
19
22
23
24
25
26
27
28

Outgoing
Prefix
label or VC or Tunnel Id
Pop tag
10.12.12.12/32
0
10.14.14.14/32
0
172.24.24.24/32
0
192.168.0.0/8
0
10.15.15.15/32
0
172.16.0.0/8
25
10.16.16.16/32
0
10.34.34.34/32

Bytes label Outgoing


switched
interface
0
Fa2/1/0
0
Fa2/0/0
0
Fa2/0/0
0
Fa2/0/0
0
Fa2/0/0
0
Fa2/0/0
0
Fa2/0/0
0
Fa2/0/0

Next Hop
172.16.0.1
192.168.0.2
192.168.0.2
192.168.0.2
192.168.0.2
192.168.0.2
192.168.0.22
192.168.0.2

Enabling explicit-null with both the for and to keywords enables you to specify which routes to advertise
with explicit-null labels and to which adjacent routers to advertise these explicit-null labels.
Router# show access 15
Standard IP access list 15
permit 10.15.15.15 (7 matches)
Router# show access 24
Standard IP access list 24
permit 10.24.24.24 (11 matches)
Router# configure terminal
Router(config)# mpls label protocol ldp
Router(config)# mpls ldp explicit-null for 24 to 15

If you issue the show mpls forwarding-table command on the router called 47K-60-4, the output shows
that it receives explicit null labels for 10.24.24.24/32.
Router# show mpls forwarding-table
Local
label
17
20
21
22
23
25
27
28
29

Outgoing
Prefix
label or VC or Tunnel Id
0 <--10.24.24.24/32
Pop tag
172.16.0.0/8
20
10.12.12.12/32
16
10.0.0.0/8
21
10.13.13.13/32
Pop tag
10.14.14.14/32
Pop tag
192.168.0.0/8
25
10.16.16.16/32
Pop tag
192.168.34.34/32

Bytes label Outgoing


switched
interface
0
Et4
0
Et4
0
Et4
0
Et4
0
Et4
0
Et4
0
Et4
0
Et4
0
Et4

Next Hop
172.16.0.1
172.16.0.1
172.16.0.1
172.16.0.1
172.16.0.1
172.16.0.1
172.16.0.1
172.16.0.1
172.16.0.1

Protecting Data Between LDP Peers with MD5 Authentication


You can enable authentication between two LDP peers, which verifies each segment sent on the TCP
connection between the peers. You must configure authentication on both LDP peers using the same
password; otherwise, the peer session is not established.
Authentication uses the Message Digest 5 (MD5) algorithm to verify the integrity of the communication
and authenticate the origin of the message.

Cisco IOS Release 12.4(5)

19

MPLS Label Distribution Protocol (LDP)


How to Configure MPLS LDP

To enable authentication, issue the mpls ldp neighbor command with the password keyword. This
causes the router to generate an MD5 digest for every segment sent on the TCP connection and check
the MD5 digest for every segment received from the TCP connection.
When you configure a password for an LDP neighbor, the router tears down existing LDP sessions and
establishes new sessions with the neighbor.
If a router has a password configured for a neighbor, but the neighboring router does not have a password
configured, a message such as the following appears on the console who has a password configured
while the two routers attempt to establish an LDP session. The LDP session is not established.
%TCP-6-BADAUTH: No MD5 digest from [peer's IP address](11003) to [local router's IP
address](646)

Similarly, if the two routers have different passwords configured, a message such as the following
appears on the console. The LDP session is not established.
%TCP-6-BADAUTH: Invalid MD5 digest from [peer's IP address](11004) to [local router's IP
address](646)

SUMMARY STEPS
1.

enable

2.

configure terminal

3.

mpls ip

4.

mpls label protocol {ldp | tdp | both}

5.

mpls ldp neighbor [vrf vpn-name] ip-address [password [0-7] password-string]

6.

show mpls ldp neighbor [[vrf vpn-name] [address | interface] [detail] | [all]]

DETAILED STEPS

Step 1

Command or Action

Purpose

enable

Enables privileged EXEC mode.

Enter your password if prompted.

Example:
Router> enable

Step 2

configure terminal

Enters global configuration mode.

Example:
Router# configure terminal

Step 3

mpls ip

Configures MPLS hop-by-hop forwarding globally.

The mpls ip command is enabled by default; you do not


have to specify this command.

Globally enabling MPLS forwarding does not enable it


on the router interfaces. You must enable MPLS
forwarding on the interfaces as well as for the router.

Example:
Router(config)# mpls ip

Cisco IOS Release 12.4(5)

20

MPLS Label Distribution Protocol (LDP)


How to Configure MPLS LDP

Step 4

Command or Action

Purpose

mpls label protocol {ldp | tdp | both}

Configures the use of LDP on all interfaces. LDP is the


default.

Example:
Router(config)# mpls label protocol ldp

Step 5

mpls ldp neighbor [vrf vpn-name] ip-address


[password [0-7] password-string]

If you set all interfaces globally to LDP, you can


override specific interfaces with either the tdp or both
keyword by specifying the command in interface
configuration mode.

Specifies authentication between two LDP peers.

Example:
Router(config)# mpls ldp neighbor 172.27.0.15
password onethirty9

Step 6

Exits global configuration mode and enters privileged


EXEC mode.

exit
Example:
Router(config)# exit

Step 7

show mpls ldp neighbor [[vrf vpn-name] [address


| interface] [detail] | [all]]

Displays the status of LDP sessions.


If the passwords have been set on both LDP peers and the
passwords match, the show mpls ldp neighbor command
displays that the LDP session was successfully established.

Example:
Router# show mpls ldp neighbor detail

Examples
The following example configures a router with the password cisco:
Router> enable
Router# configure terminal
Router(config)# mpls ip
Router(config)# mpls label protocol ldp
Router(config)# mpls ldp neighbor 10.1.1.1 password cisco
Router(config)# exit

The following example shows that the LDP session between routers was successfully established:
Router# show mpls ldp neighbor
Peer LDP Ident: 10.1.1.2:0; Local LDP Ident 10.1.1.1:0
TCP connection: 10.1.1.2.11118 - 10.1.1.1.646
State: Oper; Msgs sent/rcvd: 12/11; Downstream
Up time: 00:00:10
LDP discovery sources:
FastEthernet1/0, Src IP addr: 10.20.10.2
Addresses bound to peer LDP Ident:
10.1.1.2
10.20.20.1
10.20.10.2

The following show mpls ldp neighbor detail command shows that MD5 (shown in bold) is used for
the LDP session.
Router# show mpls ldp neighbor 10.0.0.21 detail
Peer LDP Ident: 10.0.0.21:0; Local LDP Ident 10.0.0.22:0
TCP connection: 10.0.0.21.646 - 10.0.0.22.14709; MD5 on
State: Oper; Msgs sent/rcvd: 1020/1019; Downstream; Last TIB rev sent 2034
Up time: 00:00:39; UID: 3; Peer Id 1;

Cisco IOS Release 12.4(5)

21

MPLS Label Distribution Protocol (LDP)


MPLS LDP Configuration Examples

LDP discovery sources:


FastEthernet1/1; Src IP addr: 172.16.1.1
holdtime: 15000 ms, hello interval: 5000 ms
Addresses bound to peer LDP Ident:
10.0.0.21
10.0.38.28
10.88.88.2
172.16.0.1
172.16.1.1
Peer holdtime: 180000 ms; KA interval: 60000 ms; Peer state: estab

MPLS LDP Configuration Examples


This section includes the following configuration examples:

Configuring Directly Connected MPLS LDP Sessions: Example, page 22

Establishing Nondirectly Connected MPLS LDP Sessions: Example, page 24

Configuring Directly Connected MPLS LDP Sessions: Example


Figure 1 shows a sample network for configuring directly connected LDP sessions.
This example configures the following:

MPLS hop-by-hop forwarding for the POS links between Router 1 and Router 2 and between
Router 1 and Router 3.

LDP for label distribution between Router 1 and Router 2.

TDP for label distribution between Router 1 and Router 3.

A loopback interface and IP address for each LSR that can be used as the LDP router ID.

Figure 1

Configuration of MPLS LDP

Router 2

POS2/0/0
10.0.0.33
POS3/0/0
10.0.0.44
Router 1
POS3/0/1
192.168.0.44

39405

Router 3

POS1/0
192.168.0.55

Note

The configuration examples below show only the commands related to configuring LDP for Router 1,
Router 2, and Router 3 in the sample network shown in Figure 1.

Cisco IOS Release 12.4(5)

22

MPLS Label Distribution Protocol (LDP)


MPLS LDP Configuration Examples

Router 1 Configuration
ip cef distributed
interface Loopback0
ip address 172.16.0.11 255.255.255.255
!
interface POS3/0/0
ip address 10.0.0.44 255.0.0.0
mpls ip
mpls label protocol ldp
!
interface POS3/0/1
ip address 192.168.0.44 255.0.0.0
mpls ip
mpls label protocol tdp

!Assumes R1 supports distributed CEF


!Loopback interface for LDP ID.

!Enable hop-by-hop MPLS forwarding


!Use LDP for this interface

!Enable hop-by-hop MPLS forwarding


!Use TDP for this interface

Router 2 Configuration
ip cef distributed
!
interface Loopback0
ip address 172.16.0.22 255.255.255.255
!
interface POS2/0/0
ip address 10.0.0.33 255.0.0.0
mpls ip
mpls label protocol ldp

!Assumes R2 supports distributed CEF


!Loopback interface for LDP ID.

!Enable hop-by-hop MPLS forwarding


!Use LDP for this interface

Router 3 Configuration
ip cef
!
interface Loopback0
ip address 172.16.0.33 255.255.255.255
!
interface POS1/0
ip address 192.168.0.55 255.0.0.0
mpls ip
mpls label protocol tdp

!Assumes R3 does not support dCEF


!Loopback interface for LDP ID.

!Enable hop-by-hop MPLS forwarding


!Use tDP for this interface

The LDP configuration for Router 1 uses the mpls label protocol ldp command in interface
configuration mode, because some of its interfaces use LDP and some use TDP. Another way to
configure Router 1 is to use the mpls label protocol ldp command in global configuration mode to
configure LDP as the default protocol for interfaces and use the mpls label protocol tdp command in
interface configuration mode to configure TDP for the POS3/0/1 link to Router 3. This alternative way
to configure Router 1 is shown below:
Router 1 Configuration
ip cef distributed
mpls label protocol ldp
!
interface Loopback0
ip address 172.16.0.11 255.255.255.255
interface POS3/0/0
ip address 10.0.0.44 255.0.0.0
mpls ip
interface POS3/0/1
ip address 192.168.0.44 255.0.0.0
mpls ip
mpls label protocol tdp

!Assumes R1 supports dCEF


!Use LDP for the default protocol
!Loopback interface for LDP ID.

!Enable hop-by-hop MPLS forwarding


!Use LDP (configured i/f default)

!Enable hop-by-hop MPLS forwarding


!Use TDP for this interface

Cisco IOS Release 12.4(5)

23

MPLS Label Distribution Protocol (LDP)


MPLS LDP Configuration Examples

The configuration of Router 2 also uses the mpls label protocol ldp command in interface configuration
mode. To specify LDP for all interfaces, use the mpls label protocol ldp command in global
configuration mode without any interface mpls label protocol commands.
Configuring the mpls ip command on an interface triggers the transmission of discovery Hello messages
for the interface.

Establishing Nondirectly Connected MPLS LDP Sessions: Example


The following examples illustrate the configuration of platforms for MPLS LDP nondirectly connected
sessions using the sample network shown in Figure 2. Note that Routers 1, 4, 5, and 6 in this sample
network are not directly connected to each other.
Figure 2

Sample Network for Configuring LDP for Targeted Sessions

Router 4
10.11.0.4

Router 1

MPLS network

10.11.0.5

10.11.0.6

41142

10.11.0.1

Router 6

Router 5

The configuration example shows the following:

Targeted sessions between Routers 1 and 4 use LDP. Routers 1 and 4 are both active.

Targeted sessions between Routers 1 and 6 use LDP. Router 1 is active and Router 6 is passive.

Targeted sessions between Routers 1 and 5 use TDP. Router 5 is active.

These examples assume that the active ends of the nondirectly connected sessions are associated with
tunnel interfaces, such as MPLS traffic engineering tunnels. They show only the commands related to
configuring LDP targeted sessions. The examples do not show configuration of the applications that
initiate the targeted sessions.

Cisco IOS Release 12.4(5)

24

MPLS Label Distribution Protocol (LDP)


MPLS LDP Configuration Examples

Router 1 Configuration

Tunnel interfaces Tunnel14 and Tunnel16 specify LDP for targeted sessions associated with these
interfaces. The targeted session for Router 5 requires TDP. The mpls label protocol ldp command in
global configuration mode makes it unnecessary to explicitly specify LDP as part of the configuration
from the Tunnel14 and Tunnel16.
ip cef distributed
mpls label protocol ldp

!Router1 supports distributed CEF


!Use LDP as default for all interfaces

interface Loopback0
!Loopback interface for LDP ID.
ip address 10.25.0.11 255.255.255.255
interface Tunnel14
tunnel destination 10.11.0.4
mpls ip

!Tunnel to Router 4 requiring label distribution


!Tunnel endpoint is Router 4
!Enable hop-by-hop forwarding on the interface

interface Tunnel15
tunnel destination 10.11.0.5
mpls label protocol tdp
mpls ip

!Tunnel to Router 5 requiring label distribution


!Tunnel endpoint is Router 5
!Use TDP for session with Router 5
!Enable hop-by-hop forwarding on the interface

interface Tunnel16
tunnel destination 10.11.0.6
mpls ip

!Tunnel to Router 6 requiring label distribution


!Tunnel endpoint is Router 6
!Enable hop-by-hop forwarding on the interface

Router 4 Configuration

The mpls label protocol ldp command in global configuration mode makes it unnecessary to explicitly
specify LDP as part of the configuration for the Tunnel41 targeted session with Router 1.
ip cef distributed
mpls label protocol ldp

!Router 4 supports distributed CEF


!Use LDP as default for all interfaces

interface Loopback0
!Loopback interface for LDP ID.
ip address 10.25.0.44 255.255.255.255
interface Tunnel41
!Tunnel to Router 1 requiring label distribution
tunnel destination 10.11.0.1 !Tunnel endpoint is Router 1
mpls ip
!Enable hop-by-hop forwarding on the interface

Router 5 Configuration

Router 5 must use TDP for all targeted sessions. Therefore, its configuration includes the mpls label
protocol tdp command.
ip cef
mpls label protocol tdp

!Router 5 supports CEF


!Use TDP as default for all interfaces

interface Loopback0
!Loopback interface for LDP ID.
ip address 10.25.0.55 255.255.255.255
interface Tunnel51
tunnel destination 10.11.0.1
mpls ip

!Tunnel to Router 1 requiring label distribution


!Tunnel endpoint is Router 1
!Enable hop-by-hop forwarding on the interface

Cisco IOS Release 12.4(5)

25

MPLS Label Distribution Protocol (LDP)


Additional References

Router 6 Configuration

By default, a router cannot be a passive neighbor in targeted sessions. Therefore, Router 1, Router 4, and
Router 5 are active neighbors in any targeted sessions. The mpls ldp discovery targeted-hello accept
command permits Router 6 to be a passive target in targeted sessions with Router 1. Router 6 can also
be an active neighbor in targeted sessions, although the example does not include such a configuration.
ip cef distributed

!Router 6 supports distributed CEF

interface Loopback0
ip address 10.25.0.66 255.255.255.255

!Loopback interface for LDP ID.

mpls ldp discovery targeted-hellos accept from LDP_SOURCES


!Respond to requests for targeted hellos
!from sources permitted by acl LDP_SOURCES
ip access-list standard LDP_SOURCES
permit 10.11.0.1
deny any

!Define acl for targeted hello sources.


!Accept targeted hello request from Router 1.
!Deny requests from other sources.

Additional References
The following sections provide references related to MPLS LDP.

Related Documents
Related Topic

Document Title

Configures LDP on every interface associated with a


specified IGP instance.

MPLS LDP Autoconfiguration

Assists a neighboring router that has MPLS LDP


SSO/NSF Support and Graceful Restart to recover
gracefully from an interruption in service.

MPLS LDP Graceful Restart

Ensures that LDP is fully established before the IGP


path is used for switching.

MPLS LDP-IGP Synchronization

Allows ACLs to control the label bindings that an LSR MPLS LDP Inbound Label Binding Filtering
accepts from its peer LSRs.
Provides faster LDP convergence when a link recovers MPLS LDP Session Protection
following an outage.
Enables standard, SNMP-based network management
of the label switching features in Cisco IOS.

MPLS Label Distribution Protocol MIB Version 8 Upgrade

Standards
Standard

Title

None

Cisco IOS Release 12.4(5)

26

MPLS Label Distribution Protocol (LDP)


Command Reference

MIBs
MIB

MIBs Link

MPLS Label Distribution Protocol MIB


(draft-ietf-mpls-ldp-mib-08.txt)

SNMP-VACM-MIB
The View-based Access Control Model (ACM)
MIB for SNMP

To locate and download MIBs for selected platforms, Cisco IOS


releases, and feature sets, use Cisco MIB Locator found at the
following URL:
http://www.cisco.com/go/mibs

RFCs
RFC

Title

RFC 3036

LDP Specification

Technical Assistance
Description

Link

http://www.cisco.com/techsupport
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.

Command Reference
This section describes the following modified commands for Cisco IOS Releases 12.4(3) and 12.4(5):

mpls label protocol (global configuration)

mpls ldp router-id

For information about other MPLS LDP commands, see the following document:
Cisco IOS Multiprotocol Label Switching Command Reference, Release 12.4T.

Cisco IOS Release 12.4(5)

27

MPLS Label Distribution Protocol (LDP)


mpls label protocol (global configuration)

mpls label protocol (global configuration)


To specify the label distribution protocol for a platform, use the mpls label protocol command in global
configuration mode. To restore the default label distribution protocol (LDP), use the no form of this
command.
mpls label protocol { ldp | tdp}
no mpls label protocol

Syntax Description

ldp

Specifies that LDP is the default label distribution protocol.

tdp

Specifies that Tag Distribution Protocol (TDP) is the default label distribution
protocol.

Defaults

LDP is the default label distribution protocol.

Command Modes

Global configuration

Command History

Release

Modification

12.0(10)ST

This command was introduced.

12.0(14)ST

This command was integrated into Cisco IOS Release 12.0(14)ST.

12.1(2)T

This command was integrated into Cisco IOS Release 12.1(2)T.

12.1(8a)E

This command was integrated into Cisco IOS Release 12.1(8a)E.

12.2(2)T

This command was integrated into Cisco IOS Release 12.2(2)T.

12.2(4)T

This command was integrated into Cisco IOS Release 12.2(4)T.

12.2(8)T

This command was integrated into Cisco IOS Release 12.2(8)T.

12.0(21)ST

This command was integrated into Cisco IOS Release 12.0(21)ST.

12.0(22)S

This command was integrated into Cisco IOS Release 12.0(22)S.

Usage Guidelines

Note

12.0(23)S

This command was integrated into Cisco IOS Release 12.0(23)S.

12.2(13)T

This command was integrated into Cisco IOS Release 12.2(13)T.

12.4(3)

The command default changed from TDP to LDP.

If neither the global mpls label protocol ldp command nor the interface mpls label protocol ldp
command is used, all label distribution sessions use LDP.

Use caution when upgrading the image on a router that uses TDP. Ensure that the TDP sessions are
established when the new image is loaded. You can accomplish this by issuing the global configuration
command mpls label protocol tdp. Issue this command and save it to the startup configuration before
loading the new image. Alternatively, you can enter the command and save the running configuration
immediately after loading the new image.

Cisco IOS Release 12.4(5)

28

MPLS Label Distribution Protocol (LDP)


mpls label protocol (global configuration)

Examples

The following command establishes LDP as the label distribution protocol for the platform:
Router(config)# mpls label protocol ldp

Related Commands

Command

Description

show mpls interfaces

Displays information about one or more or all interfaces that are configured
for label switching.

Cisco IOS Release 12.4(5)

29

MPLS Label Distribution Protocol (LDP)


mpls ldp router-id

mpls ldp router-id


To specify a preferred interface for determining the Label Distribution Protocol (LDP) router ID, use the
mpls ldp router-id command in global configuration mode. To disable this feature, use the no form of
this command.
mpls ldp router-id [vrf vrf-name] interface [force]
no mpls ldp router-id [vrf vrf-name] [interface [force]]

Syntax Description

Defaults

vrf vrf-name

(Optional) Selects the interface as the LDP router ID for the named Virtual
Private Network (VPN) routing/forwarding table instance (VRF). The
selected interface must be associated with the named VRF.

interface

Causes the IP address of the specified interface to be used as the


LDP router ID, provided that the interface is operational.

force

(Optional) Alters the behavior of the mpls ldp router-id command, as


described in the Usage Guidelines section.

If the mpls ldp router-id command is not executed, the router determines the LDP router ID as follows:
a. The router examines the IP addresses of all operational interfaces.
b. If these IP addresses include loopback interface addresses, the router selects the largest

loopback address as the LDP router ID.


c. Otherwise, the router selects the largest IP address pertaining to an operational interface as the

LDP router ID.

Command Modes

Global configuration

Command History

Release

Modification

12.0(10)ST

This command was introduced.

12.0(14)ST

The force keyword was added.

Usage Guidelines

12.1(2)T

This command was integrated into Cisco IOS Release 12.1(2)T.

12.1(8a)E

This command was integrated into Cisco IOS Release 12.1(8a)E.

12.2(2)T

This command was integrated into Cisco IOS Release 12.2(2)T.

12.0(22)S

This command was integrated into Cisco IOS Release 12.0(22)S.

12.4(5)

The vrf vrf-name keyword/argument pair was added.

The mpls ldp router-id command allows you to establish the IP address of an interface as the LDP router
ID.
The following steps describe the normal process for determining the LDP router ID:
1.

The router considers all the IP addresses of all operational interfaces.

Cisco IOS Release 12.4(5)

30

MPLS Label Distribution Protocol (LDP)


mpls ldp router-id

2.

If these addresses include loopback interface addresses, the router selects the largest loopback
address. Configuring a loopback address helps ensure a stable LDP ID for the router, because the
state of loopback addresses does not change. However, configuring a loopback interface and
IP address on each router is not required.
The loopback IP address does not become the router ID of the local LDP ID under the following
circumstances:
If the loopback interface has been explicitly shut down.
If the mpls ldp router-id command specifies that a different interface should be used as the

LDP router ID.


If you use a loopback interface, make sure that the IP address for the loopback interface is
configured with a /32 network mask. In addition, make sure that the routing protocol in use is
configured to advertise the corresponding /32 network.
3.

Otherwise, the router selects the largest interface address.

The router might select a router ID that is not usable in certain situations. For example, the router might
select an IP address that the routing protocol cannot advertise to a neighboring router.
The router implements the router ID the next time it is necessary to select an LDP router ID. The effect
of the command is delayed until the next time it is necessary to select an LDP router ID, which is
typically the next time the interface is shut down or the address is deconfigured.
If you use the force keyword with the mpls ldp router-id command, the router ID takes effect more
quickly. However, implementing the router ID depends on the current state of the specified interface:

If the interface is up (operational) and its IP address is not currently the LDP router ID, the LDP
router ID is forcibly changed to the IP address of the interface. This forced change in the LDP router
ID tears down any existing LDP sessions, releases label bindings learned via the LDP sessions, and
interrupts MPLS forwarding activity associated with the bindings.

If the interface is down, the LDP router ID is forcibly changed to the IP address of the interface when
the interface transitions to up. This forced change in the LDP router ID tears down any existing LDP
sessions, releases label bindings learned via the LDP sessions, and interrupts MPLS forwarding
activity associated with the bindings.

The following behaviors apply to the default VRF as well as to VRFs that you explicitly configure with
the vrf vrf-name keyword/argument pair:

The interface you select as the router ID of the VRF must be associated with the VRF.

If the interface is no longer associated with the VRF, the mpls ldp router-id command that uses the
interface is removed.

If the selected interface is deleted, the mpls ldp router-id command that uses the interface is
removed.

If you delete a VRF that you configured, the mpls ldp router-id command for the deleted VRF is
removed. The default VRF cannot be deleted.

Cisco IOS Release 12.4(5)

31

MPLS Label Distribution Protocol (LDP)


mpls ldp router-id

Examples

The following example shows that the POS2/0/0 interface has been specified as the preferred interface
for the LDP router ID. The IP address of that interface is used as the LDP router ID.
Router(config)# mpls ldp router-id pos2/0/0

The following example shows that the Ethernet 1/0 interface, which is associated with the VRF vpn-1,
is the preferred interface. The IP address of the interface is used as the LDP router ID.
Router(config)# mpls ldp router-id vrf vpn-1 eth1/0

Related Commands

Command

Description

show mpls ldp discovery

Displays the status of the LDP discovery process.

CCVP, the Cisco logo, and Welcome to the Human Network are trademarks of Cisco Systems, Inc.; Changing the Way We Work, Live, Play, and Learn is
a service mark of Cisco Systems, Inc.; and Access Registrar, Aironet, Catalyst, CCDA, CCDP, CCIE, CCIP, CCNA, CCNP, CCSP, Cisco, the Cisco
Certified Internetwork Expert logo, Cisco IOS, Cisco Press, Cisco Systems, Cisco Systems Capital, the Cisco Systems logo, Cisco Unity,
Enterprise/Solver, EtherChannel, EtherFast, EtherSwitch, Fast Step, Follow Me Browsing, FormShare, GigaDrive, HomeLink, Internet Quotient, IOS,
iPhone, IP/TV, iQ Expertise, the iQ logo, iQ Net Readiness Scorecard, iQuick Study, LightStream, Linksys, MeetingPlace, MGX, Networkers,
Networking Academy, Network Registrar, PIX, ProConnect, ScriptShare, SMARTnet, StackWise, The Fastest Way to Increase Your Internet Quotient,
and TransPath are registered trademarks of Cisco Systems, Inc. and/or its affiliates in the United States and certain other countries.
All other trademarks mentioned in this document or Website are the property of their respective owners. The use of the word partner does not imply a
partnership relationship between Cisco and any other company. (0711R)

2005 Cisco Systems, Inc. All rights reserved.

Cisco IOS Release 12.4(5)

32

You might also like