目录

简介

背景信息

带内信令

此配置文件中使用的不透明值

MLDP核心树

P2MP树

MP2MP树

不透明值

重叠信令

MLDP LSP类型

标签交换组播

拓扑

配置

验证

详细验证

如何构建控制平面？

步骤1.在核心中配置MLDP后，会进行这些消息交换。

步骤2.在核心中启用到MLDP的带内信令。

接收方在线

源启动流

数据包捕获(PCAP)

LSPVIF验证

结论

相关信息

简介

本文档介绍带内信令全局MLDP，它是VPN(mVPN)下一代组播的配置文件7。 它使用Cisco IOS中的示例和实施来说明该行为。

背景信息

- P2MP mLDP带内树核；no C-multicast Routing。

- 客户流量可以是SM S、G或SSM。

- 支持PE上的全局表(S、G)。

- mLDP不需要核心中的PIM

带内信令

不透明值用于将MP LSP映射到IP组播流。

不透明值的内容从组播流导出。

此配置文件中使用的不透明值

IPv4 PIM-SSM传输允许全局PIM-SSM流通过多协议标签交换机(MPLS)核心传输。不透明值包含实际(S， G)，该实际(S， G)驻留在入口和出口PE路由器的全局mroute表中。

不仅不透明值唯一标识MP LSP，而且它还可以从边缘IP组播网络传送(S， G)流信息。MP标签交换路径(LSP)中的P路由器不需要分析不透明值，而是将该值用作本地MP LSP数据库的索引，以确定将组播数据包复制到的下一跳。但是，入口PE LSP（最接近源）会解码值，以便它可以为传入(S， G)流选择正确的MP LSP。出口PE可以使用值将(S， G)状态安装到本地VRF或全局路由表中。

1. LSM允许对单播和组播流量使用单个MPLS转发平面。

