BGP路由黑洞的形成和处置

发表时间:2020/9/16   来源:《中国西部科技》2020年9期   作者:张洪飞
[导读] 镇江市政府办门户网站编辑部,江苏省镇江市 212008
        张洪飞
        镇江市政府办门户网站编辑部,江苏省镇江市 212008
        摘要:BGP路由作为当下应用最为广泛的AS之间动态路由协议,其水平分割机制有效避免路由环路的出现,但会产生路由黑洞问题。本文以实例介绍BGP路由黑洞的形成,详细介绍了三种解决方案并分析三种方案的优缺点。
        关键词:BGP; IGP; 路由;黑洞
引言
        BGP(Border Gateway Protocol,边界网关协议)是目前最为常用的,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。目前全球范围内的因特网骨干节点正是依靠BGP协议实现不同AS之间的路由交互。目前在IPv4环境中,BGP版本4(BGPv4)应用最为广泛。据IETF官网介绍,BGPv4的详细描述文档为RFC4271,该文档1995年6月发布,最近一次更新是2006年1月。BGP使用TCP作为传输层协议,TCP目的端口为179,两台BGP路由器只要具备IP连通性且可以建立TCP连接即可建立BGP对等体关系,也就是说BGP路由器对等体之间无需直接互联。BGP基于TCP即可传递路由的特性让BGP协议非常灵活,然而,就像硬币有正面反面一样,此灵活特性也是BGP路由黑洞的产生背景。本文基于RFC4271文档,通过BGP应用实际案例,使用华为eNSP(版本1.2.00.510)模拟路由器及路由协议运行,通过Wireshark(版本1.4.3)数据抓包对比分析等手段,分析BGP路由黑洞的产生背景及处置措施。
1 BGP路由黑洞的形成
        在图1中,路由器接口ip地址配置为10.0.xy.x,其中x为接口所属路由器的设备编号,y为该接口对端接口路由器的设备编号,例如R2路由器G0/0/0和G0/0/1两个端口配置的IP地址分别为10.0.12.2和10.0.23.2,部分接口IP地址配置如图标注。所有路由器启用了Loopback0接口并为其分配了x.x.x.x/32的ip地址,AS200内运行OSPF协议。通过路由器Loop back0接口,R1与R2、R5和R7建立EBGP对等体关系,R2和R5建立IBGP关系。R1、R7启用了Loop back1并未其分别配置了11.11.11.11/32、77.77.77.77/32地址,。R1与R2、R5与R7之间配置了静态路由实现Loopback0之间的连通。

图1 BGP路由黑洞产生模拟拓扑图
        为防止BGP路由在AS内交叉传递而形成环路,BGP定义了IBGP水平分割原则,规定BGP路由在AS内部传递一跳,水平分割原则在很大程度上杜绝了IBGP路由环路的产生,但也造成了IBGP路由无法正确传递问题。图1的R1与R7通过BGP静态路由引入(import-route static)和IBGP路由学习,分别学习到了对方的Loopback0接口IP地址路由,下一跳分别为R2与R5的Loopback 0接口。R3作为IBGP域内路由器仅运行了OSPF协议,由于IBGP水平分割原则限制,无法通过BGP协议从R2、R5学习到R1与R7的Loopback0接口有效路由。因此,在R1和R7的Loopback0接口之间连通出现了中断现象,R1与R7之间数据包传递在R3处被丢弃,至此,R1与R7之间网络数据包像被传到“网络黑洞”一样彻底被R3路由器丢弃。BGP路由黑洞产生的原因是外部路由通过EBGP路由器引入后,IBGP路由器之间连接非BGP路由器未能及时学习到被引入外部路由造成的。R3未能学习到R2、R5引入的外部路由地址,因此在转发发往外部路由数据包时,无法正确根据路由表转发。另外图1中的R4、R6同样无法学习到R2、R5通过EBGP对等体传递的Loopback0路由协议,在转发EBGP路由时也会存在路由黑洞问题。
2BGP路由黑洞解决方案
        BGP路由黑洞问题解决方案主要有IBGP对等体关系全互联、路由反射器、联邦等。
2.1全互联方案
        在AS内所有BGP路由器两两之间建立IBGP对等体关系。以图1为例,R3需要配置为BGP路由器并与R2、R5建立对等体关系,这样,R2、R5即可将自身通过EBGP对等体学习到路由传递R3,之前R3存在的路由黑洞问题即可化解。不过,从上图示例可以看出,为了建立R3与R2、R5之间的IBGP对等体全互联关系,新增了R2与R3、R3与R5的对等体关系,如果为了全面解决AS200内可能存在的路由黑洞问题,BGP路由器两两之间需要建立对等体关系的数量为10对,计算公式为n(n-1)/2,n为域内路由器数量。显然对等体全互联方案只能在小型网络中具有一定的可行性,稍大型网络中应用此方案将极大增加了路由器性能消耗并显著增加了网络的复杂性。
2.2路由反射器方案
        路由反射技术是一种在IBGP域内突破水平分割原则,有限度地像“光反射”一样传递从IBGP对等体学习到的路由。仍以图1为例,为了解决已存在的路由黑洞问题,R3分别与R2、R4、R5、R6建立IBGP对等体关系后,将R3配置为路由反射器并将R2、R4、R5、R6配置为R3的路由反射器客户即可彻底解决AS200内存在的路由黑洞问题,实现图1中所有路由器LoopBack接口之间的通信问题。在AS200内只需建立4对IBGP对等体关系即可,路由反射器R3的4台客户路由器之间无需建立IBGP对等体关系。路由反射器的配置都是在承担反射器功能的路由器上配置完成的,路由反射器的配置也非常简单,仅需通过“peer x.x.x.x reflect-client”命令即可完成ip地址为“x.x.x.”的客户路由器指定,在路由反射器的客户设备上无需做额外任何配置。
2.3联邦方案
        联邦方案的思路是在大的联邦AS之内创建若干个小的成员AS,通过成员AS之间的联邦EBGP对等体关系突破水平分割原则,将路由继续传递下去。仍以图1为例,为了解决路由黑洞问题,路由器R2与R3在联邦AS200中组建成员AS,例如AS64512,R4、R5、R6分别独立组建成员AS后与成员AS64512建立成员AS的EBGP对等体关系。
结束语
        AS内的水平分割机制有效解决路由环路问题,但也造成IBGP路由器收不到BGP通告路由。为了解决路由黑洞问题,让AS内的路由器都能学习到BGP通告路由,全互联方案在AS内两两路由器之间建立全互联的邻居关系,BGP路由表非常庞大,在IGP中重新分发BGP路由,会显著增加AS内路由器的负担。为了减少AS中邻居连接数、降低路由器BGP通告、分发性能负担需求,联盟和路由器反射方案分别从划分成员AS和设置主从路由器两种思路。联盟方案通过合理规划成员AS,减少大AS内路由器之间互联数量。路由反射器方案通过建立路由通告Server-Client模式,形成路由反射集群,Client路由器之和Server路由器建立邻居关系,Client路由器之间无需建立邻居关系,从而减少互联对等体数量。针对联邦AS内路由器较多情况下,使用联邦方案,具有更强的灵活性,与路由反射器比较,配置要更为简单且网络扩展性更强。
参考文献
[1]徐鑫,吴静,高远.一种带有路由反射的BGP路由预测算法.计算机科学[J],2009(12).
[2]朱仕耿.HCNP路由交换学习指南.人民邮电出版社[M],2017年9月.
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: