CN105553728A - 一种基于软件定义网络技术的网络容灾恢复系统及方法 - Google Patents

一种基于软件定义网络技术的网络容灾恢复系统及方法 Download PDF

Info

Publication number
CN105553728A
CN105553728A CN201510961403.7A CN201510961403A CN105553728A CN 105553728 A CN105553728 A CN 105553728A CN 201510961403 A CN201510961403 A CN 201510961403A CN 105553728 A CN105553728 A CN 105553728A
Authority
CN
China
Prior art keywords
backup
network
path
topology
recovery
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510961403.7A
Other languages
English (en)
Other versions
CN105553728B (zh
Inventor
王晓亮
谢安
陆桑璐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University
Original Assignee
Nanjing University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing University filed Critical Nanjing University
Priority to CN201510961403.7A priority Critical patent/CN105553728B/zh
Publication of CN105553728A publication Critical patent/CN105553728A/zh
Application granted granted Critical
Publication of CN105553728B publication Critical patent/CN105553728B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于软件定义网络技术的网络容灾恢复系统及方法,其基于软件定义网络技术,包括位于软件定义网络的数据平面的备份拓扑生成模块和位于软件定义网络的控制平面的拼接模块;所述备份拓扑生成模块用于在灾前生成备份拓扑,并根据灾害地理特性计算出备份路径并安装到软件定义网络的数据平面中;且在数据平面对部分因灾害发生而导致的重连请求执行本地快速恢复;所述拼接模块用于在控制平面处理那些在数据平面不能处理的灾害故障重连请求。相较于现有技术,本发明实现了快速恢复的同时降低了控制器的负载,减少了需要安装的流表个数,具有较高的应用价值和广阔的应用前景。

Description

一种基于软件定义网络技术的网络容灾恢复系统及方法
技术领域
本发明涉及容灾恢复,尤其涉及一种网络容灾恢复系统及方法。
背景技术
自然灾害(如地震,洪水)和人为灾害(如供电失效,恐怖袭击),会造成的大量的网络设备同时失效,导致大量的用户断连,且灾后修复难度大、修复时间长。随着互联网技术的迅速发展以及大数据时代的到来,这种事件造成的长时间网络断连会造成大量用户失联以及数据丢失,造成不可估量的经济损失,因此对于大规模网络的可靠性要求也越来越高。然而,随着网络大规模部署,使得网络很容易被自然灾害和人为灾害破坏,产生大小不同,破坏程度不同的网络失效问题,造成很多用户长时间被影响,带来巨大的经济损失。
传统网络恢复技术中没有有效的手段来应对这种由灾害导致的区域性网络故障。这种区域性故障具有突发性以及发生位置和大小的不确定性,使得传统的网络恢复技术,包括网络保护和网络修复技术,都不能很好的工作。网络保护技术,依赖故障发生前网络中已分配的备份资源,只针对特定的有限的故障场景有效,无法很好的处理所有的故障场景;网络修复技术,虽然在故障发生的时候动态的计算路径,即针对所有的故障场景都有效,但是,其收敛的时间过长,且收敛过程中有可能出现严重的环路和黑洞。传统网络恢复技术或者连通性恢复差,或者恢复时间漫长,就目前已有的恢复技术来看,如何快速地在灾后高效地恢复网络,尚没有可行的解决办法。
软件定义网络技术将传统网络的数据平面和控制平面分离出来,使得灵活的网络配置和管理成为可能。软件定义网络有一个集中式的控制器,控制器具有全网的视图。因此,这种架构带来的灵活性对于不确定的区域故障十分有效。但是,因为区域故障造成的重连请求非常多,将所有区域故障重连请求都交由控制平面处理会带来额外的问题,包括:控制器的伸缩性问题,包的一致性处理问题,和恢复时延问题。简单的引入软件定义网络仍不能在这种场景下很好的工作。
所以构建一个快速高可靠性的网络容灾恢复系统在高传输速度、高传输量的大数据时代具有极高的应用价值和广阔的应用前景。
发明内容
发明目的:为了解决现有技术中存在的问题,本发明提供了一种基于软件定义网络技术的网络容灾恢复系统,同时提供了一种基于软件定义网络技术的网络容灾恢复方法。
技术方案:本发明提供的一种基于软件定义网络技术的网络容灾恢复系统,基于软件定义网络技术,包括位于软件定义网络的数据平面的备份拓扑生成模块和位于软件定义网络的控制平面的拼接模块;所述备份拓扑生成模块用于在灾前生成备份拓扑,并根据灾害地理特性计算出备份路径并安装到软件定义网络的数据平面中,且在数据平面对部分因灾害发生而导致的重连请求执行本地快速恢复;所述拼接模块用于在控制平面处理那些在数据平面不能处理的灾害故障重连请求。
优选的,该基于软件定义网络技术的网络容灾恢复系统,包括:
备份拓扑生成单元,用于以原始网络拓扑为输入,在备份拓扑生成模块中生成并保存多张用于对节点的失效快速恢复的备份网络拓扑图;
备份路径生成单元,用于根据备份拓扑生成单元生成的多张备份网络拓扑图,结合输入的灾害地理特性,使用路径的脆弱性区域在每张备份拓扑上生成备份路径并保存;
备份路径安装单元,用于在控制平面上,根据备份路径生成单元中生成并保存的备份路径生成相应的流表项,安装新的路由策略到数据平面;
数据平面数据包转发及检测单元,用于数据平面中每个路由节点在转发数据包时,检测下一跳端口是否有效,如果有效,则直接转发数据包,如果无效,进入数据平面本地快速恢复单元执行本地快速恢复;
数据平面本地快速恢复单元,用于执行数据平面的本地快速恢复,根据备份路由选择一个转发端口,如果转发端口有效,直接转发,如果无效则将数据包发往控制平面;
控制平面拼接处理及判定单元,用于在控制平面运行拼接模块,根据拼接模块的输出生成新流表项,安装到控制平面中;并判定是否因网络物理上不连通造成路由失效;
物理网络不连通通知单元,用于当判定因网络物理上不连通造成路由失效时,通知数据包的源节点和目的节点,物理网络已不再连通。
本发明同时提供一种基于软件定义网络技术的网络容灾恢复方法,包括如下步骤:
(A)备份拓扑生成模块中备份拓扑生成:以原始网络拓扑为输入,生成并保存多张用于对节点的失效快速恢复的备份网络拓扑图;
(B)根据备份拓扑生成模块生成安装到数据平面的备份路径:在步骤(A)中生成并保存的多张备份拓扑图上,结合输入的灾害地理特性,使用路径的脆弱性区域在每张备份拓扑上生成备份路径并保存;
(C)在数据平面中安装备份路径:由控制平面根据步骤(B)中生成并保存的备份路径生成相应的流表项,并安装路由策略到数据平面;
(D)数据平面数据包转发及检测:数据平面每个路由节点在转发数据包时,每次检测下一跳端口是否有效,如果有效,则直接转发数据包,如果无效,进入步骤(E);
(E)数据平面本地快速恢复:执行数据平面的本地快速恢复,根据备份路由选择一个转发端口,如果转发端口有效,直接转发,如果无效则将数据包发往控制平面,进入步骤(F);
(F)控制平面拼接处理及判定:控制平面运行拼接模块,根据拼接模块的输出生成新流表项,安装到控制平面中;并判定因网络物理上不连通造成路由失效时,进入步骤(G);
(G)物理网络不连通通知:通知数据包的源节点和目的节点,物理网络已不再连通。
优选的,所述步骤(A)中,以原始网络拓扑G为输入,生成并保存k个用于对节点的失效快速恢复的备份网络拓扑{G1…Gk};
所述步骤(B)中包括如下步骤:
1):从应用本系统的整个区间[ra,rb]中均匀地取出k个点ri,其中 ra、rb分别是输入的灾害地理特性中灾害预期发生的最小、最大半径,对于特定的源目的节点对s和t,在原始网络拓扑G中找到从s到t的主路径及其对应的大小为ri的脆弱性区域其中1≤i≤k;
2):遍历每一个备份拓扑Gi,如备份拓扑Gi中的链路的大小为ri的脆弱性区域的大小ri为的脆弱性区域相交,则通过配置Gi中的这条链路的权重大于原始网络拓扑G中所有边的权重之和,使其不会被基于权重的路径寻找算法使用从而被配置为被隔离的链路;然后在备份拓扑Gi中通过最短路径算法,找到从s到t的备份路径,使得Gi成为与失效半径为ri的网络故障对应的备份拓扑,返回在k个备份拓扑{G1…Gk}上的k个备份路径其中链路的脆弱性区域为所有半径是ri且能够损毁的故障的圆心的集合,即落在此区域中的故障为ri的区域故障均会破坏链路路径的脆弱性区域是该路径所包括的所有链路的脆弱性区域的并集。
作为优选的,所述步骤(F)中所述拼接模块包括:构建一个新的临时网络拓扑图G′,其节点与G相同,依次将{G1…Gk}计算出来的由s到t的备份路径上未被摧毁的边加入到G′中,如果在G′中目的节点可达,则拼接模块在G′中计算一条新的路径p′,包含在拼接指令动作中作为拼接模块的输出。
优选的,所述步骤(F)中所述拼接模块包括:
StepF1:构建一个临时的网络拓扑G′,G′中的节点与G中相同,G′中的初始边集为空;
StepF2:依次取出备份拓扑{G1…Gk}中的备份路径中的未被摧毁的边,加入到G′中去;
StepF3:根据原始拓扑图G中所有节点对间的路由路径,和在数据平面本地快速恢复的重路由路径,置图G′中存活的链路euv的权重为(P(u)+P(v)+R′(u)+R′(v))/2;其中每个节点u的第一权值P(u)为原始图中通过该节点路径条数,每个节点u的第二权值R′(u)为数据平面的本地重路由通过该节点的路径条数;
StepF4:根据每条链路euv的权重,在图G′中使用最短路算法找到从s到t的路径,将其包含在拼接指令动作中输出。
作为优选的,上述数据平面通过利用在OpenFlow多表流水线的多张路由表中安装由备份拓扑生成模块生成的备份路由,以及在OpenFlow快速恢复组表中安装快速恢复桶动作,来实现数据平面的本地快速恢复,使得交换机在本地检查下一跳的存活性后,根据下一跳的存活性选择不同的端口发送包,当主路径的备份端口和备份路径的下一跳端口都断连时,交换机会将包送到控制器,由控制平面的拼接模块处理。
有益效果:相较于简单的完全将故障请求送给控制器来处理,本发明提出的基于软件定义网络技术的网络容灾恢复系统及方法,将大部分的请求在数据平面处理掉,从而避免了从数据平面到控制平面的往返传输时延,实现了快速恢复的同时降低了控制器的负载。对于需要由控制平面处理的请求,使用拼接算法减少了需要安装的流表个数,避免了一致性问题;同时基于OpenFlow,给出了数据平面本地快速恢复的实现原型。整体而言,具有较高的应用价值和广阔的应用前景。
附图说明
图1为本发明基于软件定义网络技术的系统模块图;
图2为故障半径分布函数,其中图2(a)为故障半径连续分布函数,图2(b)为故障半径离散分布函数;
图3为链路和路径的脆弱性区域;图3(a)为链路euv的脆弱性区域,图3(b)为路径xst的脆弱性区域;
图4为本发明中基于OpenFlow的多表流水线架构示意图;
图5为在德国主干网上的恢复率的仿真结果;
图6为在随机生成的拓扑rand50上的恢复率的仿真结果;
图7为在随机生成的拓扑rand100上的恢复率的仿真结果;
图8为恢复时间的仿真结果;
图9为控制器负载的仿真结果。
具体实施方式
下面结合实施例与附图对本发明作进一步的说明,实施方式提及的内容并非对本发明的限定。
本发明所述的基于软件定义网络技术的网络容灾恢复系统及方法,以真实的网络拓扑信息作为输入,如图1给出的系统模块图所示:该系统基于软件定义网络技术,包括位于软件定义网络的数据平面的备份拓扑生成模块和位于软件定义网络的控制平面的拼接模块;所述备份拓扑生成模块用于在灾前生成备份拓扑,并根据灾害地理特性计算出备份路径并安装到软件定义网络的数据平面中,且在数据平面对部分因灾害发生而导致的重连请求执行本地快速恢复;所述拼接模块用于在控制平面处理那些在数据平面不能处理的灾害故障重连请求。上述在数据平面对部分因灾害发生而导致的重连请求执行本地快速恢复,即为:在数据平面对因预期灾害发生而导致的重连请求执行本地快速恢复。如图2所示,灾害故障半径一般服从Pareto(pow-law)分布,即r的概率密度函数为α,β为常数,r>β,其中图2(a)为故障半径连续分布函数,图2(b)为故障半径离散分布函数。本发明系统输入包括网络的原始拓扑图G,及灾害的地理特性,输入的灾害地理特性中包括灾害的发生的概率密度函数f(r)以及灾害预期发生的最小和最大半径ra、rb,以及待输入的备份拓扑的个数k。
相对于现有技术,本发明需要解决的技术问题包括(1)设计反映物理世界的区域故障模型;(2)在区域故障模型下提出并定义了链路的脆弱性区域;(3)在区域故障模型下提出并定义了路径的脆弱性区域;(4)在数据平面生成备份拓扑,并在备份拓扑上根据地理特性生成备份路由;(5)在控制平面上高效的调度已安装的备份资源来恢复断连的节点对;(6)基于OpenFlow的多表流水线和快速恢复组表(grouptable)技术设计了数据平面的实现框架。
本发明中包含以下部分:
a)区域故障模型
在灾害性的事件发生情况下,物理上距离比较近的多个网络组件有可能同时被摧毁。本发明总结这种类型的大规模网络故障来为“地理位置相关的多重网络故障”建模:
(1)是一个在网络中随机放置的一个圆形区域,同故障区域相交的节点或者链路将会被从网络中移除,地理位置相关的多重网络故障的大小由它的故障半径r决定;
(2)故障半径r服从分布函数f(r),ra≤r≤rb,其中ra、rb分别是输入的灾害地理特性中灾害预期发生的最小、最大半径。
b)链路的脆弱性区域
给定一个具有半径r的区域故障,一条链路euv如果同故障区域相交,那么这条链路会被故障损毁。即如果一个故障圆心离链路euv的距离小于r的话,那么这条链路就会被破坏。本发明称所有这些能够损毁euv且半径是r的故障圆心的集合为链路euv的脆弱性区域,表示为
链路的脆弱性区域是网络的一个子区域:在这个区域中,任何落在区域之中的故障半径为r的区域故障都会破坏这条链路。如图3(a)所示,用虚线包围的类似操场的区域表示了链路euv的脆弱性区域,这个区域中的所有的点离链路euv的最短距离都小于r。
c)路径的脆弱性区域
本发明定义一条路径xst的脆弱性区域,表示为如图3(b)所示,这个区域是所有组成路径链路的脆弱性区域的并集,每个圆形区域的圆心离路径的距离都不大于r。
路径的脆弱性区域:是一个网络区域的子区域,在这个区域中,任何落在之中的故障半径为r的区域故障都会破坏这条路径的连通性。路径xst的脆弱性区域是它所有链路的脆弱性区域的并集,表示为
d)备份拓扑生成模块
(1)备份拓扑的生成
基于RFC4915andRFC5120,在数据平面生成多个备份拓扑,基本思想是,把原始网络拓扑G=(V,E)为输入,其中V为图G的节点的集合,E为图G的边的集合,并生成k个备份拓扑{G1…Gk},并且在在网络中出现故障的时候选择一个与之对应的备份拓扑。在每个备份拓扑中,一些链路被定义为被隔离的链路,这些链路的失效不会影响其他节点之间的连通性。这是通过配置这些链路的权重,使其大于原始网络拓扑G中所有边的权重之和∑e∈Ew(e),其中,E为图G的边的集合,w(e)为边e的权重,这样这些边就不会被基于权重的寻路算法如Dijkstra算法使用。在一个节点检测到一个邻居节点或者链路失效的时候,这个节点会选择一个备份拓扑使用,在这个备份拓扑中失效的链路或节点恰好是被隔离的(如果一个节点的所有相邻的边都被隔离,则这个节点称为被隔离的节点)。然后,它会在包上打上选择的备份拓扑的序号标签,来提醒后续的节点使用这个备份拓扑所生成的路由信息来转发这个包。包上的标签可以通过包头部的某些域来实现,例如MPLS域。
(2)备份路由生成
在备份拓扑{G1…Gk}生成之后,对于特定的源目的节点对s和t,如果在原始图G和{G1…Gk}上使用同样的权重来寻找s和t之间的备份路径的话,那么主路径和在{G1…Gk}上的备份路径很有可能会重合。这应该是要被避免的情况,因为,如果路太接近,这些路就会被同一个故障所损毁。为了提高主路径和在备份拓扑中的备份路径的可靠性,本发明使用了路径的脆弱性区域来在备份拓扑中生成备份路径。本发明的做法是从区间[ra,rb]均匀地取出k个点,每个备份拓扑中的s到t的备份路与原始拓扑中的路都是对故障半径为的故障是鲁棒的,意味着原始拓扑中的路和备份路不会同时被大小为ri的故障损毁。这是通过先找到主路径的大小为ri脆弱性区域然后在备份拓扑Gi中,如果Gi中的链路的脆弱性区域相交,则通过配置Gi中的这条链路的权重值即配置的权重大于原始网络拓扑G中所有边的权重之和,使其不会被基于权重的路径寻找算法使用,从而限制在备份拓扑中选择那些与主路径在故障半径为ri时有可能同时失效的链路从而使得链路被配置为被隔离的链路。
e)拼接模块
拼接模块指的是控制器上被动的恢复过程,它的主要功能是重建那些不能被本地预先安装的冗余处理的重连请求。不像传统的方法用控制器来给一条路径上所有的交换机安装流表项来构建新路,本发明通过使用提前安装的冗余来重构那些失效连接。通过这么做,减少了控制器给交换机安装新的流表项的压力,并且,因为需要安装的新的流表项的个数减少了,包的一致性处理问题更有可能被回避掉。本发明首先构建一个多重图G′,这个多重图是这么构建的,首先将{G1…Gk}生成树中那些被破坏的链路剔除掉,然后构建一个新的临时网络拓扑图G′,这个图的节点与G相同,依次将{G1…Gk}计算出来的由s到t的备份路径上未被损毁的边加入到G′中。如果在G′目的节点可达,那拼接模块就在G′计算一条新的路p′,并返回需要的拼接动作。
f)基于OpenFlow的数据平面实现原型
所述数据平面通过利用在OpenFlow多表流水线的多张路由表中安装由备份拓扑生成模块的生成的备份路由,以及在OpenFlow快速恢复组表中安装快速恢复桶动作,来实现数据平面的本地快速恢复,使得交换机在本地检查下一跳的存活性后,根据下一跳的存活性选择不同的端口发送包,当主路径的备份端口和备份路径的下一跳端口都断连时,交换机会将包送到控制器,由控制平面的拼接模块处理。
基于OpenFlow多表流水实现原理:
数据平面使用了OpenFlow的多表流水线和快速恢复组表(fastfailovergrouptable)技术。组表中每个桶中的动作的有效性都与某个特定的端口相关联。图4为本发明中基于OpenFlow的多表流水线架构示意图。表0为对应原始网络拓扑G而生成的路由表,表i(1≤i≤k)为对应备份拓扑{G1…Gk}而生成的路由表,转发端口有效性的检测以及本地快速恢复在组表中完成,组表中用包上的标记来区分正常的包(没有被打上标记)还是遇到故障恢复的包(带有标记)。在表0中,流表项被区分为两种类型,即,用于匹配MPLS标签的流表项(假设使用包上的MPLS域给包打标记)和匹配目的地址的流表项,匹配MPLS的流表项比匹配目的地址的流表项拥有更高的优先级。表0中的流表项只负责将包发往一个备份流表i(1≤i≤k)还是一个组表。在备份流表i中,表示基于备份拓扑Gi计算出的需要转发的端口(d指包的目的地址),并且需要转发到组表的第3)部分。组表中的流表项可以分为三个部分:1)第0条流表项,用于将包发往控制器;2)组表中处于中间部分的流表项,每个流表项中含有三个动作桶:第一个动作桶用于监视端口并把包从端口中发出去,这里,端口表示根据图G计算出来的端口;第二个动作桶用来监视端口并把包从端口中发出去,这里表示这样一个备份拓扑,在这个拓扑里,主端口失效了并且下一跳在中恰好是被隔离的,端口表示根据备份拓扑计算出来的端口;这两个桶的作用主要是用来在遇到单个链路或者节点失效的时候执行本地的快速恢复;如果同时失效的话,包就会被通过第三个桶发往控制器;3)在底下部分的流表项,主要的作用是用来监视备份拓扑计算出来的端口的有效性,用来处理被打上标记的包再次遇到故障的情形。值得注意的是,在桶中的动作的次序是非常重要的,因为根据OpenFlow的文档,桶是根据预定义的次序被选择的,第一个有效的桶会被执行。
本实施例给出的基于软件定义网络技术的网络容灾恢复系统,包括:
1)备份拓扑生成单元,用于以原始网络拓扑为输入,在备份拓扑生成模块中生成并保存多张用于对节点的失效快速恢复的备份网络拓扑图;
2)备份路径生成单元,用于根据备份拓扑生成单元生成的多张备份网络拓扑图,结合输入的灾害地理特性,使用路径的脆弱性区域在每张备份拓扑上生成备份路径并保存;
3)备份路径安装单元,用于在控制平面上根据备份路径生成单元中生成并保存的备份路径生成相应的流表项,安装新的路由策略到数据平面;
4)数据平面数据包转发及检测单元,用于数据平面每个路由节点在转发数据包时,检测下一跳端口是否有效,如果有效,则直接转发数据包,如果无效,进入数据平面本地快速恢复单元执行本地快速恢复;
5)数据平面本地快速恢复单元,用于执行数据平面的本地快速恢复,根据备份路由选择一个转发端口,如果转发端口有效,直接转发,如果无效则将数据包发往控制平面;
6)控制平面拼接处理及判定单元,用于在控制平面运行拼接模块,根据拼接模块的输出生成新流表项,安装到控制平面中;并判定是否因网络物理上不连通造成路由失效;
7)物理网络不连通通知单元,用于当判定因网络物理上不连通造成路由失效时,通知数据包的源节点和目的节点,物理网络已不再连通。
用于上述基于软件定义网络技术的网络容灾恢复系统中,本发明对应地给出基于软件定义网络技术的网络容灾恢复方法,包括如下步骤:
(A)备份拓扑生成模块中备份拓扑生成:以原始网络拓扑为输入,生成并保存多张用于对节点的失效快速恢复的备份网络拓扑图;
(B)根据备份拓扑生成模块生成安装到数据平面的备份路径:在步骤(A)中生成并保存的多张备份拓扑图上,结合输入的灾害地理特性,使用路径的脆弱性区域在每张备份拓扑上生成备份路径并保存;
(C)在数据平面中安装备份路径:由控制平面根据步骤(B)中生成并保存的备份路径生成相应的流表项,并安装路由策略到数据平面;
(D)数据平面数据包转发及检测:数据平面每个路由节点在转发数据包时,每次检测下一跳端口是否有效,如果有效,则直接转发数据包,如果无效,进入步骤(E);
(E)数据平面本地快速恢复:执行数据平面的本地快速恢复,根据备份路由选择一个转发端口,如果转发端口有效,直接转发,如果无效则将数据包发往控制平面,进入步骤(F);
(F)控制平面拼接处理及判定:控制平面运行拼接模块,根据拼接模块的输出生成新流表项,安装到控制平面中;并判定因网络物理上不连通造成路由失效时,进入步骤(G);
(G)物理网络不连通通知:通知数据包的源节点和目的节点,物理网络已不再连通。
其中,上述步骤(A)中,以原始网络拓扑G=(V,E)为输入,其中V为图G的节点的集合,E为图G的边的集合,生成并保存k个用于对节点的失效快速恢复的备份网络拓扑{G1…Gk};
上述步骤(B)中包括如下步骤:
B1):从应用本系统的整个区间[ra,rb]中均匀地取出k个点ri(1≤i≤k),其中 ra、rb分别是输入的灾害地理特性中灾害预期发生的最小、最大半径,对于特定的源目的节点对s和t,在原始网络拓扑G中找到从s到t的主路径及其对应的大小为ri的脆弱性区域
B2):遍历每一个备份拓扑Gi(1≤i≤k),如备份拓扑Gi中的链路的大小为ri的脆弱性区域的大小ri为的脆弱性区域相交,则通过配置Gi中的这条链路的权重大于原始网络拓扑G中所有边的权重之和,使链路不会被基于权重的路径寻找算法使用从而被配置为被隔离的链路,即配置Gi中的链路的权重值 E为图G边的集合,w(e)为边e的权重;然后在备份拓扑Gi中通过最短路径算法,找到从s到t的备份路径,使得Gi成为与失效半径为ri的网络故障对应的备份拓扑,返回在k个备份拓扑{G1…Gk}上的k个备份路径其中链路的脆弱性区域为所有半径是ri且能够损毁的故障的圆心的集合,即落在此区域中的故障为ri的区域故障均会破坏链路路径的脆弱性区域是它所有链路的脆弱性区域的并集。
上述步骤(F)中所述拼接模块包括:构建一个新的临时网络拓扑图G′,其节点与G相同,依次将{G1…Gk}计算出来的由s到t的备份路径上未被损毁(即摧毁)的边加入到G′中,如果在G′中目的节点可达,则拼接模块在G′中计算一条新的路径p′,包含在拼接指令动作中作为拼接模块的输出。
具体的,所述步骤(F)中所述拼接模块包括:
StepF1:构建一个临时的网络拓扑G′,G′中的节点与G中相同,G′中的初始边集为空;
StepF2:依次取出备份拓扑{G1…Gk}中的备份路径中的未被损毁的边,加入到G′中去;
StepF3:根据原始拓扑图G中所有节点对间的路由路径,和在数据平面本地快速恢复的重路由路径,置图G′中存活的链路euv的权重为(P(u)+P(v)+R′(u)+R′(v))/2;其中每个节点u的第一权值P(u)为原始图中通过该节点路径条数,每个节点u的第二权值R′(u)为数据平面的本地重路由通过该节点的路径条数;
StepF4:根据每条链路euv的权重,在图G′中使用最短路算法找到从s到t的路径,将其包含在拼接指令动作中输出。
本发明所述衡量恢复有效性的标准量有三个:
(1)恢复率:已经恢复的路径条数和故障后可以被恢复的路径的条数比值,用来衡量恢复的有效性。一条路径是可恢复的当且仅当源节点和目的节点没有被破坏并且在物理拓扑上没有被分隔开。
(2)恢复时间:指当故障发生后,到节点对间的连接重新建立的时间间隔。
(3)控制器负载:需要控制器处理的重连请求占总的请求的比值。
仿真实验:
实验条件:采用了三张网络拓扑图,rand50,rand100和真实的德国主干网的拓扑图来进行实验,由lemon图形库(https://lemon.cs.elte.hu/)生成的随机拓扑rand50和rand100两张随机拓扑中,rand50图中有50个节点和120条边,rand100图中有100个节点和211条边。从Rocketfuel网络拓扑库中(http://research.cs.washington.edu/networking/rocketfuel/)获得的真实的德国的主干网拓扑由50个节点和88条边组成。将这三张拓扑图部署在1200x1200的矩形区域中,然后随机的在这个区域中生成区域故障,区域故障的圆心随机,故障半径分别为50,75,100,125,150。
对比实验的三种网络容灾恢复方法,1)MRC,为使用的拓扑生成算法,没有进一步考虑调整备份拓扑上边的权重,也没有考虑如何调度备份拓扑;2)SDN-MRC为应用软件定义网络(SDN)技术来集中调度多个MRC生成的备份拓扑,它没有进一步考虑调整备份拓扑上边的权重;3)PathSplicing为随机的调整k个备份拓扑中链路的权重,并在遇到故障随机地选择一个拓扑;4)SDN-FRRD(SDNFastandResilientRoutingagainstDisaster)为本发明系统中采用的网络容灾恢复方法,既考虑了调整备份拓扑上边的权重,又考虑了如何应用SDN框架来调度这些备份拓扑。
实验结果:
德国主干网、rand50和rand100的恢复率如图5、图6、图7所示,从图中可以看到,备份拓扑的个数从6增加到15时,SDN-FRRD恢复率均高于其它几种方式。SDN-FRRD、SDN-MRC与其它两种方式恢复率的提升说明了应用本SDN系统框架效果。SDN-FRRD与SDN-MRC相比的恢复率的提升说明了本系统中根据地理位置来找备份路径的效果。
在两台主机间,一台作为服务器,一台作为客户端,服务器不断向客户端发送数据,在客户端上监测接收速率的变化。在0.3s时打断两台主机间的链路,然后使用本发明提供的系统和方法进行快速恢复,图8展示了客户端上接收速率的变化,0.3s时因为链路的恢复接收速率有个下降过程,但是很快的能够恢复到之前的正常的速率,恢复时间大约在10ms左右。
图9展示了故障半径从50增加到150,控制器的负载变化情况。随着故障半径的增加,控制器的负载也有增加的趋势,但是控制器的负载始终在40%以下,意味着一半以上的故障都在数据平面处理掉,控制平面的负载在50%以下。
以上仅是本发明的优选实施方式,应当指出以上实施列对本发明不构成限定,相关工作人员在不偏离本发明技术思想的范围内,所进行的多样变化和修改,均落在本发明的保护范围内。

