目錄

簡介

背景資訊

MLDP訊號

帶內訊號

重疊或帶外訊號

標籤發佈協定(LDP)型別萬用字元轉發等價類(FEC)# RFC5918

拓撲

重疊訊號

組態

驗證

如何構建控制平面？

P2MP MLDP

結論

相關資訊

簡介

本檔案介紹頻內訊號VRF MLDP，其是用於下一代透過VPN進行多點傳送(mVPN)的設定檔6。 它使用範例和Cisco IOS中的實作來說明行為。

背景資訊

組播標籤分發協定(MLDP)帶內信令，使MLDP核心能夠建立(S，G)或(*,G)狀態，而不使用帶外信令，如邊界網關協定(BGP)或協定無關組播(PIM)。

支援MLDP的組播VPN(MVPN)允許通過VPN特定的樹聚合VPN組播流。

在MLDP核心中未建立客戶狀態，只有預設和資料組播分發樹(MDT)的狀態。

在某些場景中，為VPN流建立的狀態是有限的，看起來不是風險或限制因素。在這些情況下，MLDP可以構建作為傳輸標籤交換路徑(LSP)的帶內MDT。

VPN空間中使用的樹是MDT。全域性表中使用的樹是中轉點到多點(P2MP)或多點到多點(MP2MP)LSP。

在這兩種情況下，單個組播流（VPN或不連線）與MPLS核心中的單個LSP相關聯。流資訊在LSP的轉發等價類(FEC)中編碼。這是帶內信令。

與目前用於在核心中傳輸客戶流量的GRE核心隧道相比，LSM具有優勢，它利用MPLS基礎設施傳輸IP組播資料包，為單播和多播提供公共資料平面。

MLDP訊號

MLDP信令提供兩種功能：

- 發現MP LSP的FEC（及其關聯的不透明值）

- 將組播流分配給MP LSP

帶內訊號

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

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

重疊或帶外訊號

- 使用重疊協定將MP LSP對映到IP組播流。

- 不透明值可以由入口根PE指定或靜態配置。

- MP LSP是按需建立的，也可以預先配置。

- 允許將組播流聚合到單個MP LSP上。

標籤發佈協定(LDP)型別通配符轉發等價類(FEC)編號RFC5918

「型別化萬用字元FEC元素」是指滿足約束條件的指定型別的所有FEC。  它指定「FEC元素型別」和可選約束，旨在提供其他資訊。

鍵入的萬用字元FEC元素的格式為：

鍵入的萬用字元：一個八位組FEC元素型別(0x05)。

LDP [RFC5036]分配用於轉發等價類(FEC)的標籤。  LDP使用LDP消息中的FEC TLV來指定FEC。

LDP FEC TLV包括一個或多個FEC元件。  FEC元素包括FEC型別和可選的、與型別相關的值。

RFC 5036指定兩個FEC型別（首碼和萬用字元），其他檔案指定其他FEC型別；例如，請參閱[RFC4447]和[MLDP]。

如RFC 5036所指定，萬用字元FEC元素是指與可選約束有關的所有FEC。

唯一的約束RFC 5036指定的約束是將萬用字元FEC元素的範圍限製為「繫結到給定標籤的所有FEC」的約束。

萬用字元FEC元素的RFC 5036規範具有以下缺陷，限制了其實用性：

- 萬用字元FEC元素未鍵入。  在有些情況下，能夠引用給定型別的所有FEC（作為另一個約束）將是有益的。

- 萬用字元FEC元素的使用僅限於標籤撤消和標籤釋放消息。  在某些情況下，在「標籤請求」消息中使用帶型別約束的萬用字元FEC元素會很有用。

拓撲

重疊訊號

組態

步驟1.在核心節點中啟用MPLS MLDP。

# mpls mldp logging

步驟2.在核心中啟用MLDP帶內信令。

在PE1、PE2和PE3上

# ip multicast vrf INBAND-MLDP mpls mldp

# ip pim vrf INBAND-MLDP mpls源環回0

步驟3.在所有CE介面和PE VRF介面中啟用PIM SM。

在CE1、CE2、CE3和所有VRF介面PE1、PE2和PE3上

# interface x/x

# ip pim sparse-mode

# interface loopback x/x

# ip pim sparse-mode

附註：僅在提供商邊緣路由器上面向CE的介面中啟用PIM-Mode;在核心中不需要。

步驟4.在VRF中啟用組播。

在PE1、PE2和PE3上

# ip multicast-routing vrf INBAND-MLDP

步驟5.在PE路由器的PE-CE介面x/x上啟用VRF。

# interface x/x

# ip vrf forwarding INBAND-MLDP

步驟6.在CE和PE節點中配置模式SSM（僅限VRF）。

在CE節點上

# ip pim ssm default

在VRF下的PE1、PE2、PE3上

