APP下载

BGP4+协议研究与应用

2011-06-14李晓红

无线电工程 2011年2期
关键词:路由表字段报文

庞 超,李晓红

(石家庄信息工程职业学院,河北石家庄050001)

0 引言

为了有效管理飞速发展的互联网,而将其划分为多个相对独立的网络,称为自治域(AS)。AS之间通过外部网关协议(EGP)来交换网路可达性信息,以实现整个互联网的连通。BGP是应用最广泛的外部网关协议,目前的最新版本是BGP4,但它仅支持IPv4,这种局限性给它的进一步发展带来了很大障碍。

1 BGP4+协议

1.1 面向多协议的BGP4+扩展

应广大服务提供商和用户的要求,IETF提出了BGP的多协议扩展解决方案BGP4+,它很好地解决了BGP4的IPv4局限性问题,使BGP协议具有了灵活的可扩展性,能够支持IPv6等多种网络层协议,而且具有良好的向后兼容性。

BGP4+在BGP UPDATE报文的路径属性数据域新增加了2种类型的属性:多协议可达属性(MP_REACH_NLRI )和多协议不可达属性(MP_UNREACH_NLRI) 。这2种新的路径属性可以携带多种网络层协议的路由信息,具有高度可扩展性。

在RFC2858中定义的多协议可达属性格式为:

①地址族标识,2 bytes,具体类型在RFC1700中定义;

②后地址类型标识,1 byte;

③下一跳网络地址,由1 byte的长度字段和可变长的地址值字段组成;

④下一跳的子网连接点(SNPA)信息,第1个字节标识了SNPA的个数,后续的每个SNPA的地址信息由1 byte的长度字段和可变长的地址值字段组成;

⑤网络层可达性信息(NLRI),由多个二元组构成,每个二元组包括1 byte的长度字段和可变长的前缀字段。

多协议不可达属性格式如下:

①地址族标识,2 bytes,具体类型在RFC1700中定义;

②后地址类型标识,1 byte;

③撤销路由NLRI,由多个二元组构成,每个二元组包括1 byte的长度字段和可变长的前缀字段。

属性中的NLRI字段即可_携带IPv6路由信息,进行路由的宣告或撤销。这2个路径属性是可选非过渡的,不支持BGP4+的网络节点将忽略这2个属性,也不会将其转发。

1.2 BGP4+协议流程

BGP4+的协议流程与BGP4的基本相同,遵循RFC1771等标准的规定。只是由于新的路径属性的引入,增加了边界网关协议更新消息(BGP UPDATE)报文处理的复杂性。为了支持IPv6,BGP4+所做的特别工作主要体现在:

①在BGP OPEN报文的可选参数“权能通告”中增加IPv6地址族类型,与BGP对等体协商IPv6协议处理能力;

②增加对多协议可达属性和多协议不可达属性的发送处理,其中对多协议可达属性的下一跳地址和SNPA信息字段也要包含对IPv6地址的描述;

③增加对多协议可达属性和多协议不可达属性的接收处理,异常处理包括报文合法性检查、与其他路径属性的包容关系等。

2 BGP4+软件设计

2.1 软件组成

BGP4+软件由操作系统(包含Socket、转发表等组件),BGP协议软件,RTM路由管理软件和维护管理软件组成,如图1所示。

图1 BGP4+软件组成示意图

图1中BGP协议软件是BGP4+软件的核心,主要模块组成如下:

①决策协调模块(DC)管理着输入路由表(Adj-RIBs-In)和本地路由表(Loc-RIBs),根据BGP连接的建立(或撤销)来增加(或删除)一个Adj-RIB-In。它接收NM发来的BGP UPDATE消息和DC-RTM发来的内部更新,在Adj-RIB-In中增加(或删除)路由。通过决策优选出最佳路由并决定是否加入Loc-RIB。它还用于协调实现下一跳可达性检查、路由振荡衰减和路由汇聚等功能;

②更新管理模块(UM)管理着输出路由表(Adj-RIBs-Out),向BGP对等体发送BGP UPDATE消息,向DC-RTM发送内部更新,控制路由输出的周期和抖动,并用于实现无循环选路功能;

③策略管理模块(PM)管理着策略数据库,对将要加入Adj-RIBs-In和Adj-RIBs-Out的路由进行过滤,对将要发送给BGP对等体的路由进行属性修改。它决定是否进行路由振荡衰减和路由汇聚,并实际计算汇聚路由;

④RIB抽象层(RA)提供了一套函数调用接口用于对RIB(路由表)进行增加、查询、删除、修改操作;

