7.5 案例研究:配置MBGP

如图7-14所示,AS 200正在向转接AS 100宣告前缀172.16.226.0/24和172.16.227.0/24,并用于正常的AS间路由。此外,AS 200也拥有少量多播源,分别是IP地址为172.16.224.1和172.16.225.50的主机。子网172.16.227.0/24上也有少量多播源,而且该前缀同时被宣告为单播前缀和多播源前缀。

img449b

图7-14 AS 200正在宣告部分前缀和地址。某些是单播,某些是多播,某些同时是单播和多播

例7-7显示了图7-14中Gorgo和Rodan的配置情况。

例7-7:图7-14中Gorgo和Rodan的配置情况。

img449c

img450a

这两台路由器BGP配置中的单播部分与第3章中的配置没什么区别。与Gorgo将两个单播前缀宣告到了AS 100中一样,配置中标识了它们的邻居及相应的AS号。


注意: 本章假设读者已经熟悉了单播BGP的配置方法。如果对next-hop-self和update-source等IBGP工具还不清楚的话,请复习第3章的相关内容。


命令address-family ipv4 multicast的作用是激活MBGP。回顾7.4.1小节中的内容,MBGP使用了两个新属性(MP_REACH_NLRI和MP_UNREACH_NLRI),而且这些属性的AFI代码对IPv4来说始终为1,关键字multicast将这些属性的Sub-AFI设置为多播。命令address-family之后的MBGP配置情况与单播BGP的配置非常相似,标识了MBGP邻居,也标识了被宣告为多播的前缀。关键字activate表示已经为该邻居激活了MBGP,仅在BGP下指定(MBGP不指定)对等体的AS号。需要注意的是,IBGP配置中的next-hop-self等命令在MBGP下的使用方式与BGP一样,也可以为MBGP邻居单独配置策略。最后的命令exit-address-family是由Cisco IOS软件自动输入的,作为MBGP配置内容的结束标记。

使用了命令address-family ipv4 multicast之后就隐含了启用命令address-family ipv4 unicast。虽然该命令从不显示在配置文件,但的确应用到了单播BGP配置中,其结果就是该配置片段中指定的前缀被赋予了属性MP_REACH_NLRI和一个单播Sub-AFI。请注意,前缀172.16.227.0/24出现在Gorgo的BGP和MBGP配置中,之后该前缀同时作为单播和多播前缀(Sub-AFI=3)被宣告出去。

如例7-8所示,命令show ip bgp ipv4显示了上述配置结果,第一次使用了关键字unicast,第二次使用了关键字multicast,显示了所有Sub-AFI与关键字相匹配的前缀。请注意,由于前缀172.16.227.0/24被同时配置为单播和多播前缀,因而出现在两个输出结果中。


注意: 命令show ip bgp ipv4 unicast与命令show ip bgp的输出结果相同。


例7-8:命令show ip bgp ipv4 unicast所显示的前缀情况(根据它们的Sub-AFI值)。

img450b

img451a

由于图7-14中的Megalon和Kong为单播BGP和MBGP使用了不同的链路,因而它们的配置相对较为复杂。例7-9显示了这两台路由器的配置情况。

例7-9:Megalon和Kong为单播和多播使用不同数据链路的配置情况。

img451b

从上例的MBGP配置中可以看出,只有子网192.168.1.8/30被建立了MBGP对等关系,在单播BGP配置中出则现了一些新命令。请记住,在调用命令address-family ipv4 multicast的时候会隐式地自动调用命令address-family ipv4 unicast,对子网192.168.1.8/30来说,由于不期望存在单播BGP流量,因而使用命令no ip default ipv4-unicast来阻止这种自动配置行为。之后,利用命令neighbor activate在所期望的链路上显式启用单播BGP。请注意,子网 192.168.2.1/30和192.168.1.4/30上激活了BGP,而子网192.168.1.8/30上却没有。由于本链路只有在BGP中指定的AS号,因而可以建立对等关系。

例7-10显示了例7-9的配置结果,该输出结果与例7-8相似。例7-8对单播和多播前缀做了正确划分,但本例中单播前缀的下一跳地址是192.168.1.6,而多播前缀的下一跳地址(RPF邻居)却是192.168.1.10。

例7-10:AS 300已接收到AS 200宣告的前缀,为Kong与Megalon之间的仅单播链路(unicast-only link)和仅多播链路(multicast-only link)使用了正确的下一跳地址。

img452a

例7-11以172.16.227.0/24(该前缀被同时宣告为单播和多播前缀)为例给出了实际的BGP和MBGP宣告应用示例,对172.16.227.1执行了路由查找操作,输出结果显示该路由携带了下一跳地址192.168.1.6(是图7-14中的仅单播链路)。接下来,对该地址执行了RPF查找操作,查找结果返回了下一跳地址192.168.1.10(图7-14中的仅多播链路)。因而可以看出,按照地址的不同使用功能,同一个地址可以引用两条不同的链路。

例7-11:对172.16.227.1执行路由查找显示的下一跳为192.168.1.6,而对该地址执行 RPF查找显示的下一跳则是192.168.1.10。

img452b

最后需要强调的是,MBGP并不会影响多播流量的转发操作。对图7-14所示存在多条并行链路的应用环境来说,需要进行额外的配置来强制多播流量只通过仅多播链路进行转发,而MBGP的作用仅仅是允许RPF信息穿越AS边界进行分发。