基于sdn网络中路由环路的检测方法及系统的制作方法

文档序号:9931189阅读:624来源:国知局
基于sdn网络中路由环路的检测方法及系统的制作方法
【技术领域】
[0001]本发明涉及网络通讯技术领域,特别是指一种基于SDN网络中路由环路的检测方 法及系统。
【背景技术】
[0002] SDN为软件定义网络(SDN-Software-Defined Networking),是最近被提出来的一 种创新性的网络技术和网络框架。其核心思想是采用集中式控制和分布式控制相结合,将 控制平面和转发平面分离,且控制平面和转发平面之间通过公开的协议(例如Openflow等) 进行通信,从而实现复杂的业务逻辑而不影响特定厂商实现其转发平面,极大的促进了网 络的创新,在当今飞速发展的互联网大背景下,SDN网络很好的适应了需求多样性和业务多 样性的复杂局面。
[0003] SDN网络通过一个称为控制器(Controller)的软件实现其控制平面的功能。由于 网络运行的动态性、环境的复杂性以及各种随时发生的异步事件,正常运行的网络会经常 性发生各种故障,包括路由环路、路由黑洞和不可达路由等异常路由情况。路由的异常会导 致拥塞和丢包,如果不能很快解决这类故障,就可能会出现严重的通信中断,进而造成巨大 的经济损失。同时,随着网络规模的扩大和业务的越来越复杂,通过人工定位来解决这类故 障变得越来越困难。
[0004] 现有SDN网络中路由环路的判断方法,由于节点功能有限,同时节点一般不运行分 布式路由协议,因此对环路的判断在节点上很难完成。虽然路由控制功能转移到控制器之 后,控制器获得全网的运行状态和每个节点的路由信息。通过对每个网络节点的每条路由 表进行分析和判断,可以发现网络中的路由环路现象。然而,由于业务的复杂性和多样性, 通常单个节点上的路由数目/路由策略就已经非常多,全网节点的路由数目/路由策略加起 来进行判断将会花费巨大的计算时间和存储空间,对控制器而言将是一个非常巨大的负 担。也即,现有SDN网络中进行网络环路的判断需要密集的计算和巨大的数据存储。

【发明内容】