# ip pim vrf INBAND-MLDP ssm預設值

步驟7.配置IGMP組SSM 232.1.1.1（接收器）。

在接收器2和3上

CE #interface x/x

# ip pim join-group 232.1.1.1 source 10.1.0.2

驗證

IGP、MPLS LDP、BGP在我們的網路端到端運行良好。

在本節中，驗證是為了檢查核心/匯聚網路中的VPN AF鄰接關係。檢查CE-PE之間的鄰接關係，並且還會檢查控制平面以及資料平面，以便通過MPLS網路進行VPN流量。

要驗證本地和遠端客戶邊緣(CE)裝置是否可以通過多協定標籤交換(MPLS)核心進行通訊，請執行以下任務：

任務1:檢驗物理連線。

- 驗證所有連線的介面是否為UP。

任務2:驗證BGP地址系列VPNv4單播。

- 驗證是否在所有路由器中為AF VPNv4單播啟用BGP，且BGP鄰居為UP。

- 確認BGP VPNv4單播表具有所有客戶字首。

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

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

- 驗證已在VRF中建立組播狀態。

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

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

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

任務4:驗證MPLS核心。

- 驗證MPLS LSP核心。

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

- 驗證MPLS P2MP LSP的ping工作。

如何構建控制平面？

驗證PE路由器根據IP報頭轉發並在進入MPLS網路時向資料包新增MPLS標籤時是否發生標籤施加的控制平面。

在標籤施加的方向上，路由器根據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: 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-MFI: Enabled MLDP MFI client on Lspvif0; status =  ok

LDP Peer 11.11.11.11:0 re-announced

MLDP-NBR: 11.11.11.11:0 UP sess_hndl: 1, (old ID: 0.0.0.0:0)

mLDP-RW: Sending RW notification message to process: mLDP Process

mLDP-RW: RW Tracking started for: 11.11.11.11

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: [id 0] Wildcard label request from: 11.11.11.11:0 label: 0 root: 8.2.0.0 Opaque_len: 0 sess_hndl: 0x1

Neighbor 11.11.11.11 request for the label request to PE1.

使用此調試檢查前面的建立：

# debug mpls mldp all

附註：通過重新播放來自對等體的標籤資料庫來響應鍵入的萬用字元標籤請求，獲取字首。使用對對等體的型別化萬用字元標籤請求來請求重放字首的對等標籤資料庫。

步驟2.在VRF中啟用帶內信令。

PE1 # Config t

# ip pim vrf MLDP-INBAND mpls source loopback 0

# ip multicast vrf MLDP-INBAND mpls mldp

MLDP: Enabled IPv4 on Lspvif0 unnumbered with Loopback0

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

MLDP: Enable pim on lsp vif: Lspvif0

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

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

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

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

PIM(1): Changing DR for Lspvif0, from 0.0.0.0 to 1.1.1.1 (this system)

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

Use this Debug to check the preceding establishment

# debug ip pim vrf LDP-INBAND6

PE1#sh interfaces 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(1): Received v2 Join/Prune on Ethernet0/2 from 10.2.0.2, to us

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

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

MLDP: Interface Lspvif1 moved from VRF (default) to VRF MLDP-INBAND

MLDP: Enabled IPv4 on Lspvif1 unnumbered with Loopback0

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

MRT(1): Add interface Lspvif1

MLDP: Enable pim on lsp vif: Lspvif1

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

MLDP: LDP root 1.1.1.1 added

mLDP-RW: Sending RW notification message to process: mLDP Process

mLDP-RW: RW Tracking started for: 1.1.1.1

MLDP:  Route watch started for 1.1.1.1 topology: base ipv4

MLDP-DB: Added [vpnv4 10.1.0.2 232.1.1.1 1:1] DB Entry

MLDP-DB: [vpnv4 10.1.0.2 232.1.1.1 1:1] Added P2MP branch for MRIBv4(1) label

%MLDP-5-ADD_BRANCH: [vpnv4 10.1.0.2 232.1.1.1 1:1] Root: 1.1.1.1, Add P2MP branch MRIBv4(1) remote label

MLDP: nhop 10.0.2.2 added

MLDP-NBR: 11.11.11.11:0 mapped to next_hop: 10.0.2.2

MLDP: Root 1.1.1.1 old paths: 0 new paths: 1

MLDP-DB: [vpnv4 10.1.0.2 232.1.1.1 1:1] Changing peer from none to 11.11.11.11:0

MLDP-DB: [vpnv4 10.1.0.2 232.1.1.1 1:1] Add accepting element nbr: 11.11.11.11:0

MLDP: [vpnv4 10.1.0.2 232.1.1.1 1:1] label mappping msg sent to 11.11.11.11:0 success

MLDP-DB: [vpnv4 10.1.0.2 232.1.1.1 1:1] path to peer: 11.11.11.11:0 changed None:0.0.0.0 to Ethernet0/3:10.0.2.2

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

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

