Label Distribution Protocol (LDP) is a protocolin which routers capable of Multiprotocol LabelSwitching (MPLS) exchange label mappinginformation. MPLS is a mechanism in high-performance telecommunications networks that directs data from one network node to the next based on short path labels rather than long network addresses, avoiding complex lookups in a routing table.
Label Distribution Protocol (LDP) is a keyprotocol in the MPLS (Multi Protocol LabelSwitching) architecture. In the MPLS network, 2 Label Switching Routers (LSR) must agree on the meaning of the labels used to forward traffic between and through them.
The Label Distribution Protocol (LDP) is a protocol defined by the IETF (RFC 5036) for the purpose of distributing labels in an MPLS environment.
LDP defines a set of procedures and messages by which one LSR (Label Switched Router) informs another of the label bindings it has made. The LSR uses this protocol to establish label switched paths through a network by mapping network layer routing information directly to data-link layer switched paths.
Two LSRs (Label Switched Routers) which use LDP to exchange label mapping information are known as LDP peers and they have an LDP session between them. In a single session, each peer is able to learn about the others label mappings, in other words, the protocol is bi- directional.
1. Version -- LDP version number. The present number is 1.2. PDU Length -- The total length of the PDU excluding the version and the PDU length field.3. LDP identifier -- This field uniquely identifies the label space of the sending LSR for which this PDU applies. The first 4 octets encode the IP address assigned to the LSR. The last 2 indicate a label space within the LSR.
1. U -- The U bit is an unknown message bit.2. Message Type -- The type of message. The following message types exist: Notification, Hello, Initialization, Keep Alive, Address, Address Withdraw, Label Request, Label Withdraw, Label Release, and Unknown Message name.3. Message Length -- The length in octets of the message ID, mandatory parameters and optional parameters.4. Message ID -- 32-bit value used to identify the message.5. Parameters -- The parameters contain the TLVs. There are both mandatory and optional parameters. Some messages have no mandatory parameters, and some have no optional parameters.
1. U -- The U bit is an unknown TLV bit.2. F -- Forward unknown TLV bit.3. Type -- Encodes how the Value field is to be interpreted.4. Length -- Specifies the length of the Value field in octets.5. Value -- Octet string of Length octets that encodes information to be interpreted as specified by the Type field.
The following message types are defined in this versionof LDP:Message Name Section TitleNotification Notification MessageHello Hello MessageInitialization Initialization MessageKeepAlive KeepAlive MessageAddress Address MessageAddress Withdraw Address Withdraw MessageLabel Mapping Label Mapping MessageLabel Request Label Request MessageLabel Abort Request Label Abort Request MessageLabel Withdraw Label Withdraw MessageLabel Release Label Release Message
LDP provides a standard methodology forhop-by-hop, or dynamic label, distribution inan MPLS network by assigning labels to routesthat have been chosen by the underlyingInterior Gateway Protocol (IGP) routingprotocols. Theresulting labeled paths, called Label Switch Paths (LSPs), forward label traffic across an MPLS backbone to particular destinations.
When you enable MPLS LDP, the LSRs send outmessages to try to find other LSRs with whichthey can create LDP sessions.The following sections explain the differencesbetween sessions.1. Directly Connected MPLS LDP Sessions2. Nondirectly Connected MPLS LDP Sessions
If an LSR is one hop from its neighbor, it isdirectly connected to its neighbor. The LSRsends out LDP link Hello messages as UserDatagram Protocol (UDP) packets to all therouters on the subnet (multicast).A neighboring LSR may respond to the linkHello message, allowing the two routers toestablish an LDP session. This is called BasicDiscovery.
Toinitiate 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. Todetermine 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 isestablished, the LSRs negotiate the sessionparameters, including the method of labeldistribution to be used. Two methods are available:1. Downstream Unsolicited: An LSR advertises label mappings to peers without being asked to.2. Downstream on Demand: An LSR advertises label mappings to a peer only when the peer asks for them.
If the LSR is more than one hop from itsneighbor, it is nondirectly connected to itsneighbor. For these nondirectly connectedneighbors, the LSR sends out a targeted Hellomessage as a UDP packet, but as a unicastmessage specifically addressed to that LSR.The nondirectly connected LSR responds to theHello message and the two routers begin toestablish an LDP session. This is called ExtendedDiscovery.
The exchange of targeted Hello messages between twonondirectly connected neighbors can occur in severalways, including the following:1. 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.2. 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.
An LDP label binding is an associationbetween a destination prefix and a label.
There are four categories of LDP messages:1. Discovery messages, used to announce and maintain the presence of an LSR in a network.2. Session messages, used to establish, maintain, and terminate sessions between LDP peers.3. Advertisement messages, used to create, change, and delete label mappings for FECs.4. Notification messages, used to provide advisory information and to signal error information.
LDP errors and other events of interest aresignaled to an LDP peer by Notificationmessages.There are two kinds of LDP Notificationmessages:1. Error Notifications2. Advisory Notifications
Error Notifications, used to signal fatalerrors. If an LSR receives an ErrorNotification from a peer for an LDP session,it terminates the LDP session by closing theTCP transport connection for the sessionand discarding all label mappings learnedvia the session.
Advisory Notifications, used to pass on LSRinformation about the LDP session or thestatus of some previous message receivedfrom the peer.
LDPuses TCP as a reliable transport for sessions. When multiple LDP sessions are required between two LSRs, there is one TCP session for each LDP session.