目錄

簡介

背景資訊

帶內訊號

此配置檔案中使用的不透明值

MLDP核心樹

P2MP樹

MP2MP樹

不透明值

重疊訊號

MLDP LSP型別

標籤交換多點傳送

拓撲

組態

驗證

詳細驗證

如何構建控制平面？

步驟1.在核心中配置MLDP後，會發生這些消息交換。

步驟2.啟用核心層到MLDP的帶內信令。

接收方聯機

源開始流式處理

封包擷取(PCAP)

LSPVIF驗證

結論

相關資訊

簡介

本檔案介紹頻內訊號全域MLDP，也就是適用於VPN下一代多點傳送(mVPN)的設定檔7。 它使用範例和Cisco IOS中的實作來說明行為。

背景資訊

- P2MP mLDP帶內樹在核心層；無C組播路由。

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

- 支援PE上的全域性表(S， G)。

- mLDP不需要核心中的PIM

帶內訊號

不透明值用於將MP LSP對映到IP組播流。

不透明值的內容從組播流中匯出。

此配置檔案中使用的不透明值

IPv4 PIM-SSM傳輸允許通過多協定標籤交換機(MPLS)核心傳輸全域性PIM-SSM流。Opaque Value包含駐留在入口和出口PE路由器的全域性mroute表中的實際(S, G)。

不透明值不僅唯一地標識MP LSP，而且它還可以攜帶來自邊緣IP多播網路的(S，G)流資訊。MP標籤交換路徑(LSP)中的P路由器不需要解析不透明值，但使用該值作為到本地MP LSP資料庫的索引，以確定將組播資料包複製到的下一跳。但是，輸入PE LSP（最接近源）對值進行解碼，以便可以為傳入(S， G)流選擇正確的MP LSP。出口PE可以使用值將(S， G)狀態安裝到本地VRF或全域性mroute表中。

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介面和Provider Edge(PE)介面中啟用PIM SM。

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

# 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)UP。

- 確認BGP IPv4表具有所有客戶字首。

任務3:驗證端到端組播流量。

- 檢查與連線的PIM鄰居的PIM鄰居關係。

- 驗證是否已建立組播狀態。

- PE1、PE2和PE3上的PE mRIB條目

- 驗證(S， G)mFIB條目，資料包在軟體轉發中遞增。

- 檢驗ICMP資料包是否從CE到達CE。

任務4:驗證MPLS核心。

- 驗證MPLS LSP核心。

- 根據設計，驗證核心內的MPLS轉發。

- 適用於IPv4的MPLS P2MP LSP Ping。

詳細驗證

內部網關協定(IGP)、MPLS LDP、邊界網關協定(BGP)在網路端對端運行良好。

在此部分，驗證以簽入核心/聚合網路。檢查鄰接關係以及通過MPLS網路的流量的控制平面和資料平面。

若要驗證本地和遠端CE裝置是否可透過多重協定標籤交換(MPLS)核心進行通訊，請執行圖中所示的步驟：

如何構建控制平面？

根據IP報頭驗證控制平面（PE路由器轉發時在該控制平面中實施標籤），並在資料包進入MPLS網路時向資料包新增MPLS標籤。

在標籤施加的方向上，路由器根據Cisco Express Forwarding(CEF)表查詢來交換資料包，以查詢下一跳，並為目的地新增儲存在FIB中的相應標籤資訊。當路由器在MPLS資料包的核心中執行標籤交換時，路由器會執行MPLS表查詢。路由器從CEF表和標籤資訊庫(LIB)中的資訊匯出此MPLS表(LFIB)。

當PE路由器收到MPLS資料包，根據MPLS標籤做出轉發決策，刪除標籤，並傳送IP資料包時，就會發生標籤處置。PE路由器使用LFIB來確定資料包在該方向上的路徑。如前所述，特殊的iBGP會話可促進PE路由器之間的VPNv4字首及其標籤的通告。在廣告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聯機並向PE3傳送PIM JOIN(S， G)消息。

接收方聯機

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 Debug檢查字首建立。

來自接收器(S，G)加入的任何通訊都轉換為MLDP，並且所有消息都遍歷Lspvif 1

PIM JOIN(S，G)作為MLDP是接收器驅動協定，它從接收器到源建立MLDP資料庫。這是P2MP MLDP的下游標籤分配。

附註：在帶內信令中，標籤交換路徑虛擬介面(LSPVIF)是根據入口PE建立的，以實現嚴格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