Multicast Label Distribution Protocol
This chapter provides information about multicast Label Distribution Protocol (mLDP).
Topics in this chapter include:
Applicability
This chapter is applicable to SR OS and was initially written for Release 13.0.R6. The CLI in the current edition corresponds to Release 23.7.R2.
In this chapter, the emphasis is on IPv4. However, multicast Label Distribution Protocol (mLDP) is also supported on IPv6 interfaces.
Overview
Multicast Label Distribution Protocol provides extensions to LDP for the setup of point-to-multipoint (P2MP) Label Switched Paths (LSPs) and multipoint-to-multipoint (MP2MP) LSPs in MPLS networks.
The protocol is described in RFC 6388, Label Distribution Protocol Extensions for Point-to-Multipoint and Multipoint-to-Multipoint Label Switched Paths.
Multicast LSPs can be applied for IP multicast or support for multicast in BGP/MPLS Layer 3 Virtual Private Networks (L3 VPNs).
Compared to RSVP P2MP LSPs, mLDP P2MP LSPs are easier to configure and the setup direction is different. Whereas the RSVP P2MP LSPs are set up from the root node toward the leaf nodes, mLDP P2MP LSPs are set up from the leaf nodes toward the root node.
P2MP Terminology
The following terminology is used.
Node |
Description |
---|---|
Ingress / Root |
P2MP LSPs have just one ingress (root) node. The root node receives IP multicast traffic and maps the traffic to a P2MP LSP (push). The node may perform MPLS multicast replication. |
Egress / Leaf |
P2MP LSPs have multiple egress (leaf) nodes. A leaf node removes data packets from a P2MP LSP (pop) for further processing. The node may perform IP multicast replication. |
Transit |
A transit Label Switching Router (LSR) can reach the root node via a directly connected upstream LSR. A transit LSR also has one or more directly connected downstream LSRs. The LSR swaps the MPLS label and may perform MPLS multicast replication. |
Branch |
A branch LSR is a transit LSR that has several directly connected LSRs. The LSR swaps the MPLS label and performs MPLS multicast replication. |
Bud |
A bud node is an egress node, but also a transit node. The node has directly connected receivers and also one or more directly connected downstream LSRs. |
Setup of mLDP P2MP LSP
The setup of the P2MP LSP in the control plane is as follows.
The leaf node initiates a tree setup according to what is configured. Mandatory parameters are the IP address of the root and an opaque value. The leaf node sends an LDP label map message to its upstream hop toward the root node of the tree.
Each transit node receives the LDP label map message and sends another LDP label map message to its upstream hop toward the root node of the tree. Each label can be different.
The root node receives the LDP label map message.
The label map message contains the root node address, an opaque value, and a label. In the example in Figure 1, the root node address is 192.0.2.1 and the opaque value is 5000.
After the LDP label map messages are sent in the control plane, the nodes program pop, swap, or push entries for the corresponding labels in the data plane.
The leaf node programs a pop entry for the label it sent upstream.
The transit node programs a swap entry for the label it sent upstream with the next-hop address and the label it received from the downstream node.
The root node programs a push entry and a next-hop address for the label it received from the downstream node.
If multiple Equal Cost Multi-Path (ECMP) paths exist between two adjacent nodes, the upstream node of the multicast receiver must program all the entries in the forwarding plane. Only one entry must be active based on the ECMP hashing algorithm.
Configuration
The example topology shown in Example topology is used. The multicast source S-1 is connected to root node PE-1. PE-2 or PE-4 is the transit node for traffic destined for PE-3. There are two leaf nodes: PE-3 and PE-4. Multicast client H-3 is connected to PE-3, whereas multicast client H-4 is connected to PE-4.
Under normal circumstances, PE-2 is the transit node for traffic toward PE-3 and PE-4 is an egress node. If PE-4 is the transit node for traffic toward PE-3, while it also has a directly connected receiver, PE-4 is a bud node.
Configure LDP P2MP LSP
Initial configuration
The PEs should have the following initial configuration:
Cards, MDAs, ports
Router interfaces
IGP (OSPF or IS-IS)
As an example, the router interfaces and OSPF configuration on PE-1 are as follows:
# on PE-1:
configure {
router "Base" {
interface "int-PE-1-PE-2" {
port 1/1/c1/1
ipv4 {
primary {
address 192.168.12.1
prefix-length 30
}
}
}
interface "int-PE-1-PE-4" {
port 1/1/c2/1
ipv4 {
primary {
address 192.168.14.1
prefix-length 30
}
}
}
interface "int-PE-1-S-1" {
port 1/1/c3/1
ipv4 {
primary {
address 172.16.11.1
prefix-length 30
}
}
}
interface "system" {
ipv4 {
primary {
address 192.0.2.1
prefix-length 32
}
}
}
ospf 0 {
admin-state enable
area 0.0.0.0 {
interface "int-PE-1-PE-2" {
interface-type point-to-point
}
interface "int-PE-1-PE-4" {
interface-type point-to-point
}
interface "int-PE-1-S-1" {
interface-type point-to-point
}
interface "system" { }
}
}
}
Enabling mLDP
When LDP is enabled, mLDP is enabled by default
The following command enables mLDP on a specific interface:
configure {
router "Base" {
ldp {
interface-parameters {
interface "<ip-int-name>" {
ipv4 {
fec-type-capability {
p2mp-ipv4 true
}
Enable LDP (including mLDP) on the router interfaces of PE-1, as follows:
#on PE-1:
configure {
router "Base" {
ldp {
interface-parameters {
interface "int-PE-1-PE-2" {
ipv4 { }
}
interface "int-PE-1-PE-4" {
ipv4 { }
}
}
}
Verify that mLDP is enabled (P2MP: Enabled), as follows:
[/]
A:admin@PE-1# show router ldp status
===============================================================================
LDP Status for IPv4 LSR ID 192.0.2.1
IPv6 LSR ID ::
===============================================================================
---snip---
Admin State : Up
IPv4 Oper State : Up IPv6 Oper State : Down
IPv4 Up Time : 0d 00:04:29 IPv6 Down Time : 0d 00:04:29
IPv4 Oper Down Rea*: n/a IPv6 Oper Down Reason: systemIpDown
IPv4 Oper Down Eve*: 0 IPv6 Oper Down Events: 0
---snip---
-------------------------------------------------------------------------------
Capabilities
-------------------------------------------------------------------------------
Dynamic : Enabled P2MP : Enabled
IPv4 Prefix Fec : Enabled IPv6 Prefix Fec : Enabled
Service Fec128 : Enabled Service Fec129 : Enabled
MP MBB : Enabled Overload : Enabled
Unrecognized Notif*: Enabled
===============================================================================
* indicates that the corresponding row element may have been truncated.
Verify that mLDP is enabled on the interface "int-PE-1-PE-2" (IPv4 P2MP Fec Cap), as follows:
[/]
A:admin@PE-1# show router ldp interface "int-PE-1-PE-2" detail
===============================================================================
LDP Interfaces
===============================================================================
===============================================================================
Interface "int-PE-1-PE-2"
===============================================================================
-------------------------------------------------------------------------------
BASE
-------------------------------------------------------------------------------
Admin State : Up Oper State : Up
BFD Status : Disabled Load Bal Wt : None
-------------------------------------------------------------------------------
IPv4
-------------------------------------------------------------------------------
IPv4 Admin State : Up IPv4 Oper State : Up
Last Oper Chg : 0d 00:01:39
Hold Time : 15 Hello Factor : 3
Oper Hold Time : 15
Keepalive Timeout : 30 Keepalive Factor : 3
Transport Addr : System Last Modified : 09/06/23 21:40:48
Active Adjacencies : 1
Local LSR Type : System
Local LSR : None 32-BitLocalLsr : Disabled
IPv4 Pfx Fec Cap : Enabled IPv6 Pfx Fec Cap : Enabled
IPv4 P2MP Fec Cap : Enabled IPv6 P2MP Fec Cap: Enabled
===============================================================================
No. of Interfaces: 1
===============================================================================
Disable mLDP on interface "int-PE-1-PE-2" and verify the LDP status again, as follows:
# on PE-1:
configure {
router "Base" {
ldp {
interface-parameters {
interface "int-PE-1-PE-2" {
ipv4 {
fec-type-capability {
p2mp-ipv4 false
}
[/]
A:admin@PE-1# show router ldp status
===============================================================================
LDP Status for IPv4 LSR ID 192.0.2.1
IPv6 LSR ID ::
===============================================================================
---snip---
Admin State : Up
IPv4 Oper State : Up IPv6 Oper State : Down
---snip---
-------------------------------------------------------------------------------
Capabilities
-------------------------------------------------------------------------------
Dynamic : Enabled P2MP : Enabled
IPv4 Prefix Fec : Enabled IPv6 Prefix Fec : Enabled
Service Fec128 : Enabled Service Fec129 : Enabled
MP MBB : Enabled Overload : Enabled
Unrecognized Notif*: Enabled
===============================================================================
* indicates that the corresponding row element may have been truncated.
P2MP LDP is still enabled on the router, but it is disabled on interface "int-PE-1-PE-2", which can be verified as follows:
[/]
A:admin@PE-1# show router ldp interface "int-PE-1-PE-2" detail
===============================================================================
LDP Interfaces
===============================================================================
===============================================================================
Interface "int-PE-1-PE-2"
===============================================================================
-------------------------------------------------------------------------------
BASE
-------------------------------------------------------------------------------
Admin State : Up Oper State : Up
BFD Status : Disabled Load Bal Wt : None
-------------------------------------------------------------------------------
IPv4
-------------------------------------------------------------------------------
IPv4 Admin State : Up IPv4 Oper State : Up
---snip---
IPv4 Pfx Fec Cap : Enabled IPv6 Pfx Fec Cap : Enabled
IPv4 P2MP Fec Cap : Disabled IPv6 P2MP Fec Cap: Enabled
===============================================================================
No. of Interfaces: 1
===============================================================================
P2MP multicast forwarding can be disabled per LDP interface. Disabling P2MP multicast forwarding does not prevent LDP from exchanging P2MP FEC elements on that interface in the control plane. In the data plane, the forwarding plane is not programmed with the next hop on the outgoing interface that is P2MP disabled.
Configure tunnel interface on the root and leaf nodes
Multicast LDP can be applied in different scenarios. In the following example, a tunnel interface is created on the root and leaf nodes. Other examples are Multicast Virtual Private Network (MVPN) with mLDP and dynamic PIM-mLDP mapping. In several ACG chapters on MVPN, mLDP is chosen; for example, in Multicast VPN: Use of Wildcard Selective PMSI.
A tunnel interface needs to be created on the root node, as follows:
# on PE-1:
configure {
router "Base" {
tunnel-interface {
ldp-p2mp-root 5000 sender-address 192.0.2.1 { }
}
In this example, the tunnel interface gets interface index 73728, as follows:
[/]
A:admin@PE-1# show router tunnel-interface
===============================================================================
P2MP-RSVP P2MP-LDP Tunnel-Interfaces
===============================================================================
LSP/LDP Type SenderAddr IfIndex RootNode
-------------------------------------------------------------------------------
5000 ldp 192.0.2.1 73728 Yes
-------------------------------------------------------------------------------
Interfaces : 1
===============================================================================
A similar command is launched on the leaf nodes, but with the keyword ldp-p2mp-leaf, as follows:
# on PE-3 and PE-4:
configure {
router "Base" {
tunnel-interface {
ldp-p2mp-leaf 5000 sender-address 192.0.2.1 { }
}
[/]
A:admin@PE-3# show router tunnel-interface
===============================================================================
P2MP-RSVP P2MP-LDP Tunnel-Interfaces
===============================================================================
LSP/LDP Type SenderAddr IfIndex RootNode
-------------------------------------------------------------------------------
5000 ldp 192.0.2.1 73728 No
-------------------------------------------------------------------------------
Interfaces : 1
===============================================================================
A P2MP LSP ping can be sent to verify the P2MP LSP. The options for P2MP LSP ping are as follows:
(in classic CLI context)
*A:PE-1# oam p2mp-lsp-ping ?
- p2mp-lsp-ping <lsp-name> [p2mp-instance <instance-name>
[s2l-dest-address <ipv4-address> [... up to 5]]]
[ttl <label-ttl>]
- p2mp-lsp-ping ldp <p2mp-identifier> [vpn-recursive-fec]
[sender-addr <ipv4-address>]
[leaf-addr <ipv4-address> [... up to 5]]
- p2mp-lsp-ping ldp-ssm source <ip-address> group <ip-address>
[router <router-instance>|service-name <service-name>]
[sender-addr <ipv4-address>] [leaf-addr <ipv4-address>
[... up to 5]]
- options common to all p2mp-lsp-ping cases: [fc <fc-name> [profile {in|out}]]
[size <octets>] [timeout <timeout>] [detail]
<lsp-name> : [64 chars max]
<instance-name> : [32 chars max]
<ipv4-address> : a.b.c.d
<in|out> : in|out - Default: out
<fc-name> : be|l2|af|l1|h2|ef|h1|nc - Default: be
<octets> : [1..9786] - Default: 1
<label-ttl> : [1..255] - Default: 255
<timeout> : [1..120] seconds - Default: 10
<detail> : keyword - displays detailed information
<p2mp-identifier> : [1..4294967295]
<ldp-ssm> : keyword - Label Distribution Protocol, Source-Specific
Multicast
<ip-address> : ipv4-address - a.b.c.d
ipv6-address - x:x:x:x:x:x:x:x (eight 16-bit pieces)
x:x:x:x:x:x:d.d.d.d
x - [0..FFFF]H
d - [0..255]D
<router-instance> : <router-name>|<vprn-svc-id>
router-name - "Base" Default - Base
vprn-svc-id - [1..2147483647]
<service-name> : [64 chars max]
<vpn-recursive-fec> : keyword - add a VPN Recursive FEC element to the launched packet (useful for pinging a VPN BGP inter-AS Option B leaf)
Verify the P2MP LSP with the following ping command:
A:PE-1# oam p2mp-lsp-ping ldp 5000
P2MP identifier 5000: | 88 bytes MPLS payload
Total Leafs responded = 2
round-trip min/avg/max = 1.41 / 1.75 / 2.10 ms
Responses based on return code:
EgressRtr(3)=2
Both leaf nodes have sent a reply. The return code 3 indicates that the replying router is an egress for the Forwarding Equivalence Class (FEC).
For a detailed output per leaf, use the following command:
A:PE-1# oam p2mp-lsp-ping ldp 5000 detail
P2MP identifier 5000: | 88 bytes MPLS payload
===============================================================================
Leaf Information
===============================================================================
From RTT Return Code
-------------------------------------------------------------------------------
192.0.2.4 =1.56ms EgressRtr(3)
192.0.2.3 =2.47ms EgressRtr(3)
===============================================================================
Total Leafs responded = 2
round-trip min/avg/max = 1.56 / 2.01 / 2.47 ms
Responses based on return code:
EgressRtr(3)=2
Verify LDP P2MP bindings
The example LDP P2MP LSP is shown in LDP P2MP LSP. In this case, PE-4 is only an egress node and not a bud node.
Verify the LDP P2MP bindings on the leaf node PE-4, as follows.
The leaf node programs a pop entry for the label sent upstream.
[/]
A:admin@PE-4# show router ldp bindings active p2mp opaque-type generic ipv4
===============================================================================
LDP Bindings (IPv4 LSR ID 192.0.2.4)
(IPv6 LSR ID ::)
===============================================================================
Label Status:
U - Label In Use, N - Label Not In Use, W - Label Withdrawn
WP - Label Withdraw Pending, BU - Alternate For Fast Re-Route
e - Label ELC
FEC Flags:
LF - Lower FEC, UF - Upper FEC, M - Community Mismatch,
BA - ASBR Backup FEC
===============================================================================
LDP Generic IPv4 P2MP Bindings (Active)
===============================================================================
P2MP-Id Interface
RootAddr Op
IngLbl EgrLbl
EgrNH EgrIf/LspId
-------------------------------------------------------------------------------
5000 73728
192.0.2.1 Pop
524283 --
-- --
-------------------------------------------------------------------------------
No. of Generic IPv4 P2MP Active Bindings: 1
===============================================================================
[/]
A:admin@PE-4# show router ldp bindings p2mp opaque-type generic ipv4 detail
===============================================================================
LDP Bindings (IPv4 LSR ID 192.0.2.4)
(IPv6 LSR ID ::)
===============================================================================
Label Status:
U - Label In Use, N - Label Not In Use, W - Label Withdrawn
WP - Label Withdraw Pending, BU - Alternate For Fast Re-Route
e - Label ELC
FEC Flags:
LF - Lower FEC, UF - Upper FEC, M - Community Mismatch,
BA - ASBR Backup FEC
==============================================================================
LDP Generic IPv4 P2MP Bindings
==============================================================================
-------------------------------------------------------------------------------
P2MP Type : 1 P2MP-Id : 5000
Root-Addr : 192.0.2.1
-------------------------------------------------------------------------------
Peer : 192.0.2.1:0
Ing Lbl : 524283U
Egr Lbl : --
Egr Int/LspId : --
EgrNextHop : --
Egr. Flags : None Ing. Flags : None
===============================================================================
No. of Generic IPv4 P2MP Bindings: 1
==============================================================================
PE-4 is only an egress node and not a transit node. There is no next hop.
Verify the LDP P2MP bindings on the leaf node PE-3, as follows:
[/]
A:admin@PE-3# show router ldp bindings active p2mp opaque-type generic ipv4
===============================================================================
LDP Bindings (IPv4 LSR ID 192.0.2.3)
(IPv6 LSR ID ::)
===============================================================================
Label Status:
U - Label In Use, N - Label Not In Use, W - Label Withdrawn
WP - Label Withdraw Pending, BU - Alternate For Fast Re-Route
e - Label ELC
FEC Flags:
LF - Lower FEC, UF - Upper FEC, M - Community Mismatch,
BA - ASBR Backup FEC
===============================================================================
LDP Generic IPv4 P2MP Bindings (Active)
===============================================================================
P2MP-Id Interface
RootAddr Op
IngLbl EgrLbl
EgrNH EgrIf/LspId
-------------------------------------------------------------------------------
5000 73728
192.0.2.1 Pop
524283 --
-- --
-------------------------------------------------------------------------------
No. of Generic IPv4 P2MP Active Bindings: 1
===============================================================================
Because PE-3 is an egress node, there is no next hop. The traffic toward PE-3 is sent via transit PE-2 and not via PE-4, as can be verified as follows:
[/]
A:admin@PE-3# show router ldp bindings p2mp opaque-type generic ipv4 detail
===============================================================================
LDP Bindings (IPv4 LSR ID 192.0.2.3)
(IPv6 LSR ID ::)
===============================================================================
Label Status:
U - Label In Use, N - Label Not In Use, W - Label Withdrawn
WP - Label Withdraw Pending, BU - Alternate For Fast Re-Route
e - Label ELC
FEC Flags:
LF - Lower FEC, UF - Upper FEC, M - Community Mismatch,
BA - ASBR Backup FEC
==============================================================================
LDP Generic IPv4 P2MP Bindings
==============================================================================
-------------------------------------------------------------------------------
P2MP Type : 1 P2MP-Id : 5000
Root-Addr : 192.0.2.1
-------------------------------------------------------------------------------
Peer : 192.0.2.2:0
Ing Lbl : 524283U
Egr Lbl : --
Egr Int/LspId : --
EgrNextHop : --
Egr. Flags : None Ing. Flags : None
===============================================================================
No. of Generic IPv4 P2MP Bindings: 1
==============================================================================
PE-2 has programmed a swap entry for the label it sent to its upstream node PE-1 with the next-hop address and the label it received from the downstream node, as follows:
[/]
A:admin@PE-2# show router ldp bindings active p2mp opaque-type generic ipv4
===============================================================================
LDP Bindings (IPv4 LSR ID 192.0.2.2)
(IPv6 LSR ID ::)
===============================================================================
Label Status:
U - Label In Use, N - Label Not In Use, W - Label Withdrawn
WP - Label Withdraw Pending, BU - Alternate For Fast Re-Route
e - Label ELC
FEC Flags:
LF - Lower FEC, UF - Upper FEC, M - Community Mismatch,
BA - ASBR Backup FEC
===============================================================================
LDP Generic IPv4 P2MP Bindings (Active)
===============================================================================
P2MP-Id Interface
RootAddr Op
IngLbl EgrLbl
EgrNH EgrIf/LspId
-------------------------------------------------------------------------------
5000 Unknw
192.0.2.1 Swap
524283 524283
192.168.23.2 1/1/c1/1
-------------------------------------------------------------------------------
No. of Generic IPv4 P2MP Active Bindings: 1
===============================================================================
[/]
A:admin@PE-2# show router ldp bindings p2mp opaque-type generic ipv4 detail
===============================================================================
LDP Bindings (IPv4 LSR ID 192.0.2.2)
(IPv6 LSR ID ::)
===============================================================================
Label Status:
U - Label In Use, N - Label Not In Use, W - Label Withdrawn
WP - Label Withdraw Pending, BU - Alternate For Fast Re-Route
e - Label ELC
FEC Flags:
LF - Lower FEC, UF - Upper FEC, M - Community Mismatch,
BA - ASBR Backup FEC
==============================================================================
LDP Generic IPv4 P2MP Bindings
==============================================================================
-------------------------------------------------------------------------------
P2MP Type : 1 P2MP-Id : 5000
Root-Addr : 192.0.2.1
-------------------------------------------------------------------------------
Peer : 192.0.2.1:0
Ing Lbl : 524283U
Egr Lbl : --
Egr Int/LspId : --
EgrNextHop : --
Egr. Flags : None Ing. Flags : None
-------------------------------------------------------------------------------
P2MP Type : 1 P2MP-Id : 5000
Root-Addr : 192.0.2.1
-------------------------------------------------------------------------------
Peer : 192.0.2.3:0
Ing Lbl : --
Egr Lbl : 524283
Egr Int/LspId : 1/1/c1/1
EgrNextHop : 192.168.23.2
Egr. Flags : None Ing. Flags : None
Egr If Name : int-PE-2-PE-3
Metric : 1 Mtu : 8922
===============================================================================
No. of Generic IPv4 P2MP Bindings: 2
==============================================================================
The egress next hop is PE-3.
On the root node PE-1, there is MPLS multicast replication. One traffic stream goes via transit node PE-2 toward leaf node PE-3 and the other traffic stream goes directly toward leaf node PE-4. There are two push entries with the corresponding next-hop address, as follows:
[/]
A:admin@PE-1# show router ldp bindings active p2mp opaque-type generic ipv4
===============================================================================
LDP Bindings (IPv4 LSR ID 192.0.2.1)
(IPv6 LSR ID ::)
===============================================================================
Label Status:
U - Label In Use, N - Label Not In Use, W - Label Withdrawn
WP - Label Withdraw Pending, BU - Alternate For Fast Re-Route
e - Label ELC
FEC Flags:
LF - Lower FEC, UF - Upper FEC, M - Community Mismatch,
BA - ASBR Backup FEC
===============================================================================
LDP Generic IPv4 P2MP Bindings (Active)
===============================================================================
P2MP-Id Interface
RootAddr Op
IngLbl EgrLbl
EgrNH EgrIf/LspId
-------------------------------------------------------------------------------
5000 73728
192.0.2.1 Push
-- 524283
192.168.12.2 1/1/c1/1
5000 73728
192.0.2.1 Push
-- 524283
192.168.14.2 1/1/c2/1
-------------------------------------------------------------------------------
No. of Generic IPv4 P2MP Active Bindings: 2
===============================================================================
[/]
A:admin@PE-1# show router ldp bindings p2mp opaque-type generic ipv4 detail
===============================================================================
LDP Bindings (IPv4 LSR ID 192.0.2.1)
(IPv6 LSR ID ::)
===============================================================================
Label Status:
U - Label In Use, N - Label Not In Use, W - Label Withdrawn
WP - Label Withdraw Pending, BU - Alternate For Fast Re-Route
e - Label ELC
FEC Flags:
LF - Lower FEC, UF - Upper FEC, M - Community Mismatch,
BA - ASBR Backup FEC
==============================================================================
LDP Generic IPv4 P2MP Bindings
==============================================================================
-------------------------------------------------------------------------------
P2MP Type : 1 P2MP-Id : 5000
Root-Addr : 192.0.2.1
-------------------------------------------------------------------------------
Peer : 192.0.2.2:0
Ing Lbl : --
Egr Lbl : 524283
Egr Int/LspId : 1/1/c1/1
EgrNextHop : 192.168.12.2
Egr. Flags : None Ing. Flags : None
Egr If Name : int-PE-1-PE-2
Metric : 1 Mtu : 8922
-------------------------------------------------------------------------------
P2MP Type : 1 P2MP-Id : 5000
Root-Addr : 192.0.2.1
-------------------------------------------------------------------------------
Peer : 192.0.2.4:0
Ing Lbl : --
Egr Lbl : 524283
Egr Int/LspId : 1/1/c2/1
EgrNextHop : 192.168.14.2
Egr. Flags : None Ing. Flags : None
Egr If Name : int-PE-1-PE-4
Metric : 1 Mtu : 8922
===============================================================================
No. of Generic IPv4 P2MP Bindings: 2
==============================================================================
Tools command
The following tools command can be launched on any of the nodes in the P2MP LSP.
For the ingress node PE-1, where one branch goes to transit node PE-2 (192.0.2.2) and another branch to leaf node PE-4 (192.0.2.4), the output is as follows:
[/]
A:admin@PE-1# tools dump router ldp fec p2mp-id 5000 root 192.0.2.1
P2MP: root: 192.0.2.1, T: 1, L: 4, TunnelId: 5000
Create Time : 09/06/23 21:43:41.278 (elapsed: 0d 00:11:16)
Last Mod. Time: 09/06/23 21:43:51.708 (elapsed: 0d 00:11:06)
FEC Flags : Push Mttm
FEC typedFlags: none
TunlIfId : 73728 (OperState : up)
mttmTunnAttr : None
LSP ID : 65540 LSP ID Acct. : 4
useMcastRteTbl: No mttmRd : 0x0
isIngressMttm : Yes HasLeaf : No
isIngrItermdte: No CanProgIngress: Yes
InPhopFrr : No InAsbrFrr : No
isStitchedUpr : No isLwrMbbCplte : No
stitchRteType : Rtm detctBkpAsbrLp: No
bkpLoop : No bkpAsbrLoop : No
sysIpAddr : 0.0.0.0
RslvdPhop(p) : 0.0.0.0:0 (seqNum 0 isBgp No isTtm No)
RslvdPhop(b) : 0.0.0.0:0 (seqNum 0 isBgp No isTtm No)
pri Upstream : None
mbb Upstream : None
bkp Upstream : None
AdvInLabel(p) : 0
AdvInLabel(b) : 0
RslvdAsbr(p) : 0.0.0.0 (seqNum 0 recursive: No vpn: No)
RslvdAsbr(b) : 0.0.0.0 (seqNum 0 recursive: No vpn: No)
Num Resolved Nhops : 2
Num MBB Req. Nhops : 0
Num Programmed Nhops : 2
Num MBB Req. Lwr Fecs : 0
Programmed Nhop[01] : 192.0.2.2:0, OutLabel 524283
Programmed Nhop[02] : 192.0.2.4:0, OutLabel 524283
Metric : 1 Mtu : 8922
Num of Peers : 2
FEC Peer: 192.0.2.2:0
Peer Flags: MPush (0x800)
ModTime : 09/06/23 21:43:50.310 (elapsed.: 0d 00:11:07)
->Num Egress Labels:
-> (Label: 524283 Status: UsePush)
Flow Label Tx: no, Rx: no
<-Num Ingress Labels:
None
<Resolved as Next Hop>
Next Hop Info :
metric: 1 mtu: 8922
[01]: Next Hop: 192.168.12.2 Interface: 2 Inner Label: 0
FEC Peer: 192.0.2.4:0
Peer Flags: MPush (0x800)
ModTime : 09/06/23 21:43:51.702 (elapsed.: 0d 00:11:06)
->Num Egress Labels:
-> (Label: 524283 Status: UsePush)
Flow Label Tx: no, Rx: no
<-Num Ingress Labels:
None
<Resolved as Next Hop>
Next Hop Info :
metric: 1 mtu: 8922
[01]: Next Hop: 192.168.14.2 Interface: 3 Inner Label: 0
The labels that are pushed at PE-1 are 524283 for traffic to PE-2 and 524283 for traffic to PE-4.
On transit node PE-2, the incoming label 524283 is swapped to outgoing label 524283 toward PE-3, as follows:
[/]
A:admin@PE-2# tools dump router ldp fec p2mp-id 5000 root 192.0.2.1
P2MP: root: 192.0.2.1, T: 1, L: 4, TunnelId: 5000
Create Time : 09/06/23 21:43:50.304 (elapsed: 0d 00:11:09)
Last Mod. Time: 09/06/23 21:43:50.304 (elapsed: 0d 00:11:09)
FEC Flags : Swap
FEC typedFlags: none
TunlIfId : 0 (OperState : dn)
mttmTunnAttr : None
LSP ID : 0 LSP ID Acct. : 0
useMcastRteTbl: No mttmRd : 0x0
isIngressMttm : No HasLeaf : No
isIngrItermdte: No CanProgIngress: No
InPhopFrr : No InAsbrFrr : No
isStitchedUpr : No isLwrMbbCplte : No
stitchRteType : None detctBkpAsbrLp: No
bkpLoop : No bkpAsbrLoop : No
sysIpAddr : 0.0.0.0
RslvdPhop(p) : 192.0.2.1:0 (seqNum 2 isBgp No isTtm No)
RslvdPhop(b) : 0.0.0.0:0 (seqNum 0 isBgp No isTtm No)
pri Upstream : 192.0.2.1:0, AdvLabel 524283
mbb Upstream : None
bkp Upstream : None
AdvInLabel(p) : 524283
AdvInLabel(b) : 0
RslvdAsbr(p) : 0.0.0.0 (seqNum 0 recursive: No vpn: No)
RslvdAsbr(b) : 0.0.0.0 (seqNum 0 recursive: No vpn: No)
PrgInLabel(b) : 1
Num Resolved Nhops : 1
Num MBB Req. Nhops : 0
Num Programmed Nhops : 1
Num MBB Req. Lwr Fecs : 0
Programmed Nhop[01] : 192.0.2.3:0, OutLabel 524283
Metric : 1 Mtu : 8922
Num of Peers : 2
FEC Peer: 192.0.2.1:0
Peer Flags: none (0x0)
ModTime : 09/06/23 21:43:50.309 (elapsed.: 0d 00:11:09)
->Num Egress Labels:
None
<-Num Ingress Labels:
<- (Label: 524283 Status: UseSwap)
Rej Status: OK
Flow Label Tx: no, Rx: no
Flow Label Tx Sent: no, Rx Sent: no
<Resolved as CUR Upstream>
FEC Peer: 192.0.2.3:0
Peer Flags: MSwap (0x1000)
ModTime : 09/06/23 21:43:50.301 (elapsed.: 0d 00:11:09)
->Num Egress Labels:
-> (Label: 524283 Status: UseSwap)
Flow Label Tx: no, Rx: no
<-Num Ingress Labels:
None
<Resolved as Next Hop>
Next Hop Info :
metric: 1 mtu: 8922
[01]: Next Hop: 192.168.23.2 Interface: 3 Inner Label: 0
On leaf node PE-3, the incoming label from PE-2 (524283) is popped. There is no next hop.
[/]
A:admin@PE-3# tools dump router ldp fec p2mp-id 5000 root 192.0.2.1
P2MP: root: 192.0.2.1, T: 1, L: 4, TunnelId: 5000
Create Time : 09/06/23 21:43:50.305 (elapsed: 0d 00:11:11)
Last Mod. Time: 09/06/23 21:43:50.305 (elapsed: 0d 00:11:11)
FEC Flags : Pop Mttm
FEC typedFlags: none
TunlIfId : 73728 (OperState : up)
mttmTunnAttr : None
LSP ID : 0 LSP ID Acct. : 0
useMcastRteTbl: No mttmRd : 0x0
isIngressMttm : No HasLeaf : Yes
isIngrItermdte: No CanProgIngress: No
InPhopFrr : No InAsbrFrr : No
isStitchedUpr : No isLwrMbbCplte : No
stitchRteType : None detctBkpAsbrLp: No
bkpLoop : No bkpAsbrLoop : No
sysIpAddr : 0.0.0.0
RslvdPhop(p) : 192.0.2.2:0 (seqNum 2 isBgp No isTtm No)
RslvdPhop(b) : 0.0.0.0:0 (seqNum 0 isBgp No isTtm No)
pri Upstream : 192.0.2.2:0, AdvLabel 524283
mbb Upstream : None
bkp Upstream : None
AdvInLabel(p) : 524283
AdvInLabel(b) : 0
RslvdAsbr(p) : 0.0.0.0 (seqNum 0 recursive: No vpn: No)
RslvdAsbr(b) : 0.0.0.0 (seqNum 0 recursive: No vpn: No)
PrgInLabel(b) : 1
Num Resolved Nhops : 1
Num MBB Req. Nhops : 0
Num Programmed Nhops : 1
Num MBB Req. Lwr Fecs : 0
Programmed Nhop[01] : 0.0.0.0:0, OutLabel 0 (Leaf)
Metric : 0 Mtu : 0
Num of Peers : 1
FEC Peer: 192.0.2.2:0
Peer Flags: none (0x0)
ModTime : 09/06/23 21:43:50.311 (elapsed.: 0d 00:11:11)
->Num Egress Labels:
None
<-Num Ingress Labels:
<- (Label: 524283 Status: UsePop)
Rej Status: OK
Flow Label Tx: no, Rx: no
Flow Label Tx Sent: no, Rx Sent: no
<Resolved as CUR Upstream>
The output for leaf node PE-4 is similar.
Debug commands
Debugging was enabled on the nodes when LDP was configured. To distinguish which messages are being logged for a debug command, the debug configuration is different for the nodes, as follows:
# on PE-2:
debug {
router "Base" {
ldp {
peer 192.0.2.1 {
event {
bindings { }
}
# on PE-3::
debug {
router "Base" {
ldp {
peer 192.0.2.2 {
packet {
label {
detail true
}
# on PE-4:
debug {
router "Base" {
ldp {
peer 192.0.2.1 {
packet {
init {
detail true
}
The following LDP messages are logged. The first two messages correspond to the label mapping messages to establish LDP bindings. The following message is sent from transit node PE-2 to root node PE-1.
# on PE-2:
debug {
router "Base" {
ldp {
peer 192.0.2.1 {
event {
bindings { }
}
# on PE-2:
7 2023/09/06 23:43:50.308 CEST MINOR: DEBUG #2001 Base LDP
"LDP: Binding
Sending Label mapping label 524283 for P2MP: root = 192.0.2.1, T: 1, L: 4, TunnelId: 5000
to peer 192.0.2.1:0."
The following LDP message is sent by the leaf node PE-3 to the transit node PE-2.
# on PE-3::
debug {
router "Base" {
ldp {
peer 192.0.2.2 {
packet {
label {
detail true
}
# on PE-3:
7 2023/09/06 23:43:50.307 CEST MINOR: DEBUG #2001 Base LDP
"LDP: LDP
Send Label Mapping packet (msgId 30) to 192.0.2.2:0
Protocol version = 1
Label 524283 advertised for the following FECs
P2MP: root = 192.0.2.1, T: 1, L: 4, TunnelId: 5000
"
The following message shows the negotiation of capabilities when LDP bindings are initialized.
# on PE-4:
debug {
router "Base" {
ldp {
peer 192.0.2.1 {
packet {
init {
detail true
}
# on PE-4:
1 2023/09/06 23:41:22.613 CEST MINOR: DEBUG #2001 Base LDP
"LDP: LDP
Send Initialization packet (msgId 2) to 192.0.2.1:0
Protocol version = 1
Keepalive Timeout = 30 Label Advertisement = downStreamUnsolicited
Loop Detection = Off PathVector Limit = 0 Max Pdu = 4096
P2MP Capability = yes
MP MBB Capability = yes
Overload Capability = yes
Dynamic Capability = yes
Unrecognized Notification Capability = yes
"
Configure multicast LDP and verify traffic
Configure PIM and IGMP on the root and leaf nodes
PIM needs to be enabled on the root node on the interface toward the multicast source S-1, as follows:
# on PE-1:
configure {
router "Base" {
pim {
interface "int-PE-1-S-1" { }
}
On the leaf nodes, PIM needs to be enabled (no shutdown), but no interfaces need to be assigned.
The IGMP configuration for root node PE-1 is needed to forward the incoming traffic for multicast group 232.1.1.1 from source 172.16.11.2 to the tunnel-interface. If IGMP is not configured, the incoming traffic on the interface toward the multicast source is dropped, because no outgoing interface is defined.
# on PE-1:
configure {
router "Base" {
igmp {
tunnel-interface {
ldp-p2mp-root 5000 sender-address 192.0.2.1 {
static {
group 232.1.1.1 {
source 172.16.11.2 { }
}
The IGMP configuration for leaf node PE-3 is as follows:
# on PE-3:
configure {
router "Base" {
igmp {
interface "int-PE-3-H-3" {
static {
group 232.1.1.1 {
source 172.16.11.2 { }
}
The incoming traffic from the tunnel interface is forwarded to the outgoing interface toward the receiving multicast host H-3.
The IGMP configuration for leaf node PE-4 is similar.
At this point, the IGMP/PIM configuration on the root node is complete. This can be verified, as follows:
[/]
A:admin@PE-1# show router pim group
===============================================================================
Legend: A = Active S = Standby
===============================================================================
PIM Groups ipv4
===============================================================================
Group Address Type Spt Bit Inc Intf No.Oifs
Source Address RP State Inc Intf(S)
-------------------------------------------------------------------------------
232.1.1.1 (S,G) int-PE-1-S-1 1
172.16.11.2
-------------------------------------------------------------------------------
Groups : 1
===============================================================================
[/]
A:admin@PE-1# show router pim group detail
===============================================================================
PIM Source Group ipv4
===============================================================================
Group Address : 232.1.1.1
Source Address : 172.16.11.2
RP Address : 0
Advt Router : 192.0.2.1
Flags : Type : (S,G)
Mode : sparse
MRIB Next Hop : 172.16.11.2
MRIB Src Flags : direct
Keepalive Timer : Not Running
Up Time : 0d 00:03:32 Resolved By : rtable-u
Up JP State : Joined Up JP Expiry : 0d 00:00:00
Up JP Rpt : Not Joined StarG Up JP Rpt Override : 0d 00:00:00
Register State : No Info
Reg From Anycast RP: No
Rpf Neighbor : 172.16.11.2
Incoming Intf : int-PE-1-S-1
Outgoing Intf List : mpls-if-73728
Curr Fwding Rate : 9751.560 kbps
Forwarded Packets : 17930 Discarded Packets : 0
Forwarded Octets : 26572260 RPF Mismatches : 0
Spt threshold : 0 kbps ECMP opt threshold : 7
Admin bandwidth : 1 kbps
-------------------------------------------------------------------------------
Groups : 1
===============================================================================
The incoming interface is the interface facing the multicast source S-1. The outgoing interface is a reference to the tunnel interface. The name for the outgoing interface (mpls-if-73728) contains the tunnel interface index 73728 as in previous CLI output. The multicast source S-1 is already sending traffic, but the receivers cannot receive it yet.
The configuration on the leaf nodes is still incomplete. A multicast policy needs to be configured and applied first.
Configure and apply multicast policy on leaf nodes
The leaf nodes need to get multicast traffic off the LDP P2MP LSP. Therefore, a multicast policy needs to be created and applied, as follows:
# on PE-3 and PE-4:
configure {
multicast-management {
multicast-info-policy "p2mp-pol" {
bundle "bundle1" {
primary-tunnel-interface {
ldp-p2mp 5000
sender 192.0.2.1
}
channel start 232.1.1.1 end 232.1.1.1 { }
}
configure {
router "Base" {
multicast-info-policy "p2mp-pol"
}
Verify multicast traffic on leaf nodes
Verify the multicast traffic, as follows:
[/]
A:admin@PE-3# show router pim group
===============================================================================
Legend: A = Active S = Standby
===============================================================================
PIM Groups ipv4
===============================================================================
Group Address Type Spt Bit Inc Intf No.Oifs
Source Address RP State Inc Intf(S)
-------------------------------------------------------------------------------
232.1.1.1 (S,G) mpls-if-73728 1
172.16.11.2
-------------------------------------------------------------------------------
Groups : 1
===============================================================================
The multicast source S-1 sends a multicast stream with group address 232.1.1.1. The multicast traffic is received by the leaf nodes, which can be verified as follows:
[/]
A:admin@PE-3# show router pim group detail
===============================================================================
PIM Source Group ipv4
===============================================================================
Group Address : 232.1.1.1
Source Address : 172.16.11.2
RP Address : 0
Advt Router :
Flags : Type : (S,G)
Mode : sparse
MRIB Next Hop :
MRIB Src Flags : remote
Keepalive Timer : Not Running
Up Time : 0d 00:03:26 Resolved By : unresolved
Up JP State : Joined Up JP Expiry : 0d 00:00:05
Up JP Rpt : Not Joined StarG Up JP Rpt Override : 0d 00:00:00
Register State : No Info
Reg From Anycast RP: No
Rpf Neighbor :
Incoming Intf : mpls-if-73728
Outgoing Intf List : int-PE-3-H-3
Curr Fwding Rate : 9751.560 kbps
Forwarded Packets : 19246 Discarded Packets : 0
Forwarded Octets : 28522572 RPF Mismatches : 0
Spt threshold : 0 kbps ECMP opt threshold : 7
Admin bandwidth : 1 kbps
-------------------------------------------------------------------------------
Groups : 1
===============================================================================
The incoming interface is from the tunnel interface, whereas the outgoing interface is toward the receiving multicast host H-3.
mLDP fast upstream switchover
mLDP fast upstream switchover allows a downstream node of an mLDP FEC to perform a fast switchover and source the traffic from another upstream node. This switchover is necessary when IGP and LDP are converging after a failure of the upstream LSR, which is the primary next hop of the root LSR for the P2MP FEC. There is traffic duplication toward the node that has the upstream alternate backup (in this case to PE-3), but only one stream is accepted. The multicast stream is sent to the primary next hop as well as to the loopfree alternate backup. As long as there is no failure, the primary next hop accepts the traffic and forwards it. The backup rejects the traffic. When a failure occurs and the primary LDP session goes down, the backup starts accepting packets.
mLDP fast upstream switchover provides an upstream Fast Reroute (FRR) node-protection capability for the mLDP FEC packets. This multicast upstream FRR node protection is at the expense of traffic duplication from two different upstream nodes into the node that performs the fast upstream switchover. This feature is described in draft-pdutta-mpls-mldp-up-redundancy.
Multicast upstream FRR can be configured for mLDP, as follows:
# on PE-1:
configure {
router "Base" {
ospf 0 {
loopfree-alternate { }
}
ldp {
mcast-upstream-frr true
}
}
This configuration can be repeated on some or all of the nodes. In this example, it is configured on all nodes. FRR for unicast can be configured in combination with this, but that is not required. FRR for unicast can be enabled as follows:
# on all nodes:
configure {
routing-options {
ip-fast-reroute true
}
router "Base" {
ldp {
fast-reroute { }
}
}
}
In this example, it is assumed that unicast IP and unicast LDP prefixes do not need to be protected. Therefore, unicast FRR remains disabled.
FRR can be verified as disabled for unicast (FRR) and enabled for multicast (Mcast Upstream FRR), as follows:
[/]
A:admin@PE-1# show router ldp status
===============================================================================
LDP Status for IPv4 LSR ID 192.0.2.1
IPv6 LSR ID ::
===============================================================================
---snip---
Admin State : Up
IPv4 Oper State : Up IPv6 Oper State : Down
---snip---
FRR : Disabled Mcast Upstream FRR : Enabled
Mcast Upst ASBR FRR: Disabled
MP MBB Time : 3
---snip---
-------------------------------------------------------------------------------
Capabilities
-------------------------------------------------------------------------------
Dynamic : Enabled P2MP : Enabled
IPv4 Prefix Fec : Enabled IPv6 Prefix Fec : Enabled
Service Fec128 : Enabled Service Fec129 : Enabled
MP MBB : Enabled Overload : Enabled
Unrecognized Notif*: Enabled
===============================================================================
* indicates that the corresponding row element may have been truncated.
Of the three nodes in the example topology that have upstream nodes, only PE-3 has an upstream alternate for FRR. PE-4 becomes a transit node for traffic destined for PE-3 (but PE-3 drops it, until the primary LDP session fails). PE-3 sends a label mapping message to PE-4 for label 524282, as in the following trace message.
# on PE-3:
8 2023/09/07 00:00:27.538 CEST MINOR: DEBUG #2001 Base LDP
"LDP: LDP
Send Label Mapping packet (msgId 140) to 192.0.2.4:0
Protocol version = 1
Label 524282 advertised for the following FECs
P2MP: root = 192.0.2.1, T: 1, L: 4, TunnelId: 5000
MP Status MBB = REQ
"
PE-4 has an additional LDP P2MP binding where the label is swapped, as follows:
[/]
A:admin@PE-4# show router ldp bindings active p2mp opaque-type generic ipv4
===============================================================================
LDP Bindings (IPv4 LSR ID 192.0.2.4)
(IPv6 LSR ID ::)
===============================================================================
Label Status:
U - Label In Use, N - Label Not In Use, W - Label Withdrawn
WP - Label Withdraw Pending, BU - Alternate For Fast Re-Route
e - Label ELC
FEC Flags:
LF - Lower FEC, UF - Upper FEC, M - Community Mismatch,
BA - ASBR Backup FEC
===============================================================================
LDP Generic IPv4 P2MP Bindings (Active)
===============================================================================
P2MP-Id Interface
RootAddr Op
IngLbl EgrLbl
EgrNH EgrIf/LspId
-------------------------------------------------------------------------------
5000 73728
192.0.2.1 Pop
524283 --
-- --
5000 73728
192.0.2.1 Swap
524283 524282
192.168.34.1 1/1/c2/1
-------------------------------------------------------------------------------
No. of Generic IPv4 P2MP Active Bindings: 2
===============================================================================
PE-3 has an additional entry for the FRR backup that is available (BU - Alternate for Fast Re-Route). PE-3 gets duplicated traffic, but rejects all traffic from PE-4 and only accept traffic from PE-2 as long as there is no failover.
[/]
A:admin@PE-3# show router ldp bindings active p2mp opaque-type generic ipv4
===============================================================================
LDP Bindings (IPv4 LSR ID 192.0.2.3)
(IPv6 LSR ID ::)
===============================================================================
Label Status:
U - Label In Use, N - Label Not In Use, W - Label Withdrawn
WP - Label Withdraw Pending, BU - Alternate For Fast Re-Route
e - Label ELC
FEC Flags:
LF - Lower FEC, UF - Upper FEC, M - Community Mismatch,
BA - ASBR Backup FEC
===============================================================================
LDP Generic IPv4 P2MP Bindings (Active)
===============================================================================
P2MP-Id Interface
RootAddr Op
IngLbl EgrLbl
EgrNH EgrIf/LspId
-------------------------------------------------------------------------------
5000 73728
192.0.2.1 Pop
524283 --
-- --
5000 73728
192.0.2.1 Pop
524282BU --
-- --
-------------------------------------------------------------------------------
No. of Generic IPv4 P2MP Active Bindings: 2
===============================================================================
Because LoopFree Alternate (LFA) and ECMP are mutually exclusive, LFA is only useful when ECMP is disabled. When both are enabled, ECMP has preference.
mLDP fast upstream switchover relies on the fast detection of loss of the LDP session to the upstream peer to which the primary Ingress Label Map (ILM) label had been advertised. As a result, Nokia recommends to perform the following:
Enable Bidirectional Forwarding Detection (BFD) on all LDP interfaces to upstream LSR nodes. When BFD detects the loss of the last adjacency to the upstream LSR, BFD brings down the LDP session immediately. The backup ILM is activated.
If there is a concurrent T-LDP adjacency to the same LSR node, enable BFD on the T-LDP peer as well as on the interface.
Enable the ldp-sync-timer option on all interfaces to the upstream LSR nodes.
If the LDP session for the primary ILM to the upstream LSR goes down for any other reason than a failure of the interface or of the upstream LSR, routing and LDP go out of sync. The backup ILM remains activated until the Interior Gateway Protocol (IGP) seeks the next Shortest Path First (SPF). By enabling the ldp-sync-timer, this process is accelerated because the advertised link metric gets the maximum value as soon as the LDP session goes down. This triggers the IGP to calculate an SPF route. See chapter LDP-IGP Synchronization.
The FRR configuration can be removed, as follows:
# on all nodes:
configure {
router "Base" {
ldp {
delete mcast-upstream-frr
}
ospf 0 {
delete loopfree-alternate
}
}
Multipoint make-before-break (MP MBB)
Multipoint MBB is performed when the best path to the root changes, but the existing path can still be used, such as when a link comes up or when the routing metric changes. The goal of MBB is to establish a new P2MP LSP before the old P2MP is removed, so as to avoid traffic loss.
Leaf or transit nodes must allocate a new label and program the ILM with a duplicate set of existing Next-Hop Label Forwarding Entries (NHLFEs) toward the upstream nodes. This may lead to traffic duplication for a short period of time.
Multipoint MBB is enabled by default, as follows:
[/]
A:admin@PE-3# show router ldp status
===============================================================================
LDP Status for IPv4 LSR ID 192.0.2.3
IPv6 LSR ID ::
===============================================================================
---snip---
Admin State : Up
IPv4 Oper State : Up IPv6 Oper State : Down
---snip---
MP MBB Time : 3
---snip---
-------------------------------------------------------------------------------
Capabilities
-------------------------------------------------------------------------------
Dynamic : Enabled P2MP : Enabled
IPv4 Prefix Fec : Enabled IPv6 Prefix Fec : Enabled
Service Fec128 : Enabled Service Fec129 : Enabled
MP MBB : Enabled Overload : Enabled
Unrecognized Notif*: Enabled
===============================================================================
* indicates that the corresponding row element may have been truncated.
When the metric is increased on the interface (int-PE-3-PE-2) toward the active upstream node, PE-3 sends out an OSPF link status update. Traffic still arrives at PE-3 using the original P2MP LSP. The MBB P2MP LSP is set up.
PE-3 sends a label mapping message toward PE-4, including an MP status TLV carrying an MBB status code indicating that MBB procedures apply to the LSP. PE-4 sends an LDP notification toward PE-3, including an MP status TLV indicating that PE-4 has a state for the existing P2MP LSP.
PE-3 sends an LDP withdrawal message to PE-2. PE-2 replies with an LDP release message.
The multicast traffic arrives at PE-3 using the new LDP P2MP LSP. This way, PE-4 becomes a bud node, and PE-2 is not used for transit anymore; see New LDP P2MP LSP after metric change.
Originally, leaf node PE-3 preferred the route via PE-2 toward root node PE-1, as follows:
[/]
A:admin@PE-3# show router route-table 192.0.2.1
===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags] Type Proto Age Pref
Next Hop[Interface Name] Metric
-------------------------------------------------------------------------------
192.0.2.1/32 Remote OSPF 00h23m14s 10
192.168.23.1 2
-------------------------------------------------------------------------------
No. of Routes: 1
---snip---
===============================================================================
Consequently, the label map messages were originally sent to PE-2, not to PE-4. PE-2 is the transit node for traffic destined for PE-3, as follows:
[/]
A:admin@PE-2# show router ldp bindings active p2mp opaque-type generic ipv4
===============================================================================
LDP Bindings (IPv4 LSR ID 192.0.2.2)
(IPv6 LSR ID ::)
===============================================================================
Label Status:
U - Label In Use, N - Label Not In Use, W - Label Withdrawn
WP - Label Withdraw Pending, BU - Alternate For Fast Re-Route
e - Label ELC
FEC Flags:
LF - Lower FEC, UF - Upper FEC, M - Community Mismatch,
BA - ASBR Backup FEC
===============================================================================
LDP Generic IPv4 P2MP Bindings (Active)
===============================================================================
P2MP-Id Interface
RootAddr Op
IngLbl EgrLbl
EgrNH EgrIf/LspId
-------------------------------------------------------------------------------
5000 Unknw
192.0.2.1 Swap
524283 524283
192.168.23.2 1/1/c1/1
-------------------------------------------------------------------------------
No. of Generic IPv4 P2MP Active Bindings: 1
===============================================================================
The metric is changed on the interface between PE-3 and PE-2, as follows:
# on PE-3:
configure {
router "Base" {
ospf 0 {
area 0.0.0.0 {
interface "int-PE-3-PE-2" {
metric 1000
}
The preferred route from leaf node PE-3 to root node PE-1 is now via PE-4, as follows:
[/]
A:admin@PE-3# show router route-table 192.0.2.1
===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags] Type Proto Age Pref
Next Hop[Interface Name] Metric
-------------------------------------------------------------------------------
192.0.2.1/32 Remote OSPF 00h00m23s 10
192.168.34.2 2
-------------------------------------------------------------------------------
No. of Routes: 1
---snip---
===============================================================================
The leaf node PE-3 prefers to set up a path from PE-4 instead of from PE-2. PE-3 sends label mapping messages to PE-4. The old P2MP LSP is used until the new P2MP LSP is set up. There is no traffic interruption.
PE-3 sends a label withdrawal message to PE-2 and PE-2 is no longer a transit node, as follows:
[/]
A:admin@PE-2# show router ldp bindings active p2mp opaque-type generic ipv4
===============================================================================
LDP Bindings (IPv4 LSR ID 192.0.2.2)
(IPv6 LSR ID ::)
===============================================================================
Label Status:
U - Label In Use, N - Label Not In Use, W - Label Withdrawn
WP - Label Withdraw Pending, BU - Alternate For Fast Re-Route
e - Label ELC
FEC Flags:
LF - Lower FEC, UF - Upper FEC, M - Community Mismatch,
BA - ASBR Backup FEC
===============================================================================
LDP Generic IPv4 P2MP Bindings (Active)
===============================================================================
P2MP-Id Interface
RootAddr Op
IngLbl EgrLbl
EgrNH EgrIf/LspId
-------------------------------------------------------------------------------
No Matching Entries Found
===============================================================================
PE-4 is the transit node for traffic to PE-3, and also has a local multicast client H-4, so it is a bud node, as follows:
[/]
A:admin@PE-4# show router ldp bindings active p2mp opaque-type generic ipv4
===============================================================================
LDP Bindings (IPv4 LSR ID 192.0.2.4)
(IPv6 LSR ID ::)
===============================================================================
Label Status:
U - Label In Use, N - Label Not In Use, W - Label Withdrawn
WP - Label Withdraw Pending, BU - Alternate For Fast Re-Route
e - Label ELC
FEC Flags:
LF - Lower FEC, UF - Upper FEC, M - Community Mismatch,
BA - ASBR Backup FEC
===============================================================================
LDP Generic IPv4 P2MP Bindings (Active)
===============================================================================
P2MP-Id Interface
RootAddr Op
IngLbl EgrLbl
EgrNH EgrIf/LspId
-------------------------------------------------------------------------------
5000 73728
192.0.2.1 Pop
524283 --
-- --
5000 73728
192.0.2.1 Swap
524283 524282
192.168.34.1 1/1/c2/1
-------------------------------------------------------------------------------
No. of Generic IPv4 P2MP Active Bindings: 2
===============================================================================
There is no traffic multiplication at the root node PE-1. All traffic goes to PE-4, as follows:
[/]
A:admin@PE-1# show router ldp bindings active p2mp opaque-type generic ipv4
===============================================================================
LDP Bindings (IPv4 LSR ID 192.0.2.1)
(IPv6 LSR ID ::)
===============================================================================
Label Status:
U - Label In Use, N - Label Not In Use, W - Label Withdrawn
WP - Label Withdraw Pending, BU - Alternate For Fast Re-Route
e - Label ELC
FEC Flags:
LF - Lower FEC, UF - Upper FEC, M - Community Mismatch,
BA - ASBR Backup FEC
===============================================================================
LDP Generic IPv4 P2MP Bindings (Active)
===============================================================================
P2MP-Id Interface
RootAddr Op
IngLbl EgrLbl
EgrNH EgrIf/LspId
-------------------------------------------------------------------------------
5000 73728
192.0.2.1 Push
-- 524283
192.168.14.2 1/1/c2/1
-------------------------------------------------------------------------------
No. of Generic IPv4 P2MP Active Bindings: 1
===============================================================================
The switchover to this new P2MP LSP occurred without traffic loss.
The following debugging was enabled before the metric change:
# on PE-3:
debug {
router "Base" {
ldp {
peer 192.0.2.2 {
packet {
label {
detail true
}
init {
detail true
}
}
}
peer 192.0.2.4 {
packet {
label {
detail true
}
init {
detail true
}
}
}
}
The first trace message shows that label 524282 is advertised to PE-4. MBB is requested, as follows:
# on PE-3:
12 2023/09/07 00:02:53.483 CEST MINOR: DEBUG #2001 Base LDP
"LDP: LDP
Send Label Mapping packet (msgId 157) to 192.0.2.4:0
Protocol version = 1
Label 524282 advertised for the following FECs
P2MP: root = 192.0.2.1, T: 1, L: 4, TunnelId: 5000
MP Status MBB = REQ
"
The next message is a notification from PE-4 confirming that there is no fatal error and MBB can be applied, as follows:
# on PE-3:
13 2023/09/07 00:02:53.485 CEST MINOR: DEBUG #2001 Base LDP
"LDP: LDP
Recv Notification packet (msgId 157) from 192.0.2.4:0
Protocol version = 1
Status Code = MPStatus (0x00000040) Non-fatal
Causing message Id = 0
Causing message type = NULL
P2MP: root = 192.0.2.1, T: 1, L: 4, TunnelId: 5000
MP Status MBB = ACK
"
The following message is a label withdraw message for label 524283 sent to PE-2:
# on PE-3:
14 2023/09/07 00:02:53.485 CEST MINOR: DEBUG #2001 Base LDP
"LDP: LDP
Send Label Withdraw packet (msgId 158) to 192.0.2.2:0
Protocol version = 1
Label 524283 withdrawn for the following FECs
P2MP: root = 192.0.2.1, T: 1, L: 4, TunnelId: 5000
"
The last message is a label release message for label 524283 received from PE-2, as follows. This message is only sent after the new P2MP LSP is set up.
# on PE-3:
15 2023/09/07 00:02:53.486 CEST MINOR: DEBUG #2001 Base LDP
"LDP: LDP
Recv Label Release packet (msgId 157) from 192.0.2.2:0
Protocol version = 1
Label 524283 released for the following FECs
P2MP: root = 192.0.2.1, T: 1, L: 4, TunnelId: 5000
"
Conclusion
Multicast LDP provides extensions to the LDP protocol for the setup of P2MP and MP2MP LSPs in MPLS networks. mLDP is simple to configure compared to RSVP. FRR and MBB are supported for mLDP.