此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍带内信令VRF MLDP,它是下一代VPN组播(mVPN)的配置文件6。 它使用Cisco IOS中的示例和实施来说明该行为。
组播标签分发协议(MLDP)带内信令,使MLDP核心能够创建(S,G)或(*,G)状态,而无需使用带外信令,如边界网关协议(BGP)或协议无关组播(PIM)。
支持MLDP的组播VPN(MVPN)允许VPN组播流通过VPN特定树进行聚合。
MLDP核心中未创建客户状态,默认和数据组播分布树(MDT)只有该状态。
在某些情况下,为VPN流创建的状态是有限的,似乎不是风险或限制因素。在这些场景中,MLDP可以构建带内MDT,这些MDT是中转标签交换路径(LSP)。
VPN空间中使用的树是MDT。全局表中使用的树是中转点对多点(P2MP)或多点对多点(MP2MP)LSP。
在这两种情况下,单个组播流(VPN或不)与MPLS核心中的单个LSP关联。流信息在LSP的转发等价类(FEC)中编码。这是带内信令。
LSM与当前用于在核心中传输客户流量的GRE核心隧道相比,具有优势。它利用MPLS基础设施来传输IP组播数据包,为单播和组播提供通用数据平面。
MLDP信令提供两种功能:
类型通配符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规范有以下不足,限制了其实用性:
步骤1.在核心节点中启用MPLS MLDP。
# mpls mldp logging
步骤2.在核心中启用MLDP带内信令。
在PE1、PE2和PE3上
# ip multicast vrf inband-MLDP mpls mldp
# ip pim vrf inband-MLDP mpls source loopback 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模式;在核心中不需要。
步骤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 default
步骤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:验证物理连接.
任务 2:检验BGP地址系列VPNv4单播。
任务 3:检验端到端组播流量。
关于PE1、PE2和PE3上PE VRF mRIB条目
任务 4:检验MPLS核心。
验证当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联机,并将PIM JOIN(S, G)消息发送到PE3。
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
由于MLDP是接收方驱动的协议,因此PIM JOIN(S,G)开始从接收方到源建立MLDP数据库。这是P2MP MLDP的下游标签分配。
P2MP分组传输使用资源预留协议(RSVP)P2MP流量工程(P2MP-TE)实现,M2M分组传输通过IPv4组播VPN(MVPN)使用组播标签分发协议(MLDP)实现。
数据包通过三种类型的路由器传输:
·头端路由器:使用一个或多个标签封装IP数据包。
·中点路由器:用外标签替换内标签。
·尾端路由器:从数据包中删除标签。
基于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配置使IPv4组播数据包使用MPLS传输。此配置使用MPLS标签构建默认和数据组播分布树(MDT)。
MPLS复制用作核心网络中的转发机制。要使MLDP MVPN配置正常工作,请确保全局MPLS MLDP配置已启用。