P2MP MLDP

P2MP資料包傳輸使用資源預留協定(RSVP)實現P2MP — 流量工程(P2MP-TE),M2M資料包傳輸使用組播標籤分發協定(MLDP)通過IPv4組播VPN(MVPN)實現。

資料包通過三種型別的路由器傳輸：

·頭端路由器：用一個或多個標籤封裝IP資料包。

·中點路由器：將標籤內替換為標籤外。

· Tailend路由器：從資料包中刪除標籤。

基於MLDP的MVPN網路中的資料包流對於每個傳入的資料包，MPLS會建立多個輸出標籤。來自源網路的資料包將沿著通向接收者網路的路徑複製。CE1路由器傳送本機IP組播流量。PE1路由器對傳入的組播資料包施加標籤，並將標籤的報文複製到MPLS核心網路。當封包到達核心路由器(P)時，封包會使用適用於MP2MP預設MDT或P2MP資料MDT的適當標籤進行複製，並傳輸到所有輸出PE。一旦資料包到達出口PE，標籤就會被移除，IP組播資料包將複製到VRF介面

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 : 1   Type: P2MP   Uptime : 00:23:11

FEC Root           : 1.1.1.1 (we are the root)

Opaque decoded     : [vpnv4 10.1.0.2 232.1.1.1 1:1]

Opaque length      : 16 bytes

Opaque value       : FA 0010 0A010002E80101010000000100000001

Upstream client(s) :

None

Expires        : N/A           Path Set ID  : 1

Replication client(s):

11.11.11.11:0

Uptime         : 00:23:11      Path Set ID  : None

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

Local label (U): None          Next Hop     : 10.0.1.2

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 : 2   Type: P2MP   Uptime : 00:28:12

FEC Root           : 1.1.1.1

Opaque decoded     : [vpnv4 10.1.0.2 232.1.1.1 1:1]

Opaque length      : 16 bytes

Opaque value       : FA 0010 0A010002E80101010000000100000001

Upstream client(s) :

1.1.1.1:0    [Active]

Expires        : Never         Path Set ID  : 2

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

Local Label (D): 21            Next Hop     : 10.0.1.1

Replication client(s):

3.3.3.3:0

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

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

Local label (U): None          Next Hop     : 10.0.3.1

2.2.2.2:0

Uptime         : 00:24:41      Path Set ID  : None

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

Local label (U): None          Next Hop     : 10.0.2.1

RR-P#sh mpls forwarding-table labels 21

Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop

Label      Label      or Tunnel Id     Switched      interface

21         26         [vpnv4 10.1.0.2 232.1.1.1 1:1]   \

0             Et0/2      10.0.3.1

25         [vpnv4 10.1.0.2 232.1.1.1 1:1]   \

0             Et0/3      10.0.2.1

在PE裝置上建立的MRIB:

PE1#sh ip mroute vrf MLDP-INBAND 232.1.1.1 verbose

IP Multicast Routing Table

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

T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet,

U - URD, I - Received Source Specific Host Report,

(10.1.0.2, 232.1.1.1), 00:00:17/00:02:42, flags: sTI

Incoming interface: Ethernet0/2, RPF nbr 10.1.0.2

Outgoing interface list:

Lspvif0, LSM ID: 1, Forward/Sparse, 00:00:17/00:02:42

源開始流式處理時：

當多點傳送來源開始傳送流量時，[10.1.0.2, 232.1.1.1]會發生，如下圖所示。

來自源10.1.0.2的流量從232.1.1.1串流。通過乙太網0/2進入。

資料包通過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

此資料包通過隧道連線到Lspvif 0。

在接收端：

在接收端，資料包到達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

當資料包到達PE1時，它會檢查LSM ID以轉發流量，該標籤要在組播資料包中強加。

此圖顯示LSPVIF介面的驗證。

對於傳入的每個資料包，MPLS會建立多個傳出標籤。來自源網路的資料包將沿著通向接收者網路的路徑複製。CE1路由器傳送本機IP組播流量。PE1路由器對傳入的組播資料包施加標籤，並將標籤的報文複製到MPLS核心網路。

當封包到達核心路由器(P)時，封包會使用適用於MP2MP預設MDT或P2MP資料MDT的適當標籤進行複製，並傳輸到所有輸出PE。一旦資料包到達出口PE，標籤就會被移除，IP組播資料包將複製到VRF介面。

結論

MLDP MVPN配置使用MPLS啟用IPv4組播資料包傳送。此配置使用MPLS標籤構建預設和資料組播分佈樹(MDT)。

MPLS複製用作核心網路中的轉發機制。要使MLDP MVPN配置正常工作，請確保已啟用全域性MPLS MLDP配置。

相關資訊

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

- 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.pdf

- 技術支援與文件 - Cisco Systems