2. LSM支持现有MPLS保护(例如，MPLS(TE/RSVP)和MPLS(OAM)机制，用于组播流量。

3. LSM由于MPLS核心网络中无需PIM，降低了运营复杂性。

MLDP核心树

P2MP树

接收方驱动程序和根学习者使用MLDP P2MP FEC发出信号。

唯一标识：

- 根节点地址

- P2MP LSP -ID [32位]

MP2MP树

配置驱动和根桥是手动配置的。

唯一标识：

- 根节点地址

- MP2MP LSP -ID [32位]

不透明值

用于传送组播流信息，对根和枝叶有意义。

- (S，G)带内信令

- LSPID（默认/数据）

类型1:由MDLP定义，包含用于管理P2MP / MP2MP LSP的ID空间的LSP-ID。

第2类：定义用于调配MP-LDP隧道，并用于BGP-MVPN，无任何重叠。

重叠信令

MLDP LSP类型

标签交换组播

支持使用标签的组播的MPLS技术扩展：

- 点对多点LSP

- 多点对多点LSP

P2MP

MP2MP

标签

上游分配

上游和下游

流量

下行流

上游和下游

根

入口路由器

提供/提供边缘

流量类型

控制路由器

仅控制流量

LSP类型

根到多叶

多根树叶

拓扑

配置

步骤1.在核心节点中启用MPLS MLDP。

在PE1、PE2和PE3上：

# mpls mldp logging

步骤2.在核心中启用MLDP带内信令。

在PE1、PE2和PE3上：

# ip multicast mpls mldp

# ip pim mpls source loopback 0

步骤3.启用组播路由。

在所有节点上：

# ip multicast-routing

步骤4.在客户边缘(CE)中启用协议无关组播(PIM)SSM。

在CE节点上：

# ip pim ssm default

步骤5.在所有CE接口和提供商边缘(PE)接口中启用PIM SM。

在CE1、CE2、CE3和所有面向CE的PE接口上：

# interface x/x

# ip pim sparse-mode

# interface loopback x/x

# ip pim sparse-mode

注意：x表示PE连接到CE的接口号，反之亦然。

验证

任务 1：验证物理连接.

- 验证所有连接的接口都是UP。

任务 2：检验BGP地址系列IPv4单播

- 验证所有路由器中是否为AF IPv4单播启用了边界网关协议(BGP)，且BGP邻居已启用。

- 检验BGP IPv4表是否具有所有客户前缀。

任务 3：检验端到端组播流量。

- 检查与所连接的PIM邻居的PIM邻居关系。

- 验证组播状态已创建。

- 关于PE1、PE2和PE3上的PE mRIB条目

- 验证(S， G)mFIB条目，数据包在软件转发时递增。

- 检验从CE到CE的ICMP数据包是否到达。

任务 4：检验MPLS核心。

- 检验MPLS LSP核心。

- 根据设计验证核心内的MPLS转发。

- 用于IPv4的MPLS P2MP LSP ping。

详细验证

内部网关协议(IGP)、MPLS LDP、边界网关协议(BGP)在我们的网络端到端中运行正常。

在本节中，验证是否签入核心/聚合网络。检查MPLS网络上流量的邻接和控制平面和数据平面。

要验证本地和远程CE设备能够通过多协议标签交换(MPLS)核心通信，请执行图像中所示的步骤：

如何构建控制平面？

验证控制平面，当PE路由器根据IP报头转发时，在控制平面中会发生标签强加，并在数据包进入MPLS网络时向其添加MPLS标签。

在标签实施方向，路由器根据思科快速转发(CEF)表查找来交换数据包，以查找下一跳，并添加存储在FIB中的适当标签信息，以用于目标。当路由器在MPLS数据包的核心层执行标签交换时，路由器会执行MPLS表查找。路由器从CEF表和标签信息库(LIB)中的信息中导出此MPLS表(LFIB)。

当PE路由器收到MPLS数据包，根据MPLS标签做出转发决策，删除标签，并发送IP数据包时，会发生标签处置。PE路由器使用LFIB确定数据包在此方向上的路径。如前所述，特殊iBGP会话可促进VPNv4前缀及其标签在PE路由器之间的通告。在通告PE时，BGP为本地获取的VPN前缀分配标签，并将其安装到标签转发信息库(LFIB)，即MPLS转发表。

步骤1.在核心中配置MLDP后，会进行这些消息交换。

MLDP-MFI: Enabled MLDP MFI client on Ethernet0/0; status =  ok

MLDP-MFI: Enabled MLDP MFI client on Ethernet0/1; status =  ok

MLDP: P2MP Wildcard label request sent to 11.11.11.11:0 success

MLDP: MP2MP Wildcard label request sent to 11.11.11.11:0 success

MLDP-NBR: 11.11.11.11:0 ask LDP for adjacencies

注意：使用# debug mpls mldp all检查之前的建立。

PE1#sh mpls mldp neighbors

MLDP peer ID    : 11.11.11.11:0, uptime 00:02:05 Up,

Target Adj     : No

Session hndl   : 1

Upstream count : 0

Branch count   : 0

Path count     : 1

Path(s)        : 10.0.1.2          LDP Ethernet0/1

Nhop count     : 0

步骤2.在核心中启用到MLDP的带内信令。

ip pim mpls source loopback 0

ip multicast mpls mldp

MLDP: Enabled IPv4 on Lspvif0 unnumbered with Loopback0

MLDP-MFI: Enabled MLDP MFI client on Lspvif0; status =  ok

PIM(*): PIM subblock added to Lspvif0

MLDP: Enable pim on lsp vif: Lspvif0

MLDP: Add success lsp vif: Lspvif0 address: 0.0.0.0 application: MLDP vrf_id: 0

MLDP-DB: Replaying database events for opaque type value: 3

%LINEPROTO-5-UPDOWN: Line protocol on Interface Lspvif0, changed state to up

PIM(0): Check DR after interface: Lspvif0 came up!

%PIM-5-DRCHG: DR change from neighbor 0.0.0.0 to 1.1.1.1 on interface Lspvif0

注意：使用# debug mpls mldp all检查之前的建立。

PE1#sh int lspvif 0

Lspvif0 is up, line protocol is up

Hardware is

Interface is unnumbered. Using address of Loopback0 (1.1.1.1)

MTU 17940 bytes, BW 8000000 Kbit/sec, DLY 5000 usec,

reliability 255/255, txload 1/255, rxload 1/255

Encapsulation LOOPBACK, loopback not set

注意：MPLS MLDP尚未创建，因为接收方尚未联机。

接收方3联机，并将PIM JOIN(S， G)消息发送到PE3。

接收方在线

PIM(0): Received v2 Join/Prune on Ethernet0/2 from 10.2.0.2, to us

PIM(0): Join-list: (10.1.0.2/32, 232.1.1.1), S-bit set

MRT(0): Create (*,232.1.1.1), RPF (unknown, 0.0.0.0, 2147483647/0)

MRT(0): RPF Track start on 10.1.0.2 for (10.1.0.2, 232.1.1.1)

MRT(0): Reset the z-flag for (10.1.0.2, 232.1.1.1)

MLDP: Enabled IPv4 on Lspvif1 unnumbered with Loopback0

MLDP-MFI: Enable lsd on int failed; not registered;

PIM(*): PIM subblock added to Lspvif1

MLDP: Enable pim on lsp vif: Lspvif1

MLDP: Add success lsp vif: Lspvif1 address: 1.1.1.1 application: MLDP vrf_id: 0

MLDP-MRIB-IP: (10.1.0.2,232.1.1.1/32) update (t=0) RPF: 0.0.0.0

MLDP-MRIB-IP: (10.1.0.2,232.1.1.1/32) set rpf nbr: 0.0.0.0

MLDP-MRIB-IP: wavl insert success (10.1.0.2, 232.1.1.1)

MLDP-MRIB-IP: no RPF neighbor, done!

MLDP-MRIB-IP: (10.1.0.2,232.1.1.1/32) update (t=1) RPF: 1.1.1.1

MLDP-MRIB-IP: (10.1.0.2,232.1.1.1/32) set rpf nbr: 1.1.1.1

MLDP-MRIB-IP: Change RPF neighbor from 0.0.0.0 to 1.1.1.1

MLDP-MRIB-IP: (10.1.0.2,232.1.1.1/32) update idb = Lspvif1, (f=2,c=2)

MLDP-MRIB-IP: add accepting interface: Lspvif1 root: 1.1.1.1

MLDP-MRIB-IP: change interface from NULL to Lspvif1

%LINEPROTO-5-UPDOWN: Line protocol on Interface Lspvif1, changed state to up

PIM(0): Check DR after interface: Lspvif1 came up!

PIM(0): Changing DR for Lspvif1, from 0.0.0.0 to 2.2.2.2 (this system)

%PIM-5-DRCHG: DR change from neighbor 0.0.0.0 to 2.2.2.2 on interface Lspvif1

注意：使用# debug mpls mldp all和# debug ip bgp ipv4 mvpn updates Debugs检查指定的建立。

来自接收方(S，G)加入的任何通信都会转换为MLDP，并且所有消息都会传输到Lspvif 1

由于MLDP是接收方驱动协议，因此PIM JOIN(S，G)从接收方到源建立MLDP数据库。这是P2MP MLDP的下游标签分配。

注意：在带内信令中，每个入口PE创建标签交换路径虚拟接口(LSPVIF)，以实施严格RPF，即。(S，G)数据包仅在来自预期远程PE时接受；这是LSPVIF1。源PE（默认LSPVIF）用于转发到核心。请注意，没有LSPVIF接口号的符号，即lspvif0并不总是默认接口，lspvif1并不总是每PE接口。这些数字根据需要按需分配。

PE3#sh ip mroute 232.1.1.1 verbose

IP Multicast Routing Table

Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,

T - SPT-bit set, p - PIM Joins on route,

(10.1.0.2, 232.1.1.1), 00:19:28/00:02:42, flags: sTp

Incoming interface: Lspvif1, RPF nbr 1.1.1.1

Outgoing interface list:

Ethernet0/0, Forward/Sparse, 00:19:28/00:02:42, p

PE3#sh mpls mldp database

* For interface indicates MLDP recursive forwarding is enabled

* For RPF-ID indicates wildcard value

> Indicates it is a Primary MLDP MDT Branch

LSM ID : 1   Type: P2MP   Uptime : 00:28:02

FEC Root           : 1.1.1.1

Opaque decoded     : [ipv4 10.1.0.2 232.1.1.1]

Opaque length      : 8 bytes

Opaque value       : 03 0008 0A010002E8010101

Upstream client(s) :

11.11.11.11:0    [Active]

Expires        : Never         Path Set ID  : 1

Out Label (U)  : None          Interface    : Ethernet0/3*

Local Label (D): 24            Next Hop     : 10.0.3.2

Replication client(s):

MRIBv4(0)

Uptime         : 00:28:02      Path Set ID  : None

Interface      : Lspvif1

RR-P #sh mpls mldp database

* For interface indicates MLDP recursive forwarding is enabled

* For RPF-ID indicates wildcard value

> Indicates it is a Primary MLDP MDT Branch

LSM ID : A   Type: P2MP   Uptime : 00:40:52

FEC Root           : 1.1.1.1

Opaque decoded     : [ipv4 10.1.0.2 232.1.1.1]

Opaque length      : 8 bytes

Opaque value       : 03 0008 0A010002E8010101

Upstream client(s) :

1.1.1.1:0    [Active]

Expires        : Never         Path Set ID  : A

Out Label (U)  : None          Interface    : Ethernet0/1*

Local Label (D): 24            Next Hop     : 10.0.1.1

Replication client(s):

2.2.2.2:0

Uptime         : 00:40:52      Path Set ID  : None

Out label (D)  : 23            Interface    : Ethernet0/3*

Local label (U): None          Next Hop     : 10.0.2.1

3.3.3.3:0

Uptime         : 00:40:52      Path Set ID  : None

Out label (D)  : 24            Interface    : Ethernet0/2*

Local label (U): None          Next Hop     : 10.0.3.1

源PE根据下一跳的RPF查找收到的信息。

MLDP-LDP: [ipv4 10.1.0.2 232.1.1.1] label mapping from: 11.11.11.11:0 label: 23 root: 1.1.1.1 Opaque_len: 11 sess_hndl: 0x1

MLDP: LDP root 1.1.1.1 added

MLDP-DB: Added [ipv4 10.1.0.2 232.1.1.1] DB Entry

MLDP-DB: [ipv4 10.1.0.2 232.1.1.1] Changing branch 11.11.11.11:0 from Null/0.0.0.0 to Ethernet0/1/10.0.1.2

MLDP-MFI: Could not add Path type: PKT, Label: 23, Next hop: 11.11.11.11, Interface: NULL to set: 3, error 1

MLDP-DB: [ipv4 10.1.0.2 232.1.1.1] Added P2MP branch for 11.11.11.11:0 label 23

MLDP-MRIB-IP: [ipv4 10.1.0.2 232.1.1.1] client update: We are root

MLDP-MRIB-IP: wavl insert success (10.1.0.2, 232.1.1.1)

MLDP-MRIB-IP: [ipv4 10.1.0.2 232.1.1.1] Created: Lspvif0 for: 0.0.0.0

MLDP-MRIB: Created adjacency for LSM ID 3

MLDP-MRIB-IP: [ipv4 10.1.0.2 232.1.1.1] Created adjacency on Lspvif0

MLDP: nhop 1.1.1.1 added

MRT(0): Set the T-flag for (10.1.0.2, 232.1.1.1)

MRT(0): (10.1.0.2,232.1.1.1), RPF install from  /0.0.0.0 to Ethernet0/2/10.1.0.2

PIM(0): Insert (10.1.0.2,232.1.1.1) join in nbr 10.1.0.2's queue

MLDP-MRIB-IP: (10.1.0.2,232.1.1.1/32) update (t=1) RPF: 10.1.0.2

MLDP-MRIB-IP: (10.1.0.2,232.1.1.1/32) set rpf nbr: 10.1.0.2

MLDP-MRIB-IP: ignoring interface Ethernet0/2, no LS

注意：使用# debug mpls mldp all和# debug ip bgp ipv4 mvpn updates检查之前的建立。

PE1#sh ip mroute 232.1.1.1 verbose

IP Multicast Routing Table

Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,

L - Local, P - Pruned, R - RP-bit set, F - Register flag,

T - SPT-bit set, I - Received Source Specific Host Report,

(10.1.0.2, 232.1.1.1), 00:25:14/stopped, flags: sTI

Incoming interface: Ethernet0/2, RPF nbr 10.1.0.2

Outgoing interface list:

Lspvif0, LSM ID: 4, Forward/Sparse, 00:25:14/00:01:45

PE1# sh mpls mldp database

* For interface indicates MLDP recursive forwarding is enabled

* For RPF-ID indicates wildcard value

> Indicates it is a Primary MLDP MDT Branch

LSM ID : 4   Type: P2MP   Uptime : 00:25:25

FEC Root           : 1.1.1.1 (we are the root)

Opaque decoded     : [ipv4 10.1.0.2 232.1.1.1]

Opaque length      : 8 bytes

Opaque value       : 03 0008 0A010002E8010101

Upstream client(s) :

None

Expires        : N/A           Path Set ID  : 4

Replication client(s):

11.11.11.11:0

Uptime         : 00:25:25      Path Set ID  : None

Out label (D)  : 24            Interface    : Ethernet0/1*

Local label (U): None          Next Hop     : 10.0.1.2

MLDP-LDP: [id 0] Wildcard label request from: 11.11.11.11:0 label: 0 root: 6.2.0.0 Opaque_len: 0 sess_hndl: 0x1

MLDP-LDP: [ipv4 10.1.0.2 232.1.1.1] label mapping from: 11.11.11.11:0 label: 23 root: 1.1.1.1 Opaque_len: 11 sess_hndl: 0x1

Neighbor 11.11.11.11 request for the label request to PE1.

注意：通过重播其标签数据库以查找前缀，响应从对等体收到的键入的通配符标签请求。使用指向对等体的键入的通配符标签请求来请求对等体标签数据库的前缀重放。

MLDP-LDP: [ipv4 10.1.0.2 232.1.1.1] label mapping from: 11.11.11.11:0 label: 24 root: 1.1.1.1 Opaque_len: 11 sess_hndl: 0x1

MLDP: LDP root 1.1.1.1 added

MLDP-DB: Added [ipv4 10.1.0.2 232.1.1.1] DB Entry

MLDP-DB: [ipv4 10.1.0.2 232.1.1.1] Changing branch 11.11.11.11:0 from Null/0.0.0.0 to Ethernet0/1/10.0.1.2

%MLDP-5-ADD_BRANCH: [ipv4 10.1.0.2 232.1.1.1] Root: 1.1.1.1, Add P2MP branch 11.11.11.11:0 remote label 24

debug ip mfib pak

debug ip mfib mrib

源启动流

Traffic from Source 10.1.0.2 streaming from 232.1.1.1. Enters through ethernet0/2.

The packet got forwarded via Lspvif 0.

PIM(0): Insert (10.1.0.2,232.1.1.1) join in nbr 10.1.0.2's queue

PIM(0): Building Join/Prune packet for nbr 10.1.0.2

PIM(0):  Adding v2 (10.1.0.2/32, 232.1.1.1), S-bit Join

PIM(0): Send v2 join/prune to 10.1.0.2 (Ethernet0/2)

MFIBv4(0x0): Pkt (10.1.0.2,232.1.1.1) from Ethernet0/2 (FS) accepted for forwarding

MFIBv4(0x0): Pkt (10.1.0.2,232.1.1.1) from Ethernet0/2 (FS) sent on Lspvif0, LSM NBMA/4

数据包捕获(PCAP)

此数据包通过隧道进入Lspvif 0。

At the receiver Side:

At the receiver side the packet reach at the Lspvif 1.

MFIBv4(0x0): Pkt (10.1.0.2,232.1.1.1) from Lspvif1 (FS) accepted for forwarding

MFIBv4(0x0): Pkt (10.1.0.2,232.1.1.1) from Lspvif1 (FS) sent on Ethernet0/0

PIM(0): Received v2 Join/Prune on Ethernet0/0 from 10.3.0.2, to us

PIM(0): Join-list: (10.1.0.2/32, 232.1.1.1), S-bit set

PIM(0): Update Ethernet0/0/10.3.0.2 to (10.1.0.2, 232.1.1.1), Forward state, by PIM SG Join

LSPVIF验证

当数据包到达PE1时，它会检查LSM ID以转发要在组播数据包中强加的流量标签。

结论

多点LDP(M-LDP)带内信令使您能够通过现有IP/MPLS主干传输组播流量，同时避免在提供商核心中使用PIM。

在标签边缘路由器(LER)上，当LER未检测到PIM上游邻居时，启用PIM为上游邻居使用M-LDP带内信令。

相关信息

- https://tools.ietf.org/html/rfc4760

- https://tools.ietf.org/html/rfc4447

- https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ipmulti_lsm/configuration/15-sy/imc-lsm-15-sy-book..。

- 技术支持和文档 - Cisco Systems