基于集群路由器结构的高可用分布式边界网关协议系统的制作方法

文档序号:7612527阅读:130来源:国知局
专利名称:基于集群路由器结构的高可用分布式边界网关协议系统的制作方法
技术领域
基于集群路由器结构的高可用分布式边界网关协议系统属于路由协议系统结构领域,尤其涉及双节点备份技术和多节点分布式计算系统。
背景技术
Internet的飞速发展对网络设备的计算能力、转发能力和端口密度都提出了更高的要求。单个路由节点在可靠性、性能可扩展性、规模可扩展性和服务可扩展性等方面有其难以逾越的障碍,已经不能满足下一代Internet发展需要。核心路由器技术正在经历着巨大的变化,以T比特核心路由器为代表,路由器体系结构向着路由器群集、分布式、可扩展方向发展。
路由器硬件体系结构从集中控制方式发展到集群结构下的分布式并行处理方式,路由器软件技术的发展则相对比较滞后。在传统的路由器中,所有路由协议、路由策略相关的计算功能还只能在单个节点上运行,其他节点只是作为备份节点,并没有真正实现软件系统可扩展和高可用。
边界网关协议(BGP)作为Internet域间网络协议,负责自治域间的路由可达信息的交互。BGP协议对等体之间相互建立连接,通过发送路由更新(UPDATE)报文通知路由信息的变化。每个BGP实体根据自己的策略计算路由信息的优先级,并选择出最优的路由。
Internet核心路由器控制平面的BGP协议性能面临新的挑战。目前Internet骨干结点的BGP路由表容量呈现出线性增长与指数增长交替的趋势,在大容量路由表条件下,路由器需要消耗更多的存储空间,造成路由更新处理变慢,增加BGP协议的计算开销。传统单进程集中控制的BGP实现在可靠性、路由表容量、路由计算能力和支持的邻居规模上都无法满足未来Internet的发展需求。
本发明充分利用集群结构路由器硬件平台所提供的分布式计算资源与存储能力,设计了合理的划分算法,将BGP实现分布到各个节点并行运行,使各节点的计算负载和内存消耗得到均衡,从而提高BGP系统的整体效率。同时,对系统中可能存在的单一失效点实现冗余备份,达到提高整体系统可靠性的目的。

