天天看点

【HCIE-R&S 天梯路】MSDPMSDP(TCP:639)

MSDP(TCP:639)

Multicast Source Discovery Protocol组播源发现协议(仅用于IPv4 PIM-SM(不含SSM))

MSDP作用:让不同组播域的RP,知道组播源位置

  • 因为组播基于IGP协议,同一个组播域的PIM路由器,全部需要知道RP的位置。在跨AS场景下,需要MSDP
  • MSDP不传输组播数据

它仅在RP之间使用SA报文单播传递(S,G)表项,使其他域组成员知道S位置,构建SPT树。

【HCIE-R&S 天梯路】MSDPMSDP(TCP:639)
  • 精确地讲,这里的AS应指的是不同组播域(拥有不同RP)

如图,

  1. Source活跃后,头一跳路由器向AS1中RP(R2)注册。
  2. R2作为起源RP,使用MSDP协议向其他MSDP对等体(通常是RP)通告SA报文。
  3. AS2中,R4不是RP(但R4是MSDP中继),转发SA报文到接收者AS的RP(R5、R6)中。
  4. R5、R6下存在接收者,根据收到的SA报文,知道了(S,G)信息,朝着Source方向构建SPT(RPF方向,单播方向)
  5. 实际上R6是RP,建立了到S的最短路径树,但不一定是接收者DR(R7)的最短路径树,所以R7知道了S的位置后,再构建SPT树

MSDP对等体建立过程

【HCIE-R&S 天梯路】MSDPMSDP(TCP:639)

SA(Source-Active)报文

  • SA消息通告给不同组播域的RP,让各RP知道组播源IP

SA报文封装【IP【TCP 639【TLV】】】

       SA消息内容:      Source IP               组播源IP

                                    Group                     组地址

                                    Source RP IP         组播源所在组播域的RP

【HCIE-R&S 天梯路】MSDPMSDP(TCP:639)

SA报文的RPF检查

【HCIE-R&S 天梯路】MSDPMSDP(TCP:639)

如图,源RP发送SA消息给自己MSDP对等体,R4收到2份SA消息。

为了防止SA消息成环,MSDP设备收到SA消息时,需要RPF检查。

以R4为例,

       R4收到SA后,确定到源RP的最佳下一跳RP=R2(称为RPF对等体),选择RPF接口

       不是RPF接口传来的SA丢弃(R3的SA)

RPF接口是由 单播路由(BGP、IGP)、MBGP、静态组播路由 共同决定的

Mesh Group

将所有RP建立全互联的IBGP邻居关系,并成为一个Mesh Group

  • Mesh Group组成员SA消息仅传一跳
  • Mesh Group组成员发来的SA不进行RPF检查,直接接收

同AS MSDP配置

【HCIE-R&S 天梯路】MSDPMSDP(TCP:639)

相同AS,不同组播域

1.        IGP(实际中,跨域组播RP之间单播路由可达就行)

2.        PIM-SM

[all R]      multicast routing-enable

[all R-G]  pim sm                        //组播流量经过的接口开启PIM-SM,环回口可不开

[R1、R2] pim

                static-rp 1.1.1.1

[R3、R4] pim

                static-rp 4.4.4.4

[R4-G]    igmp enable

3.        MSDP

[R1] msdp

       peer 4.4.4.4 connect-interface LoopBack0

[R4] msdp

       peer 1.1.1.1 connect-interface LoopBack0

[RP] display msdp sa-cache        //查看SA消息

跨AS MSDP配置

【HCIE-R&S 天梯路】MSDPMSDP(TCP:639)
  1. AS 100、AS 200内部IGP
  2. R2-R3建立EBGP邻居关系
  3. 全网PIM-SM协议(静/动RP)
  4. MSDP(R1、R4互指)

需要考虑的问题:

1.        如果采用动态RP的方式。C-BSR报文逐跳、组播,会跨AS发送。使得RP信息跨AS传递并共同选举,不妥。

        [R2-G0/0/1]

        [R3-G0/0/0]   pim bsr-boundary       //设定BSR边界,不传Bootstrap报文

2.        R4-R1需要路由互通(构建SPT树、MSDP传SA)

           在R2、R3上发布各RP地址的BGP路由,并将BGP引入IGP

3.        RP4最终需要朝着源S,建立SPT(需要源的路由)

           R2的BGP引入192.168.1.0/24

MSDP实现任播(Anycast)RP

任播RP,多个RP在同AS内使用相同IP

【HCIE-R&S 天梯路】MSDPMSDP(TCP:639)
  1. IGP
  2. PIM-SM(IGMP)

实现任播RP需要:

1.        R1、R4配置相同的IP地址作为C-RP地址,并通告进IGP。各路由器会自动选择“近”的

2.        部属C-BSR尽量在其他设备(或其他IP接口,增加可靠性)。BSR通过Bootstrap报文逐跳、组播告诉了全网,RP=14.1.1.1

此时,AS内部相当于分成了2个组播域(左边4台、右边3台)

出现一个问题,当组播源S活跃时,源DR2需要向RP注册(R2向最近的RP1注册)

这就R2、R1上存在(S,G)表项。而R3、R4上无(S,G)表项。PC4收不到组播流量

所以还需要在R1-R4上启用MSDP,让R1通过SA消息告诉R4组播源的IP

3.        R1-R4使用别的IP接口,建立MSDP邻居(Loopback1:1.1.1.1-4.4.4.4)

           [R1、R4] msdp

                           peer 4.4.4.4 connect-interface LoopBack1

        这里还存在一个问题:

        MSDP发送的RA消息中,携带着源DR的IP(两边都是14.1.1.1冲突)。

        还需要命令 [R1、R4]   msdp

                                             originating-rp LoopBack1

最终,R1、R4都有(S,G)表项。任播RP实现。

继续阅读