Lab multicast msdp

MSDP Lab:

IBGP —— AS 100:R4 is RR ( R4-R2 / R4-R3 )、AS 200:R5 is RR ( R5-R7 / R5-R6 )
EBGP—— R2-R5 / R4-R6 每个路由器通告环回口
R1 为接收者,能够接收源 R5/R6/R7 发向 239.1.1.1 的组播流

1、Bridge
2、IGP(OSPF,其中 R1:no ip routing)
3、BGP,每个路由器通告自己的环回接口
4、将黑色接口运行 PIM SM
5、R2 是 AS 100 的 BSR/RP 候选者,R7 是 AS 200 的 BSR / RP 候选者
6、R4 和 R6 分别要作为两个域的 BSR 边界设备,以防止 BSR 信息的泄露
r4(config)#interface e0/0.46
r4(config-subif)#ip pim bsr-border 
r6(config)#interface e0/0.46
r6(config-subif)#ip pim bsr-border 
r4#sh ip pim bsr-router                                      
PIMv2 Bootstrap information                                  
  BSR address: 2.2.2.2 (?)                                   
  Uptime:      00:00:28, BSR Priority: 0, Hash mask length: 0
  Expires:     00:01:41                                      

没有使用上述命令 BSR 信息将会默认泄漏到所有的 BGP 邻居中(包括 eBGP 关系)
r4#show ip pim bsr-router                                    
PIMv2 Bootstrap information                                  
  BSR address: 7.7.7.7 (?)                                   
  Uptime:      00:03:23, BSR Priority: 0, Hash mask length: 0
  Expires:     00:02:00                                      

7、R1 作为接收者加入组 239.1.1.1
r1(config)#interface e0/0.13
r1(config-subif)#ip igmp join-group 239.1.1.1
注意:AS 100 因为有接收者的出现,则 R3 会向 R2(RP)加入 SPT(*,239.1.1.1)
r4#show ip pim neighbor(“*”表示是 border)

8、R4 以环回口 4.4.4.4 为源往 239.1.1.1 发送组播流,R3 默认做 SPT 切换行为,这样 R3 会从 SPT 得到组播数据包

9、AS 200 R5 以 5.5.5.5 为源发组播包去往 239.1.1.1,默认情况下因为 R5 的组播流会向 AS 200 的 RP(7.7.7.7)注册。这样就会造成 AS 100 的 RP 有接收者,但找不到源,AS 200 的 RP 知道源但找不到接收者

做完以上 7 步,共享树和源树断裂了,不能够通信,因此需要做第 8 步
因为 R1 作为接收端向本域的 RP(R2)加入(*,239.1.1.1),但 AS 200 的源(R5/R6/R7)也只能向本域 的 RP(R7)注册 SPT
MSDP Session 将 RP(R7)的活动源信息(SA)发给它的邻居 R2。这样 R2 就可以加入 SPT,从而解决了域间组播通信的问题

10、建立 R2 和 R7 的 MSDP 邻居关系
r2(config)#ip msdp peer 7.7.7.7 connect-source loopback 0 remote-as 200
r7(config)#ip msdp peer 1.1.1.1 connect-source loopback 0 remote-as 100

r7#show ip msdp summary
r7#show ip msdp summary                                                  
MSDP Peer Status Summary                                                 
Peer Address     AS    State    Uptime/  Reset SA    Peer Name           
                                Downtime Count Count                     
2.2.2.2          100   Up       00:10:39 0     0     ?                   

r7#show tcp brief(查看打开的TCP端口)
r7#show tcp brief                                                        
TCB       Local Address               Foreign Address             (state)
B699B968  7.7.7.7.179                 5.5.5.5.43299               ESTAB  
B6681618  7.7.7.7.50843               5.5.5.5.646                 ESTAB  
B6BA70D0  7.7.7.7.639                 2.2.2.2.14952               ESTAB  
B6058CB8  7.7.7.7.42715               6.6.6.6.646                 ESTAB  
*分别以 R5/R6 为源向 R1 发组播流,结果能够通信是因为 R3 默认做了 STP 切换

12、关闭 R3 SPT 自动切换功能,继续以 5.5.5.5 为源发组播包去往 239.1.1.1,由于 R2 通过 MSDP 得到(5.5.5.5,,239.1.1.1)的 SA 信息后,需要向源 5.5.5.5 加入源树,此时 RPF 校验失败。因为 R2/R5 之间的链路没有开启组播路由协议   (为什么RPF失败
r3(config)#ip pim spt-threshold infinity(关闭 SPT 的自动切换功能)

r2#show ip rpf 5.5.5.5
r2#show ip rpf 5.5.5.5                                                   
 failed, no route exists                                                 

解决校验问题方案:
(1) 写静态路由(不推荐)
r2(config)#ip mroute 5.5.5.5 255.255.255.255 24.1.1.4
r2#show ip rpf 5.5.5.5                                                   
RPF information for ? (5.5.5.5)                                          
  RPF interface: Ethernet0/0.24                                          
  RPF neighbor: ? (24.1.1.4)                                             
  RPF route/mask: 5.5.5.5/32                                             
  RPF type: multicast (static)                                           
  Doing distance-preferred lookups across tables                         
  RPF topology: ipv4 multicast base                                      
r2 对于邻居 r5 通过RPF校验

(2) 建立 MBGP(IPv4 Multicast BGP)邻居关系:
建立 MBGP 邻居关系 = R2 <--> R4 <--> R6 <--> R5,并且 R5 通告 5.5.5.5(这条路由不能用于转发数据,只能用于进行 RPF 校验,但是组播路由比单播路由的优先级更高)

r2(config)#router bgp 100
r2(config-router)#address-family ipv4 multicast
r2(config-router-af)#nei 4.4.4.4 activate 

r4(config)#router bgp 100
r4(config-router)#neighbor 6.6.6.6 remote-as 200
r4(config-router)#neighbor 6.6.6.6 update-source loopback 0
r4(config-router)#neighbor 6.6.6.6 ebgp-multihop
r4(config-router)#address-family ipv4 multicast
r4(config-router-af)#nei 2.2.2.2 activate 
r4(config-router-af)#nei 2.2.2.2 next-hop-self
r4(config-router-af)#nei 6.6.6.6 activate 

原文地址:https://www.cnblogs.com/cyrusxx/p/12824087.html