7.9 案例研究:MSDP默认对等体
如果某AS是末梢(stub)AS或非转接(non-transit)AS,特别是如果该AS无多归属情况,那么几乎没有任何理由需要与其转接AS之间运行BGP。通常来说,只要在末梢AS中配置静态默认路由,在转接AS中配置指向末梢前缀的静态路由就足够了。但如果该末梢AS是一个多播域,且其RP必须与相邻域中的RP建立对等关系时该如何处理呢?在7.4.2小节中已经说过,MSDP需要依赖BGP下一跳数据库来进行其对等体RPF检查。
利用命令ip msdp default-peer就可以停用对BGP的依赖性,此时MSDP将从默认对等体接受所有的SA消息。图7-18给出了一个简单示例,图中的末梢AS通过单链路与转接AS建立对等关系,由于它们之间只有一条路径,不存在环路的可能性,因而无需进行RPF检查。
图7-18 通常不需要在末梢AS与其转接AS之间运行BGP,但这会给MSDP带来问题
例7-19给出了图7-18中2台路由器的MSDP配置情况。
例7-19:路由器Jason和Freddy的MSDP配置。
出于冗余性考虑,末梢AS也可能希望与多个RP建立MSDP对等关系(如图7-19所示)。由于没有RPF检查机制,因而不能同时从两个默认对等体接收SA消息,而只能从其中的一个对等体接收SA消息,当该对等体失效后,再从另一个对等体接收SA消息。当然,这里存在一个假设前提,那就是这两个对等体都在发送相同的SA消息。
图7-19 Jason被连接到多个默认的MSDP对等体
例7-20给出了Jason的配置情况。
例7-20:将Jason配置为同时与Freddy和Noeman建立冗余对等关系。
在正常情况下,活动的默认对等体就是配置中的第一个对等体,对本例来说就是 172.16.224.1,仅当172.16.224.1出现故障之后才会接收来自172.16.224.2的SA消息。
转接AS中的RP可能存在多个默认MSDP对等体(如图7-20所示)。由于只能接受来自某一个对等体的SA消息,因而如果像例7-20那样仅仅列出默认对等体是无法正常工作的。为此,一方面希望在缺少对等体RPF检查的情况下仍能提供环路避免功能,另一方面还要让RP接受来自多个对等体的SA消息,此时就需要使用BGP类型的前缀(BGP-style prefix)。之后RP就可以接受来自其所有默认对等体的SA消息,但仅限于每个对等体的关联前缀列表中所允许的源前缀。当然这里也存在一个假设前提,那就是每个AS使用的前缀都是截然分开的,这样就可以确保不会出现环路。
例7-21显示了Freddy的配置情况。
例7-21:让RP接收来自多个对等体的SA消息。
图7-20 转接AS中的RP有3个默认MSDP对等体