⑤邻居管理模块(NM),它管理着BGP邻居数据库,维护BGP状态机和保活、保持和连接重试等定时器。监听连接请求,根据需要发送BGP OPEN、KEEPALIVE和NOTIFICATION 报文。对 BGP UPDATE报文进行解析(或组包)处理。还实现了消息合法性检查和连接冲突检测等功能。

2.2 工作过程

以图2所示的网络环境为例,路由器3上的BGP协议软件的工作过程如下:

①Socket收发模块从系统Socket收到来自路由器1的BGP UPDATE报文,通过内部消息通道发给NM模块;

②NM解析报文后发给DC,假设该报文通告了一条IPv6路由;

③DC向PM询问该路由是否可以加入Adj-RIB-In,如果可以则调用RA插入该路由;

④DC询问RTM进行下一跳可达性检查,若通过,则开始 BGP判决,优选出最佳路由,插入Loc-RIB;

⑤DC将控制权交给UM,UM将该路由通告给RTM;

⑥RTM路由装入系统转发表,并重分发到其他路由协议软件(如OSPF);

⑦UM向PM询问该路由是否应该加入Adj-RIB-Out,如果需要加入,则对路由进行属性修改后调用RA插入该路由;

⑧UM向路由器2发送BGP UPDATE消息通告该路由,由NM组包后通过Socket收发模块发送到网络中。

图2 BGP工作过程

2.3 开发过程

BGP4+软件在 BGP协议软件的基础上针对IPv6应用环境进行了开发,增加了维护管理模块和初始化过程。BGP4+软件通过维护管理接口接收来自人机界面的维护命令,调用 BGP协议软件的MIB管理接口API对BGP4+协议进行控制管理。BGP4+软件工作流程如下:

①BGP4+初始化过程在VxWorks系统的启动任务的usrAppInit函数中完成,运行在协议栈相关初始化过程之后,主要完成BGP协议软件的启动,BGP4+软件所需数据的初始化,创建BGP4+维护管理模块任务;

②BGP4+维护管理模块任务通过Socket接收来自人机界面的配置管理消息后,解析消息内容,调用BGP协议软件API,进行BGP4+协议配置、邻居配置和策略配置等操作,将配置结果回应给人机界面;

③BGP4+维护管理模块任务接收来自人机界面的查询状态消息后,调用BGP协议软件API,进行BGP4+协议状态、邻居状态、策略状态和本地路由表的查询操作,组成查询响应消息上报给人机界面。

3 BGP4+协议应用

3.1 应用环境

在某课题中,BGP4+软件在大容量核心路由交换机样机中得到应用,使之实现了BGP协议对IPv6的支持。IPv6试验网络拓扑如图3所示。

图3 试验网络拓扑

3.2 应用过程

3.2.1 配置BGP自治域和邻居

R1的配置:

R1(config)#router bgp 2

R1(config-router)#neighbor 20::2 remote-as 1

R1(config-router)#neighbor 10::2 remote-as 3

R2的配置:

R2(config)#router bgp 1

R2(config-router)#neighbor 20::1 remote-as 2

R3的配置:

R3(config)#router bgp 3

R3(config-router)#neighbor 10::1 remote-as 2

通过show bgp neighbor命令可查看邻居关系和连接状态。

3.2.2 配置直连路由并被BGP重分发

R1的配置:

R1(config)#interface loopback1

R1(config-if)#ipv address 222::1/64

R1(config)#router bgp 2

R1(config-router)#redistribute connected

通过show router命令可查看路由重分发结果。

3.2.3 配置静态路由并被BGP重分发

R1的配置:

R1(config)#ipv6 route 44::/64 10::2

R1(config)#router bgp 2

R1(config-router)#redistribute static

通过show router命令可查看路由重分发结果。

4 结束语

BGP4+协议是BGP的多协议扩展解决方案,上述BGP4+软件在某大容量核心路由交换机样机中应用,运行稳定,通过了协议测试仪的测试,满足了设备功能和性能要求。

[1]RFC 1771.A Border Gateway Protocol 4(BGP-4)[S],1995.

[2]RFC2858.Multiprotocol Extensions for BGP-4[S],2000.

[3]RFC4271.A Border Gateway Protocol 4(BGP-4)[S],2006.

[4]张宏科,苏 伟.IPv6路由协议栈原理与技术.北京:北京邮电大学出版社,2006.

猜你喜欢

路由表字段报文
基于J1939 协议多包报文的时序研究及应用
图书馆中文图书编目外包数据质量控制分析
CTCS-2级报文数据管理需求分析和实现
基于OSPF特殊区域和LSA的教学设计与实践
研究路由表的查找过程
浅析反驳类报文要点
ATS与列车通信报文分析
CNMARC304字段和314字段责任附注方式解析
无正题名文献著录方法评述
关于CNMARC的3--字段改革的必要性与可行性研究