一种软件定义的跨域多路径路由规划方法与流程

文档序号:15979498发布日期:2018-11-17 00:09阅读:164来源:国知局
本发明主要涉及计算机网络领域路由规划协议的架构,特指一种软件定义的跨域多路径路由规划方法。
背景技术
:目前路由规划方法主要包括分布式路由选择和集中式路由选择两种。分布式路由选择是所有节点定期地与其每个相邻节点交换路由选择信息。每个节点均存储一张以网络中其它每个节点为索引的路由表,网络中每个节点占用路由表中一项,独立计算到达各节点的路由。随着对传输质量和效率的要求越来越高,分布式路由的缺陷日益凸显。分布式路由对链路依赖性较高,定期的路由交换导致需经常更新路由表及收敛网络链路,频繁的更新与收敛导致网络路由效率较低,以及网络的稳定性得不到保障。集中式路由选择是在网络中设置一个路由控制中心节点,该节点周期性收集各链路的状态,动态计算出每一个节点的路由表,再周期性地将新的路由表发送给各个节点。不同于分布式路由选择,集中路由选择的节点路由表由路由控制中心节点根据网络状态计算、生成并发送给各相应节点,减轻了各节点计算路由选择的负担。但是,集中式路由选择中,当网络节点请求向路由控制中心节点发送较多请求时,容易造成网络拥塞从而处理报文能力效率过低。技术实现要素:针对现有路由规划方法存在的问题,本发明提供一种软件定义的跨域多路径路由规划方法,结合集中式路由规划与分布式路由规划,通过全局控制器和区域控制器、区域控制器和路由器之间的交互实现软件定义的跨域多路径路由规划方法,满足日益变化的网络对业务性能保障和数据安全方面的要求,从而提高网络资源的利用率,提升网络路由的效率。在介绍本发明的技术方案前,先介绍本发明中的相关术语:控制平面(controlplane),用于运行路由协议,负责计算报文转发的路由策略,并将路由策略安装到数据平面。数据平面(dataplane),利用控制平面安装的路由策略控制报文转发行为。路由表(routingtable),路由表位于路由器的控制平面,包括路由表项的前缀、下一跳等信息。转发表(forwardingtable),转发表位于路由器的数据平面,包括表项的前缀、下一跳等信息。全局控制器(globalcontroller),作为全网的集中与分布相结合的多路径路由控制协议的策略编排器,用于配置区域内的路由策略以及监控协议运行状态等。区域控制器(areacontroller),负责区域内路由策略的计算以及从全局控制器接收到路由计算编排的策略。一种软件定义的跨域多路径路由规划方法,包括以下步骤:第一步:部署路由规划架构。路由规划架构包括全局控制器、区域控制器、路由器三类运行实体,每个区域内至少部署一台区域控制器,全网至少部署一台全局控制器。全局控制器与所有的区域控制器相连;区域控制器与其区域内的路由器相连,并与全局控制器相连;路由器与管辖其所在区域的区域控制器相连,并与路由路径中的其他路由器相连。第二步:通过三类运行实体之间的交互完成软件定义的跨域多路径路由规划,包括以下步骤:s1:全局控制器与区域控制器进行交互,完成路由计算策略的下发及当前路径状态信息的反馈。具体实施方法:通过建立面向连接的传输协议来完成注册、同步、策略更新和保活交互过程,全局控制器将编排好的路由计算策略下发至区域控制器,区域控制器执行路由计算策略并向全局控制器反馈当前路径状态信息,全局控制器根据区域实时反馈的路径状态信息更新区域内的路由计算策略。s2:区域控制器与路由器进行交互,完成集中路径的下发及链路拓扑信息的反馈。具体实施方法:区域控制器根据全局控制器下发的路由计算策略计算集中路径,并下发至路由器并部署到网络中。区域控制器与路由器通过建立面向连接的传输协议来完成注册、同步、路由更新以及保活交互过程。区域控制器在交互过程中从路由器获得实时感知的链路拓扑信息,并根据链路拓扑信息计算集中路径。s3:路由器执行路由策略,并完成报文的转发及路径的维护。具体实施方法:路由器通过控制平面运行分布式路由协议来计算分布路径,并利用单播路由协议收集当前链路状态并反馈至区域控制器。在接收到区域控制器下发的集中路径的路由策略时,先判断当前网络环境下分布路径与集中路径是否相交,若相交则采用集中路径撤销算法将集中路径撤销;若不相交,则直接添加分布路径的表项。当网络环境中发生分布式路径状态改变或集中式路径状态变化时对集中路径与分布路径进行维护。数据平面在接收到控制平面下发的转发策略时,采用基于hash桶的转发路径算法来确定报文转发的下一跳。作为本发明技术方案的进一步改进:所述步骤s1中全局控制器与区域控制器的交互流程为:s101:注册阶段,区域控制器在初始化阶段向全局控制器发送注册消息,通过配置全局控制器的地址和端口号进行注册。利用“控制器注册请求”消息controller_register_req完成区域控制器的注册。同时,全局控制器使用“控制器注册响应”消息controller_register_res反馈区域控制器注册是否成功。若注册成功,转入s102;否则,向区域控制器返回注册未成功消息,返回s101,重新向全局控制器发送注册请求消息。区域控制器每隔3s重新向全局控制器发送一次注册请求消息,当注册请求消息达到10次时,返回结束。s102:同步阶段,区域控制器在初始化阶段或路径状态更新时,主动向全局控制器发送“控制器路径状态通告请求”消息controller_path_satus_notify_req,用于通告区域内路径信息。如果全局控制器成功接收到路径信息,则全局控制器利用“控制器路径状态通告响应”消息controller_path_satus_notify_res反馈已成功接收到路径,进入s103;否则,区域控制器继续向全局控制器发送“控制器路径状态通告请求”消息,通告区域内路径信息区域控制器,若连续3次向全局控制器通告相同路径状态都失败时,则停止该路径状态的通告,并标记路径状态通告失败,转入s103。s103:策略更新阶段,全局控制器利用“控制器路由策略请求”消息controller_routing_srategy_req向区域控制器下发路由计算策略,确保区域控制器按照路由策略编排进行计算多路径。如果区域控制器成功接收到“控制器路由策略请求”消息,区域控制器根据全局控制器下发的路由计算更新此次路由计算策略,并利用“控制器路由策略响应”消息controller_routing_srategy_res反馈执行结果;否则,全局控制器继续利用“控制器路由策略请求”消息向区域控制器下发路由计算策略,如果全局控制器连续3次都无法实现策略更新操作,则放弃更新此路由计算策略,并标记路由策略更新失败,转入s104。s104:保活阶段,全局控制器周期性(60秒)的向区域控制器发送“控制器保活请求”消息controller_keepalive_req,探测区域控制器是否在线,同时,区域控制器利用“控制器保活响应”消息controller_keepalive_res反馈其是否在线。若区域控制器在线,则区域控制器向全局控制器发送“控制器保活响应”消息controller_keepalive_res反馈其在线;若全局控制器在连续3个周期内都没有接收到区域控制器的“控制器保活响应”消息controller_keepalive_res,则表明区域控制器不在线,将该区域控制器的信息删除。作为本发明技术方案的进一步改进:所述步骤s2中区域控制器与路由器的交互工作流程为:s201:注册阶段,路由器向区域控制器发送“路由器注册请求”消息router_register_req,通过配置区域控制器的地址与端口号,完成路由器的注册。同时,区域控制器使用“路由器注册响应”消息router_register_res反馈路由器注册是否成功。若注册成功,进入s202;否则,转s201,路由器将重新向区域控制器发送注册请求消息。路由器每隔3s重新向区域控制器发送一次注册请求消息,当注册请求消息达到10次时,返回结束。s202:同步阶段,路由器在初始化阶段或路径状态更新时,主动向区域控制器发送“路由器状态通告请求”消息router_status_notify_req,用于通告链路状态信息。如果区域控制器成功收到“路由器状态通告请求”消息,区域控制器向全局控制器发送“路由器状态通告响应”消息router_status_notify_res反馈已成功接收到消息,进入s203;否则,路由器连续3次向区域控制器通告相同链路状态都失败时,则停止该链路状态的通告,并标记链路状态通告失败,转入s203。s203:路由更新阶段,区域控制器利用“路由器路由策略添加请求”消息router_routing_add_req向路由器下发路由策略。同时,路由器利用“路由器路由策略添加响应”消息router_routing_add_res反馈执行结果。如果区域控制器连续3次都无法实现策略更新操作,则放弃更新路由策略,并标记路由更新失败,转入s204。s204:保活阶段,区域控制器周期性的向路由器发送“路由器保活请求”消息router_keepalive_req消息,探测路由器是否在线。同时,路由器利用“路由器保活响应”消息router_keepalive_res反馈其路由器是否在线,若在线,转s202;否则,将路由器的信息删除。作为本发明技术方案的进一步改进,所述步骤s3中路由器的工作流程具体步骤如下:s301:路由器通过控制平面中的单播路由协议感知当前网络链路状态,由北向控制接口发送至区域控制器;生成分布路径路由策略通过南向控制接口将其下发至数据平面。s302:路由器控制平面在新的分布路径重新收敛完毕时,判断当前网络区域中分布路径与集中路径是否冲突(下一跳是否一致或分布路径与集中路径是否形成环路),若不冲突则直接添加分布路径的表项,若冲突则将集中路径撤销。s303:路由器数据平面根据控制平面下发的转发策略(包括分布路径和集中路径),采用hash桶算法来选择报文的转发路径,通过查找转发表确定报文转发的下一跳。s303.1:首先查找前缀表,以报文的目的地址为索引通过最长匹配方式查找前缀表项,通过前缀表项中首地址索引到策略表。s303.2:根据策略表中的信息,包括类型、序号、版本号、权值、下一跳,选择报文的转发路径及集中路径的维护。作为本发明技术方案的进一步改进:所述步骤s302中,集中路径撤销具体实施步骤如下:s302.1:收到新的链路状态报文lsa,重新计算出新的路由表项r,r的前缀值为prefix,下一跳为x;并初始化查找路由器结果集s为空,初始化路由表项集合s1为空;s302.2:以{前缀值=prefix;类型=分布路径}查找路由表,如果返回结果s不为空,表明该节点存在到达目的节点t的分布路径,记s包含n个元素,遍历集合s中每条路由表项s[i],0≤i≤n-1。如果检查到路由表项s[i]的下一跳等于x,表明分布路径并没改变,转至s303。否则,删除旧的分布路径的路由表项s[i],并添加新的路由表项r。如果s为空,表明该节点不存在到达目的节点t的分布路径,转至s303。s302.3:以{前缀值=prefix;类型=集中路径}再次查找路由表,得到路由表项集合s1,记s1包含m个元素,遍历集合s1中每条路由表项s1[j],0≤j≤m-1。如果路由表项s1[j]的下一跳等于x,表明分布路径与集中路径重合,则删除集中路径的路由表项,并添加分布路径表项。如果路由表项s1[j]的下一跳不等于x,表明存在集中路径与分布路径到达同一目的端,则判断两条路径是否形成路由环路。如果不形成环路,表明集中路径与分布路径不冲突,则直接添加分布路径的表项;否则,集中路径与分布路径构成环路,则删除集中路径表项,并添加分布路径的表项。作为本发明技术方案的进一步改进:所述步骤s303.2中,集中路径的维护步骤如下:1)集中路径出现故障时,将集中路径信息封装在elsa(enhancedlinkstatusadvertisement,增强链路状态通告)消息中,洪范至网络中每个节点。2)网络节点接收到elsa消息,通过分析elsa消息来撤销相应的集中路径,并执行路由更新,从而达到集中路径维护的目的。作为本发明技术方案的进一步改进:所述步骤s204中,区域控制器向路由器发送“路由器保活请求”消息router_keepalive_req消息的周期为60秒。采用本发明可以达到以下技术效果:1.本发明在架构布局上采用集中与分布的模型来部署,采用全局控制器与区域控制器交互、区域控制器与路由器交互的方式,避免了定期收敛全网的网络链路问题,减轻了网络中各节点计算路由选择的负担,提高了网络路由效率。2.本发明第二步的s3步骤中路由器存有区域控制器下发的集中路径及自身根据链路状态计算出的分布路径,网络中的路由器包含多条路径路由,保障了业务性能和数据安全,提高网络资源的利用率。附图说明图1是本发明一种软件定义的跨域多路径路由规划方法架构图;图2是本发明总体流程图;图3是本发明中全局控制器与区域控制器的交互流程图;图4是本发明中区域控制器与路由器的交互流程图;图5是本发明中路由器的工作流程图;图6是本发明中基于hash桶的转发路径选择的流程图。具体实施方式以下将结合说明书附图对本发明做进一步详细说明。本发明所提出的一种软件定义的跨域多路径路由规划方法,如图2所示,其交互步骤为:2.1:部署路由规划架构。如图1所示,路由规划架构包括全局控制器、区域控制器、路由器三类运行实体,每个区域内至少部署一台区域控制器,全网至少部署一台全局控制器。全局控制器与所有的区域控制器相连;区域控制器与其区域内的路由器相连,并与全局控制器相连;路由器与管辖其所在区域的区域控制器相连,并与路由路径中的其他路由器相连。2.2:通过三类运行实体之间的交互来完成软件定义的跨域多路径路由规划,包括以下步骤:2.2.1:全局控制器与区域控制器进行交互。具体实施方法:通过建立面向连接的传输协议来完成注册、同步、策略更新和保活等交互过程,全局控制器将编排好的路由计算策略下发至区域控制器,区域控制器执行该路由计算策略并向全局控制器反馈当前路径状态信息,全局控制器根据区域实时反馈的路径状态信息编排区域内的路由计算策略。2.2.2:区域控制器与路由器进行交互。具体实施方法:区域控制器根据全局控制器下发的路由计算策略计算集中路径,并下发至路由器并部署到网络中。区域控制器与路由器通过建立面向连接的传输协议来完成注册、同步、路由更新以及保活等交互过程。区域控制器在交互过程中从路由器获得实时感知的链路拓扑信息,并根据链路状态计算集中路径。2.2.3:路由器执行路由策略,并完成报文的转发及路径的维护。具体实施方法:路由器通过控制平面运行分布式路由协议来计算分布路径,并利用单播路由协议收集当前链路状态并反馈至区域控制器。在接收到区域控制器下发的集中路径的路由策略时,先判断当前网络环境下分布路径与集中路径是否相交,若相交则采用集中路径撤销算法将集中路径撤销;若不相交,则直接添加分布路径的表项。当网络环境中发生分布式路径状态改变或集中式路径状态变化时对集中路径与分布路径进行维护。数据平面在接收到控制平面下发的转发策略时,采用基于hash桶的转发路径算法来确定报文转发的下一跳。如图3所示,在本发明所提出的一种软件定义的跨域多路径路由规划方法中,全局控制器与区域控制器的交互流程如下:3.1:注册阶段,区域控制器在初始化阶段向全局控制器发送注册消息,通过配置全局控制器的地址和端口号进行注册。利用“控制器注册请求”消息controller_register_req完成区域控制器的注册。同时,全局控制器使用“控制器注册响应”消息controller_register_res反馈区域控制器注册是否成功。若注册成功,进入3.2;否则,区域控制器将重新向全局控制器发送注册请求消息,区域控制器每隔3s重新发送一次注册请求消息,当注册请求消息达到10次时,则返回结束。3.2:同步阶段,区域控制器在初始化阶段或路径状态更新时,主动向全局控制器发送“控制器路径状态通告请求”消息controller_path_satus_notify_req,用于通告区域内路径信息。同时,全局控制器利用“控制器路径状态通告响应”消息controller_path_satus_notify_res反馈已成功接收到路径。区域控制器连续3次向全局控制器通告相同路径状态都失败时,则停止该路径状态的通告,并标记路径状态通告失败,转入3.33.3:策略更新阶段,全局控制器利用“控制器路由策略请求”消息controller_routing_srategy_req向区域控制器下发路由计算策略,确保区域控制器按照路由策略编排进行计算多路径。同时,区域控制器利用“控制器路由策略响应”消息controller_routing_srategy_res反馈执行结果。如果全局控制器连续3次都无法实现策略更新操作,则放弃更新次路由计算策略,并标记路由策略更新失败,转入3.4。3.4:保活阶段,全局控制器周期性(60秒)的向区域控制器发送“控制器保活请求”消息controller_keepalive_req,探测区域控制器是否在线。同时,区域控制器利用“控制器保活响应”消息controller_keepalive_res反馈其在线。若全局控制器在连续3个周期内都没有接收到区域控制器的“控制器保活响应”消息controller_keepalive_res,则表明区域控制器不在线,将该区域控制器的信息删除。如图4所示,在本发明所提出的一种软件定义的跨域多路径路由规划方法中,区域控制器与路由器的交互流程为:4.1:注册阶段,路由器在初始化阶段向区域控制器进行注册,通过配置区域控制器的地址与端口号。利用“路由器注册请求”消息router_register_req完成路由器的注册。同时,区域控制器使用“路由器注册响应”消息router_register_res反馈路由器注册是否成功。若注册成功,进入4.2;否则,路由器将重新向区域控制器发送注册请求消息。路由器每隔3s重新向区域控制器发送一次注册请求消息,当注册请求消息达到10次时,则返回结束。4.2:同步阶段,路由器在初始化阶段或路径状态更新时,主动向区域控制器发送“路由器状态通告请求”消息router_status_notify_req消息,用于通告链路状态信息。同时,区域控制器利用“路由器状态通告响应”消息router_status_notify_res反馈已成功接收到消息。路由器连续3次向区域控制器通告相同链路状态都失败时,则停止该链路状态的通告,并标记链路状态通告失败,转入4.3。4.3:路由更新阶段,区域控制器利用“路由器路由策略添加请求”消息router_routing_add_req向路由器下发路由策略。同时,路由器利用“路由器路由策略添加响应”消息router_routing_add_res反馈执行结果。如果区域控制器连续3次都无法实现策略更新操作,则放弃更新路由策略,并标记路由更新失败,转入4.4。4.4区域控制器周期性(60秒)的向路由器发送“路由器保活请求”消息router_keepalive_req消息,探测路由器是否在线。同时,路由器利用“路由器保活响应”消息router_keepalive_res反馈其路由器不在线,则将路由器的信息删除。如图5所示,一种软件定义的跨域多路径路由规划方法中,路由器作为路由策略的执行体,不仅决定报文的转发行为也对网络的分布路径与集中路径进行维护。路由器的工作流程为:5.1:路由器通过控制平面中的单播路由协议感知当前网络链路状态,由北向控制接口发送至区域控制器;生成分布路径路由策略通过南向控制接口将其下发至数据平面。5.2:路由器控制平面在新的分布路径重新收敛完毕时,判断当前网络区域中分布路径与集中路径是否冲突(下一跳是否一致或分布路径与集中路径是否形成环路),若不冲突则直接添加分布路径的表项,若冲突则将集中路径撤销。集中路径撤销具体实施步骤如下:5.2.1:收到新的链路状态报文lsa,重新计算出新的路由表项r(前缀值为prefix,下一跳为x);5.2.2:以{前缀值=prefix;类型=分布路径}查找路由表,如果返回结果s不为空,表明该节点存在到达目的节点t的分布路径,记s包含n个元素,遍历集合s中每条路由表项s[i],0≤i≤n-1。如果检查到路由表项s[i]的下一跳等于x,表明分布路径并没改变,则直接返回。否则,删除旧的分布路径的路由表项s[i],并添加新的路由表项r。如果s为空,表明该节点不存在到达目的节点t的分布路径,直接返回至5.3。5.2.3:以{前缀值=prefix;类型=集中路径}再次查找路由表,得到路由表项集合s1,记s1包含m个元素,遍历集合s1中每条路由表项s1[j],0≤j≤m-1。如果路由表项s1[j]的下一跳等于x,表明分布路径与集中路径重合,则删除集中路径的路由表项,并添加分布路径表项。如果路由表项s1[j]的下一跳不等于x,表明存在集中路径与分布路径到达同一目的端,则判断两条路径是否形成路由环路。如果不形成路由环路,表明集中路径与分布路径不冲突,则直接添加分布路径的表项;否则,集中路径与分布路径构成环路,则删除集中路径表项,并添加分布路径的表项。5.3:路由器数据平面根据控制平面下发的转发策略,采用hash桶的算法来选择报文的转发路径,通过查找转发表确定报文转发的下一跳。5.3.1:首先查找前缀表,以报文的目的地址为索引通过最长匹配方式查找前缀表项,通过前缀表项中首地址索引到策略表。5.3.2:根据策略表中的信息(如类型、序号、版本号、权值、下一跳)来选择报文的转发路径及集中路径的维护。其中集中路径的维护步骤如下:1)集中路径出现故障时,将集中路径信息封装在elsa(enhancedlinkstatusadvertisement,增强链路状态通告)消息中,洪范至网络中每个节点。2)网络节点接收到elsa消息,通过分析elsa消息来撤销相应的集中路径,并执行路由更新,从而达到集中路径维护的目的。如图6所示,在本发明所提出的一种软件定义的跨域多路径路由规划方法中,基于hash桶的转发路径选择过程如下:1)令hash桶的规模为n(设定为100),那么到达同一目的网络的所有路径的权值等于n,即单个策略表中路径的权值之和为n,并且每条路径具备权值区间,如路径1的权值区间为[0,k],路径2的权值区间为[k+1,i];2)数据平面接收到报文时提取报文的关键信息,采用五元组(源网络地址、目的网络地址、源端口号、目的端口号、协议类型);3)以报文关键信息为输入调用hash函数计算出key值;同一条数据流计算的key必定相等;4)将key值对n求余数r,r的取值区间为[0,n-1];5)检索余数r值所属于的权值区间,则选择对应的传输路径。以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1