发明内容
本发明的目的在于克服传统的单节点BGP实现的计算能力、存储能力以及可靠性的不足,提供一种基于集群路由器结构的高可用分布式的BGP实现方案。
本发明解决其技术问题所采用的技术方案是如图1所示,在集群结构中,一个节点为连接节点,一个节点作为主控节点,另一个节点为主控节点的备份节点,其他节点作为从节点。连接节点负责与外部Internet的连接,在外部Internet和内部节点之间转发数据。主控节点负责管理从节点以及与对等体建立连接,并根据划分算法,将对等体的路由更新(UPDATE)报文分配给从节点处理,从节点对UPDATE报文进行解析后计算路由。
基于集群路由器结构高可用分布式BGP系统由两部分组成主控节点子系统和从节点子系统。主控节点子系统运行在主控节点上,实现与接对等体建立连接、对从节点的管理以及负载的分配,同时,将重要信息发送给备份节点;从节点子系统运行在从节点上,用于解析UPDATE报文以及路由计算。
通过主控节点的集中控制,使分布式BGP系统便于管理,通过对主控节点的备份,使系统没有单一失效点,提高了系统的可靠性;通过划分算法的合理分配,使各从节点的负载均衡,提高了整体BGP系统的性能。
本发明的特征在于在集群路由器结构中,选取一个节点作为主控节点,另一个节点为主控节点的备份节点,构成主控节点子系统;一个连接节点;其他节点作为从节点,构成从节点子系统;主控节点、从节点和连接节点通过高速交换网组成所述基于集群路由器结构的高可用分布式边界网关协议系统,所述系统基于网络传输控制协议通过连接节点和对等体建立连接,所述对等体是指与所述系统交互协议信息的边界网关协议系统;其中,A.主控节点子系统运行在所述主控节点上,负责以下任务与所述对等体建立连接;根据划分算法把从对等体接收的载有路由更新消息的路由更新报文发送给相应的从节点处理,所述的路由更新消息用“UPDATE消息”表示;接收各从节点UPDATE消息处理后的局部最优路由并从中选择出全局最优路由;将UPDATE消息通告给所述对等体;管理从节点以及把重要消息发送给所述备份节点;在所述主控节点上维护以下数据库全局最优路由数据信息库保存路由计算得到的路由器全局最优路由信息;从节点数据库保存分布式BGP系统中工作的从节点ID,每个从节点的工作负责情况,以及主控节点与从节点的通讯操作备份,所述BGP系统指的是边界网关协议系统;输出路由信息库保存发送给对等体的路由更新信息;在所述主控节点上配置了以下软件模块(1)分布式划分算法模块当所述BGP系统与新的对等体建立连接后,主控节点选择负载最小的从节点来处理新的对等体的UPDATE消息;(2)从节点管理模块该模块包括以下各子模块(2.1)从节点加入子模块新加入节点由管理员配置ID和主控节点ID,当新节点加入Cluster时,立即发送消息通告主控节点,主控节点回应这个消息,确认新节点的加入,并将新节点的信息加入到从节点信息库中,所述Cluster即集群路由器结构;(2.2)从节点退出子模块主控节点删除从节点信息库中退出从节点的信息,并按照划分算法把这个从节点上处理的对等体重新分配给其他的从节点处理;
(2.3)从节点状态监控子模块主控节点周期性的向其他所有从节点发送询问消息,收到询问消息的从节点向主控节点回复消息,没有回复消息的从节点将被认为故障;(2.4)从节点故障处理子模块主控节点通过状态监控发现某个从节点出现故障,主控节点删除从节点信息库中这个从节点的信息,并按照划分算法把这个从节点上处理的对等体重新分配给其他的从节点处理;(3)与对等体建立连接模块该模块依次按以下步骤实现与对等体的连接步骤3-1启动与对等体的连接;步骤3-2启动TCP连接;步骤3-3建立BGP连接,按以下步骤进行步骤3-3-1向对等体发送用来建立BGP对等体连接的问讯消息,称为OPEN消息;步骤3-3-2接收到对等体的OPEN消息后,向对等体回复保持BGP连接的通告消息称为KEEPALIVE消息,同时等待对等体的KEEPALIVE消息,连接状态设置为OpenConfirm;步骤3-3-3接收对等体的KEEPALIVE消息,完成与对等体的连接,连接状态设置为Established;步骤3-4主控节点根据所述分配算法选出负载最小的从节点,由该从节点处理该对等体的UPDATE消息;(4)处理BGP消息模块该模块按以下步骤实现消息处理步骤4-1主控节点调用TCP socket读函数得到BGP消息;步骤4-2主控节点处理不同类型消息步骤4-2-1处理OPEN消息从OPEN消息中读取版本号、自治域号、超时时间、BGP标识符四个域的值,并分别予以检验;根据自治域号和BGP标识符判断OPEN消息是否来自管理员设置的邻居节点若不是,则发送用NOTIFICATION表示的故障消息与对等体中断连接;若是,则进行以下检测;根据BGP协议的连接冲突检测定义进行冲突检测若有冲突并需关闭该连接便发送故障消息以中断与该对等体的连接;若无冲突,便执行以下检测检测版本号是否正确若不正确,发送故障消息给该对等体以中断连接;若正确,便执行以下检测;检测超时时间是否为零或者小于3秒若不是,发送故障消息以中断与该对等体的连接;否则,便执行以下检测;比较本路由器BGP实体设置的超时时间置和接收的OPEN消息中的超时时间值,以值小的作为这个连接的超时时间值,设置保持BGP连接的通告消息定时器的值为所述连接超时时间值的三分之一;
发送保持BGP连接的通告消息给该对等体确认接收OPEN消息,连接状态设置为OpenConfirm状态;步骤4-2-2处理保持BGP连接的通告消息当连接状态为OpenConfirm状态时,主控节点把连接状态变为Established状态并向对等体发送保持BGP连接的通告消息;当连接状态为Established状态时,增加保持BGP连接的通告消息接收计数,重置超时时间定时器;步骤4-2-3处理从对等体接收到的路由更新消息主控节点收到路由更新消息后,把路由更新消息发送给相应的从节点;由从节点作以下检查;对整个属性长度作检查,若超过规定长度,通过故障消息通告对等体,丢弃该路由更新消息;若路由更新消息中包括不可用路由,检查该路由长度是否正确,若超过规定值,向对等体发送故障消息并丢弃该路由更新消息;否则,对该不可用路由进行语法检查,若有错误,便丢弃该路由更新消息;若正确,便获取不可用路由的值存入变量中;若路由更新消息中包含可用路由,则检查该路由的长度,若超过规定值,向对等体发送故障消息并丢弃该路由更新消息;否则,对该可用路由的路径属性的每个域进行检查,若有错误,便丢弃该路由更新消息;若正确,便获取路由属性各个域的值存入一个结构变量中;对于不可用路由,从输入路由信息库中删除该路由,启动分布式BGP路由计算;对于可用路由,更新输入路由信息库,保存路径属性,启动分布式BGP路由计算;步骤4-2-4处理故障消息主控节点获取该故障消息中各个域的值,显示错误信息,断开与故障对等体的连接;接着,通知该对等体UPDATE消息的处理从节点删除包括故障对等体所发布的路由以及路由属性在内的所有相关信息;(5)双节点冗余备份模块主控节点和备份节点形成双节点备份的硬件环境,但是节点之间不提供相互的软硬件失效的硬件检测机制,它们通过心跳算法实现双机的状态监测;主控节点和备份节点都运行主控节点子系统,当主控节点正常工作时,备份节点只能接收主控节点的备份消息,并把备份消息中的备份数据备份到相应的数据库中;当主控节点出现故障时,备份节点接替主控节点的工作;为实现这种失效转移,采用了的方法是进行检查点(CheckPoint)状态备份,然后进行状态回滚恢复;该模块按以下步骤实现步骤1.双节点备份的状态检测主控节点定时发送查询消息给备份节点,备份节点回复消息;当主控节点收不到备份节点的回复消息时,就认为备份节点故障,这时主控节点将不会向备份节点发送备份消息;当备份节点不能收到主控节点的查询消息时,就认为主控节点出现故障,这时备份节点将进行状态回滚恢复,接替主控节点的工作;步骤2.状态备份在主控节点模块中,需要备份的状态信息可以分为两类,一类是通讯相关的状态信息,包括主控节点与从节点的通讯信息;另一类是应用相关的状态数据,包括对等体连接状态、全局最优路由信息库、输出路由信息库、从节点信息库;对于通讯相关的状态数据来说,任何一次操作都可能涉及到从节点的状态变化,所以它们的状态备份必须做到小粒度的备份,在每一次主控节点与从节点进行通讯后进行相应的状态备份;当主控节点与从节点通讯时,主控节点同时将通讯数据读写操作备份到备份节点中,备份的读写操作中包括读写操作的读取和写入数据,数据长度,以及操作返回的结果;而对于应用相关的状态数据,数据量大,备份粒度较大,主控节点每隔一段的时间把这些应用相关数据发送给备份节点;步骤3.状态回滚恢复当主控节点出现故障时,备份节点接替主控节点工作,这时应用相关的状态数据已经保存在备份节点的相应数据库中,备份节点上的主控节点子系统可以直接使用这些状态数据启动,然后重复进行通讯数据读写操作,但是通讯数据读写操作不是在进行实际的数据读写操作,而是从备份的读写操作中返回相应的数据和结果;B.从节点子系统,负责路由更新消息处理,局部最优路由选择,还要配合主控节点进行全局最优路由选择;该从节点子系统仅有分布式BGP路由计算子模块,按以下步骤以完成从节点子系统的任务(1)优先级计算当从节点对UPDATE报文解析后,发现有可用路由,触发优先级计算过程;在优先级计算过程中,锁定输入路由信息库,根据预先设定好的策略,对新的可用路由或者是替代路由计算一个优先级;计算完成后,解开输入路由信息库,触发路由选择过程;(2)路由选择在分布式BGP系统中,路由选择分为两步完成,第一步是从节点选择局部最优路由,第二步是主控节点选择全局最优路由;当优先级计算过程完成后,首先激活从节点路由选择;从节点路由选择过程锁定输入路由信息库,从所有与新的可用路由目的地相同的路由中选出优先级最高的一条路由,如果选出的路由与局部最优路由信息库中保存的路由相同,结束路由选择过程;否则,更新局部最优信息库,解开输入路由信息库,同时通过系统的分布式消息机制把这条路由信息发送给主控节点,激活主控节点全局路由选择过程;主控节点上保存着所有从节点的局部最优路由,当收到一条从节点发送来的新的路由时,锁定全局最优路由信息库,从所有与新的可用路由目的地相同的路由中选出优先级最高的一条路由,更新全局最优路由信息库,解开全局最优路由信息库,触发路由分发过程;(3)路由分发路由分发过程被路由选择过程激活,将全局最优路由信息库的更新路由包装到UPDATE消息中,发送给每个对端,同时在每个对等体的输出路由信息库中记录发送的路由;本发明所提出的基于集群路由器结构高可用分布式BGP系统,克服了传统的单节点BGP系统性能和可靠性的不足,提供了一种新的BGP系统实现方案,通过构建一个集群结构分布式处理系统,可以实现BGP报文的快速处理和BGP的可靠服务。