Claims (7)

1.一种基于软件定义网络技术的网络容灾恢复系统,其特征在于:该系统基于软件定义网络技术,包括位于软件定义网络的数据平面的备份拓扑生成模块和位于软件定义网络的控制平面的拼接模块;所述备份拓扑生成模块用于在灾前生成备份拓扑,并根据灾害地理特性计算出备份路径并安装到软件定义网络的数据平面中,且在数据平面对部分因灾害发生而导致的重连请求执行本地快速恢复;所述拼接模块用于在控制平面处理那些在数据平面不能处理的灾害故障重连请求。
2.根据权利要求1所述的基于软件定义网络技术的网络容灾恢复系统,其特征在于包括:
备份拓扑生成单元,用于以原始网络拓扑为输入,在备份拓扑生成模块中生成并保存多张用于对节点的失效快速恢复的备份网络拓扑图;
备份路径生成单元,用于根据备份拓扑生成单元生成的多张备份网络拓扑图,结合输入的灾害地理特性,使用路径的脆弱性区域在每张备份拓扑上生成备份路径并保存;
备份路径安装单元,用于在控制平面上,根据备份路径生成单元中生成并保存的备份路径生成相应的流表项,安装新的路由策略到数据平面;
数据平面数据包转发及检测单元,用于数据平面中每个路由节点在转发数据包时,检测下一跳端口是否有效,如果有效,则直接转发数据包,如果无效,进入数据平面本地快速恢复单元执行本地快速恢复;
数据平面本地快速恢复单元,用于执行数据平面的本地快速恢复,根据备份路由选择一个转发端口,如果转发端口有效,直接转发,如果无效则将数据包发往控制平面;
控制平面拼接处理及判定单元,用于在控制平面运行拼接模块,根据拼接模块的输出生成新流表项,安装到控制平面中;并判定是否因网络物理上不连通造成路由失效;
物理网络不连通通知单元,用于当判定因网络物理上不连通造成路由失效时,通知数据包的源节点和目的节点,物理网络已不再连通。
3.一种基于软件定义网络技术的网络容灾恢复方法,其特征在于包括如下步骤:
(A)备份拓扑生成模块中备份拓扑生成:以原始网络拓扑为输入,生成并保存多张用于对节点的失效快速恢复的备份网络拓扑图;
(B)根据备份拓扑生成模块生成安装到数据平面的备份路径:在步骤(A)中生成并保存的多张备份拓扑图上,结合输入的灾害地理特性,使用路径的脆弱性区域在每张备份拓扑上生成备份路径并保存;
(C)在数据平面中安装备份路径:由控制平面根据步骤(B)中生成并保存的备份路径生成相应的流表项,并安装路由策略到数据平面;
(D)数据平面数据包转发及检测:数据平面每个路由节点在转发数据包时,每次检测下一跳端口是否有效,如果有效,则直接转发数据包,如果无效,进入步骤(E);
(E)数据平面本地快速恢复:执行数据平面的本地快速恢复,根据备份路由选择一个转发端口,如果转发端口有效,直接转发,如果无效则将数据包发往控制平面,进入步骤(F);
(F)控制平面拼接处理及判定:控制平面运行拼接模块,根据拼接模块的输出生成新流表项,安装到控制平面中;并判定因网络物理上不连通造成路由失效时,进入步骤(G);
(G)物理网络不连通通知:通知数据包的源节点和目的节点,物理网络已不再连通。
4.根据权利要求3所述的基于软件定义网络技术的网络容灾恢复方法,其特征在于:
所述步骤(A)中,以原始网络拓扑G为输入,生成并保存k个用于对节点的失效快速恢复的备份网络拓扑{G1…Gk};
所述步骤(B)中包括如下步骤:
1):从应用本系统的整个区间[ra,rb]中均匀地取出k个点ri,其中 ra、rb分别是输入的灾害地理特性中灾害预期发生的最小、最大半径,对于特定的源目的节点对s和t,在原始网络拓扑G中找到从s到t的主路径及其对应的大小为ri的脆弱性区域其中1≤i≤k;
2):遍历每一个备份拓扑Gi,如备份拓扑Gi中的链路的大小为ri的脆弱性区域的大小ri为的脆弱性区域相交,则通过配置Gi中的这条链路的权重大于原始网络拓扑G中所有边的权重之和,使其不会被基于权重的路径寻找算法使用从而被配置为被隔离的链路;然后在备份拓扑Gi中通过最短路径算法,找到从s到t的备份路径,使得Gi成为与失效半径为ri的网络故障对应的备份拓扑,返回在k个备份拓扑{G1…Gk}上的k个备份路径其中链路的脆弱性区域为所有半径是ri且能够损毁的故障的圆心的集合,即落在此区域中的故障为ri的区域故障均会破坏链路路径的脆弱性区域是该路径所包括的所有链路的脆弱性区域的并集。
5.根据权利要求4所述的基于软件定义网络技术的网络容灾恢复方法,其特征在于:所述步骤(F)中所述拼接模块包括:构建一个新的临时网络拓扑图G′,其节点与G相同,依次将{G1…Gk}计算出来的由s到t的备份路径上未被摧毁的边加入到G′中,如果在G′中目的节点可达,则拼接模块在G′中计算一条新的路径p′,包含在拼接指令动作中作为拼接模块的输出。
6.根据权利要求4所述的基于软件定义网络技术的网络容灾恢复方法,其特征在于:所述步骤(F)中所述拼接模块包括:
StepF1:构建一个临时的网络拓扑G′,G′中的节点与G中相同,G′中的初始边集为空;
StepF2:依次取出备份拓扑{G1…Gk}中的备份路径中的未被摧毁的边,加入到G′中去;
StepF3:根据原始拓扑图G中所有节点对间的路由路径,和在数据平面本地快速恢复的重路由路径,置图G′中存活的链路euv的权重为(P(u)+P(v)+R′(u)+R′(v))/2;其中每个节点u的第一权值P(u)为原始图中通过该节点路径条数,每个节点u的第二权值R′(u)为数据平面的本地重路由通过该节点的路径条数;
StepF4:根据每条链路euv的权重,在图G′中使用最短路算法找到从s到t的路径,将其包含在拼接指令动作中输出。
7.根据权利要求3至6任一权利要求所述的基于软件定义网络技术的网络容灾恢复方法,其特征在于:所述数据平面通过利用在OpenFlow多表流水线的多张路由表中安装由备份拓扑生成模块生成的备份路由,以及在OpenFlow快速恢复组表中安装快速恢复桶动作,来实现数据平面的本地快速恢复,使得交换机在本地检查下一跳的存活性后,根据下一跳的存活性选择不同的端口发送包,当主路径的备份端口和备份路径的下一跳端口都断连时,交换机会将包送到控制器,由控制平面的拼接模块处理。
CN201510961403.7A 2015-12-18 2015-12-18 一种基于软件定义网络技术的网络容灾恢复系统及方法 Active CN105553728B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510961403.7A CN105553728B (zh) 2015-12-18 2015-12-18 一种基于软件定义网络技术的网络容灾恢复系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510961403.7A CN105553728B (zh) 2015-12-18 2015-12-18 一种基于软件定义网络技术的网络容灾恢复系统及方法

