The *ldpd* daemon can be invoked with any of the common
options (:ref:`common-invocation-options`).
-..option:: --ctl_socket
+.. option:: --ctl_socket
This option allows you to override the path to the ldpd.sock file
used to control this daemon. If specified this option overrides
LDP Configuration
===================
-.. index:: mpls ldp
-.. clicmd:: [no] mpls ldp
+.. clicmd:: mpls ldp
Enable or disable LDP daemon
-.. index:: router-id A.B.C.D
-.. clicmd:: [no] router-id A.B.C.D
+.. clicmd:: router-id A.B.C.D
The following command located under MPLS router node configures the MPLS
router-id of the local device.
-.. index:: ordered-control
-.. clicmd:: [no] ordered-control
+.. clicmd:: ordered-control
Configure LDP Ordered Label Distribution Control.
-.. index:: address-family [ipv4 | ipv6]
-.. clicmd:: [no] address-family [ipv4 | ipv6]
+.. clicmd:: address-family [ipv4 | ipv6]
Configure LDP for IPv4 or IPv6 address-family. Located under MPLS route node,
this subnode permits configuring the LDP neighbors.
-.. index:: interface IFACE
-.. clicmd:: [no] interface IFACE
+.. clicmd:: interface IFACE
Located under MPLS address-family node, use this command to enable or disable
LDP discovery per interface. IFACE stands for the interface name where LDP is
enabled. By default it is disabled. Once this command executed, the
address-family interface node is configured.
-.. index:: discovery transport-address A.B.C.D | A:B::C:D
-.. clicmd:: [no] discovery transport-address A.B.C.D | A:B::C:D
+.. clicmd:: discovery transport-address A.B.C.D | A:B::C:D
Located under mpls address-family interface node, use this command to set
the IPv4 or IPv6 transport-address used by the LDP protocol to talk on this
interface.
-.. index:: neighbor A.B.C.D password PASSWORD
-.. clicmd:: [no] neighbor A.B.C.D password PASSWORD
+.. clicmd:: ttl-security disable
+
+ Located under the LDP address-family node, use this command to disable the
+ GTSM procedures described in RFC 6720 (for the IPv4 address-family) and
+ RFC 7552 (for the IPv6 address-family).
+
+ Since GTSM is mandatory for LDPv6, the only effect of disabling GTSM for the
+ IPv6 address-family is that *ldpd* will not discard packets with a hop limit
+ below 255. This may be necessary to interoperate with older implementations.
+ Outgoing packets will still be sent using a hop limit of 255 for maximum
+ compatibility.
+
+ If GTSM is enabled, multi-hop neighbors should have either GTSM disabled
+ individually or configured with an appropriate ttl-security hops distance.
+
+.. clicmd:: neighbor A.B.C.D password PASSWORD
The following command located under MPLS router node configures the router
of a LDP device. This device, if found, will have to comply with the
configured password. PASSWORD is a clear text password wit its digest sent
through the network.
-.. index:: neighbor A.B.C.D holdtime HOLDTIME
-.. clicmd:: [no] neighbor A.B.C.D holdtime HOLDTIME
+.. clicmd:: neighbor A.B.C.D holdtime HOLDTIME
The following command located under MPLS router node configures the holdtime
value in seconds of the LDP neighbor ID. Configuring it triggers a keepalive
this time of non response, the LDP established session will be considered as
set to down. By default, no holdtime is configured for the LDP devices.
-.. index:: discovery hello holdtime HOLDTIME
-.. clicmd:: [no] discovery hello holdtime HOLDTIME
+.. clicmd:: neighbor A.B.C.D ttl-security disable
+
+ Located under the MPLS LDP node, use this command to override the global
+ configuration and enable/disable GTSM for the specified neighbor.
+
+.. clicmd:: neighbor A.B.C.D ttl-security hops (1-254)
+
+ Located under the MPLS LDP node, use this command to set the maximum number
+ of hops the specified neighbor may be away. When GTSM is enabled for this
+ neighbor, incoming packets are required to have a TTL/hop limit of 256
+ minus this value, ensuring they have not passed through more than the
+ expected number of hops. The default value is 1.
+
+.. clicmd:: discovery hello holdtime HOLDTIME
-.. index:: discovery hello interval INTERVAL
-.. clicmd:: [no] discovery hello interval INTERVAL
+.. clicmd:: discovery hello interval INTERVAL
INTERVAL value ranges from 1 to 65535 seconds. Default value is 5 seconds.
This is the value between each hello timer message sent.
HOLDTIME value ranges from 1 to 65535 seconds. Default value is 15 seconds.
That value is added as a TLV in the LDP messages.
-.. index:: dual-stack transport-connection prefer ipv4
-.. clicmd:: [no] dual-stack transport-connection prefer ipv4
+.. clicmd:: dual-stack transport-connection prefer ipv4
When *ldpd* is configured for dual-stack operation, the transport connection
preference is IPv6 by default (as specified by :rfc:`7552`). On such
These commands dump various parts of *ldpd*.
-.. index:: show mpls ldp neighbor [A.B.C.D]
.. clicmd:: show mpls ldp neighbor [A.B.C.D]
This command dumps the various neighbors discovered. Below example shows that
ipv4 1.1.1.1 OPERATIONAL 1.1.1.1 00:01:37
west-vm#
-.. index:: show mpls ldp neighbor [A.B.C.D] capabilities
.. clicmd:: show mpls ldp neighbor [A.B.C.D] capabilities
-.. index:: show mpls ldp neighbor [A.B.C.D] detail
.. clicmd:: show mpls ldp neighbor [A.B.C.D] detail
Above commands dump other neighbor information.
-.. index:: show mpls ldp discovery [detail]
.. clicmd:: show mpls ldp discovery [detail]
-.. index:: show mpls ldp ipv4 discovery [detail]
.. clicmd:: show mpls ldp ipv4 discovery [detail]
-.. index:: show mpls ldp ipv6 discovery [detail]
.. clicmd:: show mpls ldp ipv6 discovery [detail]
Above commands dump discovery information.
-.. index:: show mpls ldp ipv4 interface
.. clicmd:: show mpls ldp ipv4 interface
-.. index:: show mpls ldp ipv6 interface
.. clicmd:: show mpls ldp ipv6 interface
Above command dumps the IPv4 or IPv6 interface per where LDP is enabled.
ipv4 eth3 ACTIVE 00:08:35 5/15 1
-.. index:: show mpls ldp ipv4|ipv6 binding
.. clicmd:: show mpls ldp ipv4|ipv6 binding
Above command dumps the binding obtained through MPLS exchanges with LDP.
ipv4 10.200.0.0/24 1.1.1.1 17 imp-null yes
west-vm#
+
LDP debugging commands
========================
-.. index::
- simple: debug mpls ldp KIND
- simple: no debug mpls ldp KIND
-.. clicmd:: [no] debug mpls ldp KIND
+.. clicmd:: debug mpls ldp KIND
Enable or disable debugging messages of a given kind. ``KIND`` can
be one of:
- ``messages``
- ``zebra``
-LDP Example Configuration
-=========================
+
+Sample configuration
+====================
Below configuration gives a typical MPLS configuration of a device located in a
MPLS backbone. LDP is enabled on two interfaces and will attempt to peer with
O>* 10.200.0.0/24 [110/210] via 10.115.0.1, eth2, label 17, 00:00:15
north-vm#
+
+Additional example demonstrating use of some miscellaneous config options:
+
+.. code-block:: frr
+
+ interface eth0
+ !
+ interface eth1
+ !
+ interface lo
+ !
+ mpls ldp
+ dual-stack cisco-interop
+ neighbor 10.0.1.5 password opensourcerouting
+ neighbor 172.16.0.1 password opensourcerouting
+ !
+ address-family ipv4
+ discovery transport-address 10.0.1.1
+ label local advertise explicit-null
+ !
+ interface eth0
+ !
+ interface eth1
+ !
+ !
+ address-family ipv6
+ discovery transport-address 2001:db8::1
+ !
+ interface eth1
+ !
+ !
+ !
+ l2vpn ENG type vpls
+ bridge br0
+ member interface eth2
+ !
+ member pseudowire mpw0
+ neighbor lsr-id 1.1.1.1
+ pw-id 100
+ !
+ !
+