]> git.proxmox.com Git - mirror_frr.git/blobdiff - doc/user/ldpd.rst
Merge pull request #13649 from donaldsharp/unlock_the_node_or_else
[mirror_frr.git] / doc / user / ldpd.rst
index 375842f2ba71475ab59de48e8af065812b9f1bce..682443a456676469a723934e97811dc60984d6d1 100644 (file)
@@ -24,7 +24,7 @@ Running Ldpd
 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
@@ -97,53 +97,60 @@ implementation.
 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
@@ -151,19 +158,29 @@ LDP Configuration
    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
@@ -179,7 +196,6 @@ Show LDP Information
 
 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
@@ -192,29 +208,22 @@ These commands dump various parts of *ldpd*.
       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.
@@ -228,7 +237,6 @@ These commands dump various parts of *ldpd*.
       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.
@@ -245,14 +253,12 @@ These commands dump various parts of *ldpd*.
       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:
@@ -264,8 +270,9 @@ LDP debugging commands
    - ``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
@@ -328,3 +335,45 @@ that traffic to that destination will be applied.
    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
+    !
+   !
+