[0005] 有鉴于此,本发明的目的在于提出一种基于SDN网络中路由环路的检测方法及系 统,不仅能够快速、准确实现路由环路的检测,而且所需要的存储空间大大减少。
[0006] 基于上述目的本发明提供的基于SDN网络中路由环路的检测方法,包括:
[0007] 实时获取网络中每个节点的路由表信息和路由事件信息;
[0008] 根据获取的路由表信息和路由事件信息,构造网络的实时拓扑结构;
[0009] 根据实时拓扑结构,采用层次压缩的方法构造最长前缀匹配的多路由表单前缀 树,并存储每个节点的路由表中的转发子网网段;
[0010] 在需要判断环路的子网网段中,对所述前缀树中的每个子网节点生成路由下一跳 表,遍历前缀树的每个子网节点生成节点的转发图;
[0011]根据节点的转发图,判断是否存在路由环路。
[0012] 优选的,所述实时获取网络中每个节点的路由表信息和路由事件信息的步骤包 括:
[0013] 根据路由器运行的不同协议,采用与协议相应的探测器来获取路由表信息和路由 事件信息。
[0014]优选的,所述层次压缩的方法具体为固定分级层次压缩的方法,实现的步骤为:
[0015]将前缀树构造为5个依次相互连接的不同的层次,且层次由上到下的级别依次采 用8-8-8-4-4的分布方式。
[0016]优选的,所述生成节点的转发图的步骤包括:
[0017] 首先,对网络进行建模,得到网络模型G(V,E,W),其中,V表示网络中节点的集合,E 表示两个节点之间的边集合,也即节点对应设备之间的连接链路,W表示每条链路的权重;
[0018] 路由器上的转发行为定义如下:
[0019] f(p,ru) = v,u,vev,其中,u、v为不同的节点,p为欲转发的报文,ru表示节点u上的 路由表;
[0020]得到报文p在整个网络中转发的定义:
[0021 ] F(p,Ri;u) = {〈i,j> | f(p,ru) = j ; i,j,u£V},其中,R表示网络上每个路由器的路由 表集合;
[0022] 然后,在前缀树中,对报文p的比特进行分解,并对前缀树进行查找,直到达到p的 前缀为止,记录查找过程中每个被访问的节点包含的下一跳;
[0023] 通过这些下一跳,也即报文p的转发结果,得到报文p在网络上转发结果为有序对 的集合T(p,R),且
[0024] T(p,R)=F(p,Ri;u)
[0025]通过有序对的集合T(p,R)形成的有向图,得到节点的转发图。
[0026] 进一步,对于多路径的路由,所述路由器上的转发行为为:
[0027] f(p,ru) = {vi | Vi为报文p在节点u上的下一跳节点},u,Vi£V。
[0028] 优选的,所述判断是否存在路由环路的步骤包括:
[0029] 将所有节点标记为alive,并且将栈空间初始化为空;
[0030] 判断当前节点是否同时具有入度和出度,若是,则标记为visited,并使当前节点 入栈,若否,则标记为dead;
[0031] 判断栈空间是否为空,若是,则表示不存在路由环路,若否,进一步判断栈顶节点 是否有后续节点;
[0032] 若栈顶节点没有后续节点,则栈顶节点标记为dead,并使栈顶节点出栈;
[0033]返回继续判断栈空间是否为空,直到所有节点都被标记为dead,则表示不存在路 由环路。
[0034]进一步,所述判断栈顶节点是否有后续节点的步骤包括:
[0035]若栈顶节点有后续节点,则获取栈顶节点的后续节点;
[0036]判断后续节点是否标记为alive,若是,则返回所述判断当前节点是否同时具有入 度和出度的步骤,对该后续节点继续判断,若否,则进一步判断后续节点是否标记为 visited;
[0037]若后续节点标记为visited,则表示存在路由环路;
[0038]若后续节点没有标记为visited,则将栈顶节点标记为dead,并使栈顶节点出栈。
[0039] 本发明还提供了一种基于SDN网络中路由环路的检测系统,包括:
[0040] 路由信息获取模块,用于实时获取网络中每个节点的路由表信息和路由事件信 息;
[0041] 拓扑结构生成模块,用于根据所述路由信息获取模块中获取的路由表信息和路由 事件信息,构造网络的实时拓扑结构;
[0042] 前缀树构造模块,用于根据所述拓扑结构生成模块中的实时拓扑结构,采用层次 压缩的方法构造最长前缀匹配的多路由表单前缀树,并存储每个节点的路由表中的转发子 网网段;
[0043] 路由计算模块,用于在需要判断环路的子网网段中,对所述前缀树中的每个子网 节点生成路由下一跳表,遍历前缀树的每个子网节点生成节点的转发图;
[0044]路由检测模块,用于根据所述路由计算模块中的节点的转发图,判断是否存在路 由环路。
[0045] 从上面所述可以看出,本发明提供的基于SDN网络中路由环路的检测方法及系统 通过构造网络的实时拓扑结构图以及构造最长前缀匹配的多路由表单前缀树,最终获得网 络中所有节点的转发图,根据所述节点的转发图能够快速准确地判断是否存在路由环路。 这样,不仅使得判断过程与路由协议和网络流量无关,提高了路由环路检测的效率和准确 性;同时,构造的多路由表单前缀树能够大大减少存储空间和计算时间。
【附图说明】
[0046] 图1为现有临时性路由环路中正常状态的流程图;
[0047]图2为现有临时性路由环路中R1检测到故障时的流程图;
[0048] 图3为现有临时性路由环路中R2未检测到故障时的流程图;
[0049] 图4为现有临时性路由环路中故障处理时的流程图;
[0050] 图5为现有持久性路由环路的流程图;
[0051] 图6为本发明提供的基于SDN网络中路由环路的检测方法的实施例的流程图;
[0052]图7为本发明提供的基于SDN网络中路由环路的检测方法中所采用的固定分级层 次压缩方法的结构示意图;
[0053]图8为本发明提供的基于SDN网络中路由环路的检测方法的路由环路的结构示意 图;
[0054]图9为本发明提供的基于SDN网络中路由环路的检测方法的转发图的结构示意图; [0055]图10为本发明提供的基于SDN网络中路由环路的检测方法的路由环路判断算法的 流程图;
[0056]图11为本发明提供的基于SDN网络中路由环路的检测方法中的路由环路判断算法 的一个示例的结构示意图;
[0057]图12为本发明提供的基于SDN网络中路由环路的检测系统的系统结构示意图; [0058]图13为本发明提供的基于SDN网络中路由环路的检测系统的系统架构示意图。
【具体实施方式】
[0059] 为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照 附图,对本发明进一步详细说明。
[0060] 首先,针对路由环路的类型和路由环路产生的根源进行简单说明。
[0061] 路由协议是
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1