图1.基于集群路由器结构分布式BGP系统结构图2.从节点状态信息查询示意3.主控节点子系统与对等体建立连接流程4.分布式BGP路由计算示意5.容错应用系统的状态备份和回滚恢复示意图具体实施方式
基于集群路由器结构高可用分布式BGP系统主要由两个子系统构成主控节点子系统和从节点系统子系统。
●主要功能主控节点子系统与对等体建立连接;根据划分算法把接收的路由更新报文发送给相应的从节点处理;接收各从节点BGP消息处理后的局部最优路由并选出全局最优路由;将路由更新通告给对等体;管理从节点。
从节点子系统对UPDATE消息进行解析;计算各条路由的优先级;选出局部最优路由。
●几个重要概念BGP实体路由器上运行的BGP系统。
BGP对等体与当前系统交互协议消息的BGP系统。
BGP定义了4种报文□OPEN消息用来建立BGP对等体连接的问讯消息;□UPDATE消息路由更新消息;□KEEPALIVE消息保持BGP连接的通告消息;□NOTIFICATION消息故障通告消息;同时BGP定义了六种与对等体连接状态启动对等体连接即Idle状态,启动TCP连接即Connect状态、等待TCP连接即Active状态、发送Open消息即OpenSent状态、等待接收OPEN消息确认即OpenConfirm状态、BGP连接成功即Established状态,用来描述与BGP对等体连接建立过程中的不同阶段。在每个连接状态,需要接收的BGP消息不同,并且,会根据接收到的BGP消息改变连接状态主控节点子系统维护的数据库□全局最优路由信息库保存路由计算得到的路由器全局最优路由信息;□从节点数据库保存分布式BGP系统中工作的从节点ID,以及每个从节点的工作负载情况。
□输出路由信息库保存发送给对等体的路由更新报文信息;
从节点子系统维护的数据库输入路由信息库保存接收到的对等体更新报文信息。
局部最优路由信息库保存从节点路由计算得到的本节点最优路由信息。
●分布式划分算法主控子系统维护的从节点信息库中记录了当前有哪些从节点,每个从节点上分配了多少个对等体报文的处理工作,当BGP系统与新的对等体建立连接后,主控子系统选择负载最小的从节点处理新的对等体的UPDATE消息。这个分配算法能够保证各从节点的负载比较均衡。
●从节点管理□从节点的加入1.配置从节点的标识号和主控节点的标识号。
2.向主控节点发送加入通告消息,等待主控节点回应消息;3.主控节点收到从节点的加入通告消息,将新节点的信息加入到从节点库中,发送回应消息给从节点。
□从节点的退出1.主控节点删除从节点库中退出从节点的信息;2.按照划分算法把退出从节点上处理的负载重新分配给其他的从节点处理;□从节点的状态检查主控节点周期性的向所有从节点发送询问消息,收到询问消息的节点向主控节点回复消息,没有回复消息的从节点将被认为故障。主从节点状态信息查询流程如图2所示。
□从节点的故障处理1.主控节点通过从节点状态检查发现故障从节点;2.主控节点等待从节点恢复,等待时间由管理员设定,缓存由故障从节点处理的UPDATE消息;3.如果在等待时间内从节点没有恢复工作,主控节点删除从节点库中故障从节点的信息,按照划分算法把故障从节点上处理的负载重新分配给其他的从节点处理。
4.如果在等待时间内故障从节点恢复工作,主控节点将缓存的UPDATE消息发送给它处理。
●与对等体建立连接当前路由器BGP实体首先要和对等体建立连接,流程如图3所示。BGP是基于网络传输控制协议(TCP)之上的路由协议。因此,与对等体建立连接可以分为两个步骤先建立TCP连接,再建立BGP连接。与对等体建立连接之前将连接状态设置为Idle。
□建立TCP连接有两种模式主动模式和被动模式主动模式主控节点子系统主动向对等体发起TCP连接请求,通过三次握手与对等体被动模块主控节点子系统监听TCP的179端口,对等体请求建立TCP连接,通过三次握手与对等体建立TCP连接;启动TCP连接前将连接状态设置为Connect。
□建立BGP连接1.向对等体发送OPEN消息,等待对等体的OPEN消息,连接状态设置为OpenSent;2.接收到对等体的OPEN消息,回复KEEPALIVE消息,同时等待对等体的KEEPALIVE消息,连接状态设置为OpenConfirm;3.接收KEEPALIVE消息,完成与对等体的连接,连接状态设置为Established。
当BGP实体与对等体建立连接后,主控节点根据分配算法选出负载最小的从节点,由这个从节点处理这个对等体的UPDATE消息。
●处理BGP报文流程主控节点子系统通过调用TCP socket读函数得到BGP报文。
□OPEN消息处理在分布式BGP系统中,OPEN消息的处理是在主控节点上实现的,OPEN消息的处理流程如下1.从OPEN报文中读取版本号(Version)、自治域号(AS Number)、超时时间(Hold Time)和BGP标识符(BGP Identifier)四个域的值;2.根据AS Number和BGPI dentifier判断OPEN消息是否来自管理员设置的邻居节点。如果不是,发送NOTIFICATION消息给对等体。
3.根据BGP协议的连接冲突检测定义进行冲突检测,如果有冲突并需要关闭这个连接,则发送NOTIFICATION消息给对等体中断这个连接。
4.检测版本号是否正确,不正确发送NOTIFICATION消息给对等体中断这个连接。
5.检测AS Number是否正确,不正确发送NOTIFICATION消息给对等体中断这个连接。
6.检测Hold Time是否为零或者大于3秒,如果不是,发送NOTIFICATION消息给对等体中断这个连接。
7.比较本路由器BGP实体设置的Hold Time值和接受的OPEN消息中的Hold Time值,以值小的作为这个连接的Hold Time值,设置KEEPALIVE消息定时器为连接Hold Time值的三分之一。
8.发送KEEPALIVE消息给对等体确认接受OPEN消息,使对等体连接的有限状态变为OpenConfirm状态。
□KEEPALIVE消息处理在分布式BGP系统中,KEEPALIVE消息的处理是在主控节点上实现的。KEEPALIVE消息只有一个消息头,对它的处理比较简单。
当连接状态为OpenConfirm状态时,处理流程如下1.将连接状态变为Established状态。
2.发送KEEPALIVE消息给对等体。
3.把当前路由器路由表全部通过UPDATE消息发送给对等体。
当连接状态为Established状态时,处理流程如下1.增加KEEPALIVE消息接收计数。
2.重置HOLD Time定时器。
□UPDATE消息处理在分布式BGP系统中,UPDATE消息由主控节点接收,对UPDATE消息的处理是在从节点上实现的,处理流程如下主控节点接收到UPDATE消息,把UPDATE报文发送给相应的从节点;对整个属性长度检查,如果超过规定长度,通过NOTIFICATION消息通知对等体,丢弃这个UPDATE消息;如果UPDATE消息中包含不可用路由,检查不可用路由长度是否正确。如果超过规定长度,通过NOTIFICATION消息通知对等体,丢弃这个UPDATE消息;对不可用路由进行语法检查,如果错误,丢弃这个UPDATE消息;如果正确,获取不可用路由的值存入变量中;如果UPDATE消息中包含可用路由,对可用路由长度检查,如果太长,通过NOTIFICATION消息通知对等体,丢弃这个UPDATE消息;对可用路由的路径属性的每个域进行检查,如果有错误,通过NOTIFICATION消息通知对等体,丢弃这个UPDATE消息;如果正确,获取路径属性各个域的值存入一个结构变量中;对可用路由进行语法检查,如果错误,丢弃这个UPDATE消息;如果正确,获取不可用路由的值存入变量中;如果有不可用路由,从输入路由信息库中删除这条路由,启动分布式BGP路由计算;如果有可用路由,更新输入路由信息库,保存路径属性;启动分布式BGP路由计算。
□NOTIFICATION消息处理在分布式BGP系统中,对NOTIFICATION消息的处理是由主控节点和从节点配合实现的,处理流程如下1.获取NOTIFICATION消息中各个域的值;2.把错误信息显示出来;3.断开与对等体的连接。
4.主控节点通知处理这个对等体UPDATE消息的从节点删除与之有关的所有相关信息(包括它所发布的路由以及描述这些路由的属性),启动分布式BGP路由计算;●分布式BGP路由计算在BGP协议中,BGP路由计算又称为决策过程,分为三期优先级计算、路由选择、路由分发。这三期分别是三个独立的过程,由不同的事件激发,图4为路由计算示意图。
分布式BGP路由算法描述如下1.优先级计算当从节点对UPDATE报文解析后,发现有可用路由,触发优先级计算过程。在优先级计算过程中,锁定输入路由信息库,根据预先设定好的策略,对新的可用路由或者是替代路由计算一个优先级。计算完成后,解开输入路由信息库,触发路由选择过程。
2.路由选择在分布式BGP系统中,路由选择分为两步完成,第一步是从节点选择局部最优路由,第二步是主控节点选择全局最优路由。
当优先级计算过程完成后,首先激活从节点路由选择。从节点路由选择过程锁定输入路由信息库,从所有与新的可用路由目的地相同的路由中选出优先级最高的一条路由,如果选出的路由与局部最优路由信息库中保存的路由相同,结束路由选择过程;否则,更新局部最优信息库,解开输入路由信息库,同时通过系统的分布式消息机制把这条路由信息发送给主控节点,激活主控节点全局路由选择过程。
主控节点上保存着所有从节点的局部最优路由,当收到一条从节点发送来的新的路由时,锁定全局最优路由信息库,从所有与新的可用路由目的地相同的路由中选出优先级最高的一条路由,更新全局最优路由信息库,解开全局最优路由信息库,触发路由分发过程。
3.路由分发路由分发过程被路由选择过程激活,将全局最优路由信息库的更新路由包装到UPDATE消息中,发送给每个对端,同时在每个对等体的输出路由信息库中记录发送的路由。
●主控节点的双节点冗余备份主控节点和备份节点形成双节点备份的硬件环境,但是节点之间不提供相互的软硬件失效的硬件检测机制,它们通过心跳算法实现双机的状态监测。主控节点和备份节点都运行主控节点子系统,当主控节点正常工作时,备份节点只能接收主控节点的备份消息,并把备份消息中的备份数据备份到相应的数据库中;当主控节点出现故障时,备份节点接替主控节点的工作。
为实现这种失效转移,采用了的方法是进行检查点(CheckPoint)状态备份,然后进行状态回滚恢复,如图5所示主控节点上的主控节点子系统一步一步执行,在每个步骤完成后都插入一个检查点,检查系统当前的状态,并把系统状态保存到备份节点相应的数据库中,当主控节点上的主控节点子系统在某个步骤,如步骤3出现故障时,备份节点将检查点2的系统状态信息恢复到备份节点上,备份节点的主控节点子系统可以继续执行步骤3。
处理流程如下主控节点定时发送查询消息给备份节点,备份节点回复消息;当主控节点收不到备份节点的回复消息时,就认为备份节点故障,这时主控节点将不会向备份节点发送备份消息;当主控节点能够收到备份节点的回复消息时,就认为备份节点正常工作,可以向备份节点备份状态信息;在主控节点模块中,需要备份的状态信息可以分为两类,一类是通讯相关的状态信息,包括主控节点与从节点的通讯信息;另一类是应用相关的状态数据,包括对等体连接状态、全局最优路由信息库、输出路由信息库、从节点信息库;对于通讯相关的状态数据来说,任何一次操作都可能涉及到从节点的状态变化,所以它们的状态备份必须做到小粒度的备份,在每一次主控节点与从节点进行通讯后进行相应的状态备份;当主控节点与从节点通讯时,主控节点同时将通讯数据读写操作备份到备份节点中,备份的读写操作中包括读写操作的读取和写入数据,数据长度,以及操作返回的结果;
而对于应用相关的状态数据,数据量大,备份粒度较大,主控节点每隔一段的时间把这些应用相关数据发送给备份节点;当备份节点不能收到主控节点的查询消息时,就认为主控节点出现故障,这时备份节点将进行状态回滚恢复,接替主控节点的工作;备份节点接替主控节点工作,这时应用相关的状态数据已经保存在备份节点的相应数据库中,备份节点上的主控节点子系统直接使用这些状态数据启动,然后重复进行通讯数据读写操作,但是通讯数据读写操作不是在进行实际的数据读写操作,而是从备份的读写操作中返回相应的数据和结果。
权利要求
1.基于集群路由器结构的高可用分布式边界网关协议系统,其特征在于在集群路由器结构中,选取一个节点作为主控节点,另一个节点为主控节点的备份节点,构成主控节点子系统;一个连接节点;其他节点作为从节点,构成从节点子系统;主控节点、从节点和连接节点通过高速交换网组成所述基于集群路由器结构的高可用分布式边界网关协议系统,所述系统基于网络传输控制协议通过连接节点和对等体建立连接,所述对等体是指与所述系统交互协议信息的边界网关协议系统;其中,A.主控节点子系统运行在所述主控节点上,负责以下任务与所述对等体建立连接;根据划分算法把从对等体接收的载有路由更新消息的路由更新报文发送给相应的从节点处理,所述的路由更新消息用“UPDATE消息”表示;接收各从节点UPDATE消息处理后的局部最优路由并从中选择出全局最优路由;将UPDATE消息通告给所述对等体;管理从节点以及把重要消息发送给所述备份节点;在所述主控节点上维护以下数据库全局最优路由数据信息库保存路由计算得到的路由器全局最优路由信息;从节点数据库保存分布式BGP系统中工作的从节点ID,每个从节点的工作负责情况,以及主控节点与从节点的通讯操作备份,所述BGP系统指的是边界网关协议系统;输出路由信息库保存发送给对等体的路由更新信息;在所述主控节点上配置了以下软件模块(1)分布式划分算法模块当所述BGP系统与新的对等体建立连接后,主控节点选择负载最小的从节点来处理新的对等体的UPDATE消息;(2)从节点管理模块该模块包括以下各子模块(2.1)从节点加入子模块新加入节点由管理员配置ID和主控节点ID,当新节点加入Cluster时,立即发送消息通告主控节点,主控节点回应这个消息,确认新节点的加入,并将新节点的信息加入到从节点信息库中,所述Cluster即集群路由器结构;(2.2)从节点退出子模块主控节点删除从节点信息库中退出从节点的信息,并按照划分算法把这个从节点上处理的对等体重新分配给其他的从节点处理;(2.3)从节点状态监控子模块主控节点周期性的向其他所有从节点发送询问消息,收到询问消息的从节点向主控节点回复消息,没有回复消息的从节点将被认为故障;(2.4)从节点故障处理子模块主控节点通过状态监控发现某个从节点出现故障,主控节点删除从节点信息库中这个从节点的信息,并按照划分算法把这个从节点上处理的对等体重新分配给其他的从节点处理;(3)与对等体建立连接模块该模块依次按以下步骤实现与对等体的连接步骤3-1启动与对等体的连接;步骤3-2启动TCP连接;步骤3-3建立BGP连接,按以下步骤进行;步骤3-3-1向对等体发送用来建立BGP对等体连接的问讯消息,称为OPEN消息;步骤3-3-2接收到对等体的OPEN消息后,向对等体回复保持BGP连接的通告消息称为KEEPALIVE消息,同时等待对等体的KEEPALIVE消息,连接状态设置为OpenConfirm;步骤3-3-3接收对等体的KEEPALIVE消息,完成与对等体的连接,连接状态设置为Established;步骤3-4主控节点根据所述分配算法选出负载最小的从节点,由该从节点处理该对等体的UPDATE消息;(4)处理BGP消息模块该模块按以下步骤实现消息处理步骤4-1主控节点调用TCP socket读函数得到BGP消息;步骤4-2主控节点处理不同类型消息步骤4-2-1处理OPEN消息从OPEN消息中读取版本号、自治域号、超时时间、BGP标识符四个域的值,并分别予以检验;根据自治域号和BGP标识符判断OPEN消息是否来自管理员设置的邻居节点若不是,则发送用NOTIFICATION表示的故障消息与对等体中断连接;若是,则进行以下检测;根据BGP协议的连接冲突检测定义进行冲突检测若有冲突并需关闭该连接便发送故障消息以中断与该对等体的连接;若无冲突,便执行以下检测;检测版本号是否正确若不正确,发送故障消息给该对等体以中断连接;若正确,便执行以下检测;检测超时时间是否为零或者小于3秒若不是,发送故障消息以中断与该对等体的连接;否则,便执行以下检测;比较本路由器BGP实体设置的超时时间置和接收的OPEN消息中的超时时间值,以值小的作为这个连接的超时时间值,设置保持BGP连接的通告消息定时器的值为所述连接超时时间值的三分之一;发送保持BGP连接的通告消息给该对等体确认接收OPEN消息,连接状态设置为OpenConfirm状态;步骤4-2-2处理保持BGP连接的通告消息当连接状态为OpenConfirm状态时,主控节点把连接状态变为Established状态并向对等体发送保持BGP连接的通告消息;当连接状态为Established状态时,增加保持BGP连接的通告消息接收计数,重置超时时间定时器;步骤4-2-3处理从对等体接收到的路由更新消息主控节点收到路由更新消息后,把路由更新消息发送给相应的从节点;由从节点作以下检查;对整个属性长度作检查,若超过规定长度,通过故障消息通告对等体,丢弃该路由更新消息;若路由更新消息中包括不可用路由,检查该路由长度是否正确,若超过规定值,向对等体发送故障消息并丢弃该路由更新消息;否则,对该不可用路由进行语法检查,若有错误,便丢弃该路由更新消息;若正确,便获取不可用路由的值存入变量中;若路由更新消息中包含可用路由,则检查该路由的长度,若超过规定值,向对等体发送故障消息并丢弃该路由更新消息;否则,对该可用路由的路径属性的每个域进行检查,若有错误,便丢弃该路由更新消息;若正确,便获取路由属性各个域的值存入一个结构变量中;对于不可用路由,从输入路由信息库中删除该路由,启动分布式BGP路由计算;对于可用路由,更新输入路由信息库,保存路径属性,启动分布式BGP路由计算;步骤4-2-4处理故障消息主控节点获取该故障消息中各个域的值,显示错误信息,断开与故障对等体的连接;接着,通知该对等体UPDATE消息的处理从节点删除包括故障对等体所发布的路由以及路由属性在内的所有相关信息;(5)双节点冗余备份模块主控节点和备份节点形成双节点备份的硬件环境,但是节点之间不提供相互的软硬件失效的硬件检测机制,它们通过心跳算法实现双机的状态监测;主控节点和备份节点都运行主控节点子系统,当主控节点正常工作时,备份节点只能接收主控节点的备份消息,并把备份消息中的备份数据备份到相应的数据库中;当主控节点出现故障时,备份节点接替主控节点的工作;为实现这种失效转移,采用了的方法是进行检查点状态备份,然后进行状态回滚恢复;主控节点定时发送查询消息给备份节点,备份节点回复消息;当主控节点收不到备份节点的回复消息时,就认为备份节点故障,这时主控节点将不会向备份节点发送备份消息;当主控节点能够收到备份节点的回复消息时,就认为备份节点正常工作,可以向备份节点备份状态信息;在主控节点模块中,需要备份的状态信息可以分为两类,一类是通讯相关的状态信息,包括主控节点与从节点的通讯信息;另一类是应用相关的状态数据,包括对等体连接状态、全局最优路由信息库、输出路由信息库、从节点信息库;对于通讯相关的状态数据来说,任何一次操作都可能涉及到从节点的状态变化,所以它们的状态备份必须做到小粒度的备份,在每一次主控节点与从节点进行通讯后进行相应的状态备份;当主控节点与从节点通讯时,主控节点同时将通讯数据读写操作备份到备份节点中,备份的读写操作中包括读写操作的读取和写入数据,数据长度,以及操作返回的结果;而对于应用相关的状态数据,数据量大,备份粒度较大,主控节点每隔一段的时间把这些应用相关数据发送给备份节点;当备份节点不能收到主控节点的查询消息时,就认为主控节点出现故障,这时备份节点将进行状态回滚恢复,接替主控节点的工作;备份节点接替主控节点工作,这时应用相关的状态数据已经保存在备份节点的相应数据库中,备份节点上的主控节点子系统直接使用这些状态数据启动,然后重复进行通讯数据读写操作,但是通讯数据读写操作不是在进行实际的数据读写操作,而是从备份的读写操作中返回相应的数据和结果;B.从节点子系统,负责路由更新消息处理,局部最优路由选择,还要配合主控节点进行全局最优路由选择;该从节点子系统仅有分布式BGP路由计算子模块,按以下步骤以完成从节点子系统的任务(1)优先级计算当从节点对UPDATE报文解析后,发现有可用路由,触发优先级计算过程;在优先级计算过程中,锁定输入路由信息库,根据预先设定好的策略,对新的可用路由或者是替代路由计算一个优先级;计算完成后,解开输入路由信息库,触发路由选择过程;(2)路由选择在分布式BGP系统中,路由选择分为两步完成,第一步是从节点选择局部最优路由,第二步是主控节点选择全局最优路由;当优先级计算过程完成后,首先激活从节点路由选择;从节点路由选择过程锁定输入路由信息库,从所有与新的可用路由目的地相同的路由中选出优先级最高的一条路由,如果选出的路由与局部最优路由信息库中保存的路由相同,结束路由选择过程;否则,更新局部最优信息库,解开输入路由信息库,同时通过系统的分布式消息机制把这条路由信息发送给主控节点,激活主控节点全局路由选择过程;主控节点上保存着所有从节点的局部最优路由,当收到一条从节点发送来的新的路由时,锁定全局最优路由信息库,从所有与新的可用路由目的地相同的路由中选出优先级最高的一条路由,更新全局最优路由信息库,解开全局最优路由信息库,触发路由分发过程;(3)路由分发路由分发过程被路由选择过程激活,将全局最优路由信息库的更新路由包装到UPDATE消息中,发送给每个对端,同时在每个对等体的输出路由信息库中记录发送的路由。
全文摘要
基于集群路由器结构的高可用分布式边界网关协议系统属于路由协议系统结构领域,其特征在于在集群路由器结构中,选取一个节点为主控节点,另一个节点为主控节点的备份节点,一个连接节点,至少一个从节点;通过对主控节点的备份,使系统没有单一失效点,提高了系统可靠性;通过划分算法的合理分配,使各从节点的负载均衡,提高了整体BGP系统的性能;从而实现了BGP消息的快速处理和BGP的可靠服务。
文档编号H04L12/28GK1719831SQ20051001219
公开日2006年1月11日 申请日期2005年7月15日 优先权日2005年7月15日
发明者徐恪, 张智泉, 崔勇 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1