Publications (2)

Publication Number Publication Date
CN105553728A true CN105553728A (zh) 2016-05-04
CN105553728B CN105553728B (zh) 2018-07-03

Family

ID=55832668

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510961403.7A Active CN105553728B (zh) 2015-12-18 2015-12-18 一种基于软件定义网络技术的网络容灾恢复系统及方法

Country Status (1)

Country Link
CN (1) CN105553728B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105933227A (zh) * 2016-06-29 2016-09-07 中国电子科技集团公司第五十四研究所 软件定义卫星网络中的路由决策及流表一致性优化的方法
CN106713025A (zh) * 2016-12-14 2017-05-24 广州市品高软件股份有限公司 一种用于信息同步的网络容灾方法
CN107135160A (zh) * 2017-03-15 2017-09-05 广东工业大学 基于网络失效节点的生成树容错方法
CN107682342A (zh) * 2017-10-17 2018-02-09 盛科网络(苏州)有限公司 一种基于openflow的DDoS流量牵引的方法和系统
CN109936479A (zh) * 2019-03-18 2019-06-25 浙江大学 基于差分检测的控制平面故障诊断系统及其实现方法
CN111366163A (zh) * 2018-12-25 2020-07-03 北京欣奕华科技有限公司 一种拓扑地图的处理方法、装置及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130215769A1 (en) * 2012-02-22 2013-08-22 Telefonaktiebolaget L M Ericsson (Publ) Controller placement for fast failover in the split architecture
CN103986651A (zh) * 2014-05-30 2014-08-13 杭州华三通信技术有限公司 一种软件定义网络控制器及其控制方法
CN104410528A (zh) * 2014-12-09 2015-03-11 中国人民解放军国防科学技术大学 软件定义数据中心网络控制器的最小容错覆盖部署方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130215769A1 (en) * 2012-02-22 2013-08-22 Telefonaktiebolaget L M Ericsson (Publ) Controller placement for fast failover in the split architecture
CN103986651A (zh) * 2014-05-30 2014-08-13 杭州华三通信技术有限公司 一种软件定义网络控制器及其控制方法
CN104410528A (zh) * 2014-12-09 2015-03-11 中国人民解放军国防科学技术大学 软件定义数据中心网络控制器的最小容错覆盖部署方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
黄亮等: "面向软件定义网络的入侵容忍控制器架构及实现", 《计算机应用》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105933227A (zh) * 2016-06-29 2016-09-07 中国电子科技集团公司第五十四研究所 软件定义卫星网络中的路由决策及流表一致性优化的方法
CN106713025A (zh) * 2016-12-14 2017-05-24 广州市品高软件股份有限公司 一种用于信息同步的网络容灾方法
CN106713025B (zh) * 2016-12-14 2019-08-20 广州市品高软件股份有限公司 一种用于信息同步的网络容灾方法
CN107135160A (zh) * 2017-03-15 2017-09-05 广东工业大学 基于网络失效节点的生成树容错方法
CN107135160B (zh) * 2017-03-15 2020-10-27 广东工业大学 基于网络失效节点的生成树容错方法
CN107682342A (zh) * 2017-10-17 2018-02-09 盛科网络(苏州)有限公司 一种基于openflow的DDoS流量牵引的方法和系统
CN107682342B (zh) * 2017-10-17 2020-03-10 盛科网络(苏州)有限公司 一种基于openflow的DDoS流量牵引的方法和系统
CN111366163A (zh) * 2018-12-25 2020-07-03 北京欣奕华科技有限公司 一种拓扑地图的处理方法、装置及存储介质
CN109936479A (zh) * 2019-03-18 2019-06-25 浙江大学 基于差分检测的控制平面故障诊断系统及其实现方法

Also Published As

Publication number Publication date
CN105553728B (zh) 2018-07-03

Similar Documents

Publication Publication Date Title
CN105553728A (zh) 一种基于软件定义网络技术的网络容灾恢复系统及方法
Vizarreta et al. Controller placement strategies for a resilient SDN control plane
CN104247344B (zh) 用于拆分式体系结构中快速故障转移的控制器安排
CN105379196B (zh) 用于容错和负载平衡路由的方法、系统和计算机存储介质
CN104040974B (zh) 用于双链路故障上备用容量分配的设备和方法
CN106973018A (zh) 一种在网络通信中实现拓扑透明区的系统和方法
CN102549982A (zh) 在计算机网络中控制数据转发的技术
CN105183957B (zh) 一种用于航空电子系统的鲁棒性分析方法
KR20120089356A (ko) Mpls 멀티캐스트를 위한 효율적인 보호 방식
CN102882780B (zh) 基于共享路径的环网隧道配置方法、环网保护方法及系统
CN101888307B (zh) 用于本地实现端口选择的方法和装置
Xie et al. Designing a disaster-resilient network with software defined networking
CN103973491B (zh) 故障处理方法及光层控制网元、ip层控制网元
CN106161126A (zh) 告警的测试处理方法及装置
CN106464511B (zh) 一种业务保护方法及装置
Awoyemi et al. Network restoration for next‐generation communication and computing networks
CN101529869A (zh) 用于在路由网络中计算备选多播/广播路径的方法和设备
Bassiri et al. Network survivability in large-scale regional failure scenarios
CN109391543B (zh) 用于多业务故障恢复的方法和系统、业务恢复辅助系统
CN106330695A (zh) 一种业务控制方法及装置
Rueda et al. Improving the robustness to targeted attacks in software defined networks (SDN)
CN107135160B (zh) 基于网络失效节点的生成树容错方法
CN103634218B (zh) 路由快速收敛的方法及装置
CN101710876A (zh) 快速重路由的保护方法及装置
Muthumanikandan et al. A survey on link failures in software defined networks

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20160504

Assignee: China Southern Power Grid Shenzhen Digital Power Grid Research Institute Co., Ltd

Assignor: NANJING University

Contract record no.: X2021980017010

Denomination of invention: A network disaster recovery system and method based on Software Defined Network Technology

Granted publication date: 20180703

License type: Common License

Record date: 20211230