基于拜占庭容错提高SDN控制层可靠性的研究

2017-05-13 03:49李军飞胡宇翔邬江兴
计算机研究与发展 2017年5期
关键词:拜占庭视图交换机

李军飞 胡宇翔 邬江兴

(国家数字交换系统工程技术研究中心 郑州 450002)(lijunfei90@qq.com)

基于拜占庭容错提高SDN控制层可靠性的研究

李军飞 胡宇翔 邬江兴

(国家数字交换系统工程技术研究中心 郑州 450002)(lijunfei90@qq.com)

软件定义网络(software defined network, SDN)提出了控制与转发分离的设计结构,实现了开放的可编程网络接口,为网络提供了更细粒度的管理.然而,SDN在为网络应用带来创新与便利的同时,也面临着一些新的问题.针对SDN网络中控制层的可靠性问题,提出了一种容忍拜占庭错误的方法.首先,结合SDN网络的特性,具体阐述了在应用拜占庭容错算法时的网络结构、工作流程和异常处理等,并对其中的多控制器位置部署问题建立分析模型;然后,针对该多控制器部署问题,设计了启发式求解算法;最后,通过仿真实验对该容错方法和部署算法进行验证.实验结果表明:该容错方法能够有效处理控制器中的错误,提高控制层的可靠性,但对系统的性能会造成一定程度的影响.同时,该部署算法能够有效降低处理OpenFlow请求的传输延迟.

软件定义网络;OpenFlow;拜占庭容错;可靠性;控制器部署

随着网络应用的快速发展,传统的网络交换设备承载着越来越多的控制逻辑,已难以适应虚拟化、云计算、大数据及相关业务发展对数据高速传输、资源灵活配置、协议快速部署的需求.软件定义网络(software defined network, SDN)提出了控制与转发分离的设计结构,实现了开放的可编程网络接口,为网络提供了更细粒度的管理,引起了学术界和产业界的广泛研究.然而,SDN在为网络应用带来创新与便利的同时,也面临着一些新的问题,如控制器的安全性[1]、交换机的转发效率[2]以及流表的一致性[3]等,制约了其在应用网络中的广泛部署.

例如,相对于传统的网络,SDN采用集中式控制,使得网络的管理更为简捷和高效,但同时也引入了新的安全威胁.其中,SDN控制器大多是部署在计算机上,其智能化程度更高,但往往也具有更多的漏洞,降低了针对控制器的攻击难度.另一方面,SDN控制器负责整个网络的管理和维护,其一旦出现错误,将对整个网络的正常运行造成影响,具有更大的危害性.

针对SDN控制层存在的上述可靠性问题,OpenFlow v1.2[4]协议提出了多控制器的方法,多个控制器之间构成主备冗余的关系.在主控制器由于发生错误而停止工作时,选择其中的一个从控制器转变为主控制器.然而,在实际应用中,控制器更多的是发生拜占庭错误(Byzantine fault),而不仅是造成宕机的良性错误(Benign fault).拜占庭错误具有一定的隐蔽性,它是在控制器对外表现仍能工作的情况下,对交换机的请求输出任意错误响应,或按照攻击者的意图输出具有破坏性的响应.因此,目前SDN网络中的主备切换机制还难以发现和处理拜占庭错误,给控制层的可靠性造成了严重的威胁.

借鉴已有系统处理拜占庭错误的方法,如冗余文件系统[5]、分布式计算系统[6]等,本文尝试着将拜占庭容错算法(Byzantine fault tolerance, BFT)引入到SDN网络中,希望能够引起相关研究者的兴趣.BFT算法需要多个控制器之间协同工作,对输出给交换机的响应进行表决,以检测出部分控制器出现的异常并予以及时处理,从而达到增强控制层可靠性的效果.

1 相关工作

SDN控制层是SDN网络中的核心部分,负责数据层的管理和维护,但由于其采用集中式控制,在出现错误或遭受攻击时,对网络造成的危害更大.例如,Diego等人[1]分析总结了SDN网络中的7类安全问题,其中5类存在于控制层面,且具有更强的破坏性.因此,控制层可靠性的研究是目前SDN领域中的热点,研究者从不同的角度来分析和解决集中式控制带来的安全缺陷.

系统结构上,Casado等人[7]提出了FortNOX架构,它是基于OpenFlow控制器NOX的软件扩展,提供了身份认证和安全约束机制.FortNOX使得NOX控制器能够实时地检查流表项中的冲突,及时发现具有破坏意图的上层恶意应用.然而,该结构仅是针对单个控制器内的安全问题,并不能解决控制器节点的失效问题.同时,Shin等人[8]提出了基于模块化组合的FRESCO架构,通过调用脚本API来监测代码运行或发现安全威胁.因此,FRESCO的防护效果取决于模块化库的功能强弱,同样也难以应对节点失效的安全问题.

具体应用上,Hu等人[9]研究了多控制器部署位置的问题,提高了SDN网络在单控制器节点失效情况下的可恢复力.Jagadeesan等人[10]提出了网络分块控制的思想,使得单个控制器在被攻破的情况下,整个网络依然有安全保证.Hu等人[11]在SDN网络中引入了防火墙的技术,结合SDN的特性,通过精确检测和规则过滤,提高了网络的抗攻击能力.

另外,Li等人[12]提出了一种新颖的控制方法,多个冗余的控制器之间相互协作,打破传统的主备切换的方式,使得控制层具有容忍拜占庭错误的能力.然而,文献[12]重点研究了交换机与控制器之间多对多的对应关系,仅简单介绍了该算法的容错原理,没有结合SDN网络的具体场景对其工作机制和实现方法做进一步的研究.而且,该研究没有给出BFT算法对SDN网络在性能方面上造成的影响.

2 基于拜占庭容错的SDN架构

2.1 工作流程

与传统SDN控制层处理OF(OpenFlow)请求的方式不同,基于BFT算法的SDN网络需要多个控制器之间协同处理,对输出响应进行表决,以防止异常控制器对网络造成破坏.该容错方法不仅能够应对造成控制器宕机的良性错误,而且也能够抵抗由于外部攻击或自身错误导致的控制器输出异常的拜占庭错误.同时,基于BFT算法的SDN网络需要多个控制器相互协作,彼此之间相互检测对方是否发生错误,但不需要复杂的差错检验机制来验证自身是否出现错误.

2.1.1 算法流程

对于要容忍f个控制器错误的SDN网络,典型的BFT算法通常需要3f+1个控制器,构成处理OF请求的冗余系统.其中,3f+1个控制器构成的集合称为群视图,记为v.BFT算法的流程如图1所示:

Fig. 1 The procedure of BFT in SDN图1 SDN网络中BFT算法的流程

图1中,of表示交换机发出的OF请求,ppre,pre,commit,reply表示BFT算法运行的状态,v表示控制器以自己的视角所看到的群视图,n是对当前of消息的编号,D(of)表示OF消息的摘要.BFT算法大致分为5个步骤:

1) 主控制器接收到交换机发送的OF请求,验证其正确性.若正确,则给请求分配序列号n,系统进入pre-prepare阶段,并对外广播该请求.

2) 各控制器接收到ppre消息,验证其相对于自身的正确性.若正确,控制器进入prepare阶段,对外广播确认接收到请求的prepare消息,其中,D(of)表示OF请求的摘要.

3) 各控制器接受到prepare消息,验证其相对于自身的正确性,并检查其是否在当前的群视图.若满足条件,且接收到2f个来自不同控制器的prepare消息,则进入commit阶段,对外广播commit消息.

4) 各控制器接受到commit消息,验证其正确性,并检查其是否在当前的群视图.若满足条件,且接收到2f个来自不同控制器的commit消息,则处理该OF请求,并将响应reply消息返回给交换机.

5) 交换机接收到f+1个来自不同控制器的相同的且验证通过的reply消息时,则认定该响应为请求处理的结果.

上述流程主要是为了在多个控制器共同处理来自不同交换机的多个OF请求时,保证其处理请求顺序的一致性以及返回响应的一致性.其中,对于步骤5,由于其与目前交换机的工作方式不同,我们可以通过在交换机里加入该部分的控制逻辑,或在交换机与控制器之间加入相应的代理器(类似于FlowVisor)来实现对多个输入的表决判断.另外,控制器之间的消息交互,可以通过东西向的接口来实现.对于算法流程中的消息验证,如ai,μi s等是为了防止来自破坏者的虚假消息,以及消息在网络传输过程中被篡改,我们可以采用公钥密码对消息的来源和完整性进行验证.

2.1.2 容错机制

BFT算法的主要作用就是能够及时发现群视图中控制器成员的异常,对其进行主动恢复或切换当前的群视图,以防止其对系统的正常工作造成影响.对于SDN网络中的从控制器异常,如图1中控制器Controller 2,当其为良性错误时,则停止工作,不再与其余控制器进行交互,使得该错误能够被主控制器及时发现;当其为拜占庭错误时,则行为异常,甚至输出具有破坏目的的响应.由于其输出的结果与大多数控制器的结果不一致,交换机(或代理器)在择多判决多个控制器的输出结果时,能够及时发现该控制器的异常.

对于主控制器的异常,如图1中控制器c0,当其为良性错误时,则与所管理的交换机失去连接,这些交换机尝试连接至某一从控制器,进而发现主控制器的错误;当其为拜占庭错误时,造成其余控制器在交互时关于视图v无法达成一致,或交换机得不到f+1个相同的输出结果.此时,由于无法完成正常的BFT流程,可以判断主控制器发生了异常.

2.1.3 群视图切换

当群视图中异常控制器的数量达到h(h≤f),或主控制器出现错误时,为保证控制层能够正确处理交换机的OF请求,需要进行群视图切换,选择一些功能正常的控制器作为新的视图.如图2所示,原群视图v={c0,c1,c2,c3},在主控制器c0出现异常时,视图中其余的成员发起视图切换的请求,将其对外广播.控制器接收到视图切换请求的消息,选取其中编号较小的控制器作为主控制器,并向其发送视图确认的消息.某一控制器在接收到3f个来自不同控制器的视图确认的消息后,则认定为主控制器,产生新的群视图v′={c0,c1,c2,c3,c4},并向v′中的其余控制器广播新群视图的消息.

群视图的切换有助于SDN网络在应用BFT算法能够容忍f个错误的基础上,进一步增强网络的可靠性和安全性.但同时也意味着,网络中要有更多的控制器,以在视图切换时有正常的控制器可供使用.进一步地,可以在该网络中引入主动恢复机制[14],使得即使在有限数量的控制器下,控制层依然可以在不同的时刻进行群视图切换.

Fig. 2 The procedure of change quorum view图2 群视图的切换过程

2.2 网络结构

在运行BFT算法时,交换机可以以任一控制器为主控制器,且可以在其之间动态切换,因此,交换机与控制器之间要实现多对多的连通.另一方面,控制器之间为了实现处理请求和网络视图的一致性,需要相互通信,因此,控制器之间是要相互连通的.如图3所示,对于带外通信(Out-Band)的SDN网络,要实现BFT算法,不仅控制器之间需要互相连通,而且交换机与其群视图(quorum view)内的控制器也要全部实现互连;对于带内通信(In-Band)的SDN网络,其OF控制流和控制器之间的数据流可以通过数据平面中的路径传输,大大降低了网络互连的复杂度,但同时也增加了通信的延迟和开销.

Fig. 3 The SDN network based on BFT图3 基于BFT算法的SDN网络结构

另外,在具体设计基于BFT算法的SDN网络结构时,有3点值得注意:1)控制器之间的网络拓扑具有较强的连通性,即单个控制器故障不会影响其余控制器间的通信;2)交换机与控制器之间具有较近的拓扑距离,以降低控制流的传输时延;3)控制器之间的网络连接具有较高的可靠性,保证BFT算法的通信效率,以提高服务请求的处理速度.

2.3 CDB问题

分析上述基于BFT算法的SDN网络,为了提高其控制层的可靠性,带来了大量的控制器冗余及通信开销.所以,在部署该网络时,我们需要考虑交换机与控制器之间的连接关系,以尽可能地提高网络的性能,减小该方法带来的负面影响.例如,文献[12]针对带外通信的SDN网络,研究了交换机与控制器之间多对多的对应关系,以满足运行BFT算法的通信延迟、控制器负载等约束条件.对于带内通信的SDN网络,研究者更多地关注控制器位置的部署,以提高网络的弹性[15]和可靠性[16].同样,其对BFT算法的运行效率也具有重要的影响,因此,本文我们将重点研究BFT算法下多控制器的位置部署(controllers’ deployment with BFT, CDB)问题.

为了便于表述和计算,结合图1(b),我们首先针对基于BFT算法的SDN网络,给出4点模型假设:

1) 控制层具有n个控制器,设定其能容忍f个错误.为了使得在发生错误时,BFT算法能够切换群视图,需要n>3f+1.

2) 对于交换机si,为了减低OF请求的传输延迟,选择距离其最近的控制器j作为主控制器pi,即∀ch∈C,δi j≤δi h.

3) 对于主控制器pi,为了降低控制器之间的通信延迟,选择距离其最近的2f个控制器,构成基于BFT算法交换机i的控制器集合φi,即∀cj∈φi,ch∉φi∧ch∈C,γi j≤γi h.

4) 为了降低单个交换机失效对控制层造成的影响,假定一个交换机上最多部署一个控制器,即∀ci,cj∈C且i≠j,ψ(i)≠ψ(j).

CDB问题可以针对不同的优化目标,如传输时延、通信开销、资源利用率等,分别对应着不同的目标函数.本文将以传输时延为例,研究SDN网络中控制器的优化部署,以期提高BFT算法下处理OF请求的速度.

3 CDB问题的求解

3.1 计算过程

对于一个具有m个交换机的SDN网络,其数据层的网络拓扑可以用邻接矩阵表示为G=(ai j)m×m.其中,ai j是边〈si,sj〉的权重,表示该路径上的传输延迟,当si与sj无直接连接时,ai j=+∞.进而,可以使用Dijkstra算法求得任意2个交换机间的最短距离,即G′=(di j)m×m.对于CDB问题,在给定常量矩阵G′和变量函数ψ(i)的情况下,根据2.3节中的假设,可以计算出表1中的中间量pi,φi,δi j,γi j.例如:

控制器在运行BFT算法时,处理交换机si的一次OF请求需要经历5个阶段,如图2所示.对于request阶段,其路径传输延迟为

Treq=δi jv,j=ψ(pi),

(1)

Table1 Symbols in CDB Problem表1 CDB问题中的符号

Treq=δi jv,j=ψ(pi),

SymbolMeaningGtopologyofdataplaneCcontrollersetsiswitchiαitheamountofOFsentbyswitchicicontrolleripimastercontrollerofswitchiϕicontrollersetofswitchibasedonBFTδijtheshortestdistancebetweenswitchiandcontrollerjγijtheshortestdistancebetweencontrolleriandcontrollerjψ(i)positionthatdeployscontrolleri

其中,v表示信号在链路中的传输速度.对于pre-prepare阶段,主控制器需要与群视图内的其余控制器通信,我们选择其中延迟最大的路径做为该阶段的传输延迟,即:

Tppre=max(γh j)v,
j=ψ(pi),h∈φi.

(2)

对于prepare阶段和commit阶段,群视图内的任意1个控制器均需要通信,同理,该阶段的传输延迟为

Tpre=Tcom=max(γr t)v,r,t∈φi.

(3)

对于返回响应的reply阶段,其传输延迟为

Trep=max(δi q)v,q∈φi.

(4)

由式(1)~(4)求和可得,处理交换机si的一次OF请求的总路径延迟为

考虑到各个交换机产生OF请求的数量不同,我们采用该SDN网络处理OF请求的平均传输延迟时间T作为度量指标,表示为

即:

(5)

因此,该CDB问题可以形式化描述为:在给定数据层网络拓扑图G的情况下,求控制器的部署位置ψ(i),使得式(5)中的平均传输延迟T取得最小值,以提高SDN网络中运行BFT算法的效率.

3.2 求解算法

算法1. DGA算法.

输入: 数据层网络拓扑G、控制器数量n、BFT容错上限f;

输出: 较好适应度子代的基因序列x.

①x=[y1,y2,…,ym],P(t)={x1,x2,…,xp};

② 初始化P(0);*初始化种群*

③ fort=0 toKdo

④ fori=0 topdo

⑤F(i)=T(G,n,f,xi);*评估个体适应度*

⑥ end for

⑦ fori=0 topdo*种群选择*

⑨ end for

⑩ fori=0 top2 do*种群交叉*

在该DGA算法中,染色体x表示为(y1,y2,…,ym),与式(5)中控制器的部署位置ψ(i)相对应.其中,若yi=1,表示交换机i处部署有控制器,否则,yi=0.因此,染色体x是一个长度为m的01序列.P(t)为种群空间,包含有p个个体,个体的适应度F采用OF请求的平均传输延迟T来度量(行⑤).然后,根据适应度F,对种群中的个体按照一定的概率,依次进行选择、交叉和变异(行⑦~),以期获得适应度更好的子代.

对于交叉变异之后的子代种群P3,其中的部分个体可能会出现异常,使得x中yi=1的数量不等于n(行),即其所对应控制器的总量不等于n.对于子代中异常的个体,采用解码法对其进行纠正,删除或增加x中yi=1的项(行),使其总量为n.在对x进行修正时,我们以贪心函数D作为衡量指标(行~),即该交换节点与其余节点距离的总和,修改其中对应D(i)较小的yi=1项为yi=0,或将对应D(i)较大的yi=0项修改为yi=1.该DGA算法依次对种群进行迭代进化,直至循环T次,最后选择末代种群P(T)中适应度最好的个体作为输出(行).

4 实验验证与分析

4.1 实验环境

4.1.1 仿真实验

为了验证上述方法的有效性,我们采用C++语言实现了一个仿真器,来模拟SDN网络中多个控制器之间运行BFT算法.该仿真器基于Internet2 OS3E网络拓扑,OS3E是一个遍布美国大部分地区的用于先进科学研究的SDN网络[17].如图4所示,OS3E具有34个节点和42条链路,每个节点表示1个独立的大学或组织.对于该网络中的链路距离,我们采用文献[15]中的测试数据,如图4中节点A(Sunnyvale)和B(Los Angeles)间的链路距离为503 182 m.

Fig. 4 The topology of OS3E network图4 OS3E的网络拓扑

该仿真器中部署n(n≤10)个控制器,控制器之间可以构成不同规模的群视图,以运行不同容错上限(f=1,2,3)的BFT算法.对于每个控制器,设定其以概率p发生错误,其中拜占庭错误的比例为b,即拜占庭错误发生的概率为b×p.对于交换机,在采用传统的主备切换方法控制时,我们认为控制层在出现以下2种情况时该交换机发生异常:1)正在工作的主控制器出现拜占庭错误,由于主备切换机制无法检测拜占庭错误而发生异常;2)出现良性错误的控制器的数目达到n个,由于控制层无法进行有效的切换而发生异常.在采用BFT算法控制时,当交换机群视图内出现错误的控制器达到f+1个,则认定该交换机出现异常.

4.1.2 原型测试系统

另外,为了测试该BFT算法对系统性能的影响,我们基于OpenDayLight[18]开发了简单的原型系统,在其东西向接口上实现控制器之间的协作.负责控制器之间相互协作的BFT协议,是基于BFT-SMART[19]开源代码来实现的.

测试环境中包括2台服务器,其间通过10 Gb/s链路相连,每台服务器均配有2颗Intel Xeon E7-8891处理器(10核20线程、3.7 GHz),64 GB的内存.服务器上运行Hypervisor,安装有多个Ubuntu 14.04.1的操作系统.其中1台服务器运行Cbench[20],用于模拟SDN的数据层,向控制层发送OF消息;另一台服务器则同时启动多个操作系统,每个操作系统上运行1个OpenDayLight控制器,且控制器之间能够运行BFT算法.对于Cbench,我们采用固定的配置,模拟的网络中具有64个Switch,每个Switch连接有105个Host.

4.2 测试数据

4.2.1 BFT算法的可靠性

基于上述测试环境,我们首先验证BFT算法对SDN网络可靠性的影响.在控制器数目n=10的情况下,对比分析主备切换Custom,BFT容错上限为f=1,f=2,f=3这4种方法的容错效果,均以SDN网络中异常交换机的个数u作为其衡量指标.为降低随机过程带来的偶然性,每个实验均重复1 000次,计算u的平均值.

如图5所示,在拜占庭错误比例b=70%固定的情况下,测试不同的控制器出错所对应的网络可靠性.

Fig. 5 The reliability of SDN under different fault probability图5 不同错误率下SDN网络的可靠性

从图5中可以得出:1)对于这4种方法,其异常交换机的个数u均随着错误概率p的增大而增加,即主备切换机制和BFT算法的可靠性均与控制器的出错概率有关;2)对比主备切换机制和BFT算法,在b=70%的情况下,BFT的容错能力要优于主备切换机制;3)在不同p值下,容错上限f越大的BFT算法,其可靠性均越高.

在控制器出错概率p=0.6固定的情况下,测试不同的拜占庭错误比例b所对应的网络可靠性,结果如图6所示:

Fig. 6 The reliability of SDN under different Byzantine-fault percentage图6 不同拜占庭错误比例下SDN网络的可靠性

分析其中的数据,可以得出:1)BFT算法能够有效应对拜占庭错误,其可靠性与拜占庭错误的比例无关;2)主备切换机制的可靠性随着拜占庭错误比例的增大而降低,在b值较大时,其容错能力大幅度降低;3)在不同的b值下,BFT算法的f值越大,其容错能力均越高.

综合上述分析,我们可以发现,相对于传统的主备切换机制,BFT算法不仅能够应对SDN网络中的良性错误,而且也能能够处理主备切换机制难以解决的拜占庭错误.同时,随着部署控制器数量的增加,BFT算法可以选择更大的f值,网络的可靠性将会进一步地提高.

4.2.2 BFT算法的性能

基于4.1.2节中所述的原型系统,对BFT算法的性能进行测试,测试指标包括处理OF请求的吞吐量和平均延迟.我们对比分析主备切换Custom,以及BFT容错上限为f=1,f=2,f=3这4种方法下控制器的性能,同样每种方法均重复实验10次,每次实验运行60 s,以OF消息包为统计单位,计算控制层的吐吞量(throughput)和处理延迟(latency)的平均值.

Fig. 7 The performance of BFT图7 BFT算法的性能

从图7的测试结果中可以看出,在采用BFT算法时,控制器处理OF请求的吞吐量有所下降,与传统的主备切换方法相比,吞吐量最大降低24.07%(当f=3时),且不同f下BFT算法的吞吐量相差在16.13%以内.另一方面,采用BFT算法时,控制器处理OF请求的平均延迟增加比较明显,是传统主备切换方法的2倍多,但不同f下BFT算法的平均延迟差别较小,在6.25%以内.这是由于控制器处理OF请求所需的计算和存储资源相对较少,系统中即使加入了BFT算法中的其余任务,在处理并发的OF请求时,吞吐量降低的相对较小.然而,对于处理一个OF请求,由于BFT算法的繁杂交互,使得其处理延时明显增加.另外,由于BFT算法中控制器数目的增加并未影响OF请求的处理流程,这也使得在改变f时平均处理延迟的变化较小.

4.2.3 DGA算法的有效性

为了测试DGA算法的有效性,我们将其与最优部署(OP)、随机部署(RD)进行比较,计算不同部署方法下控制器传输OF请求的平均延迟.对于OP,该仿真器采用穷举的方法搜索最优解,因此,为了使其运行的时间可接受,CDB问题的规模选择在n≤7的范围内.同时,我们假定信号在链路中的传输速度v=3×108m/s.

仿真结果如图8所示,我们可以发现,采用DGA算法来部署控制器,其传输OF的平均延迟时间T,与采用OP方法的最优值较为接近(差距在86%以内),均维持在100 ms以内,远优于RD方法的解(与最优值相差近350%).因此,在多项式时间内求解CDB问题,该DGA算法具有较好的效果.

Fig. 8 The average transmission delay time under different algorithms图8 不同算法下的平均传输延迟时间T

5 总结和未来工作

本文针对SDN网络中的可靠性问题,首先介绍和分析了该领域的相关工作和研究.然后,提出了在SDN中应用BFT算法来增强可靠性的方法,并具体阐述了其网络结构、工作流程和异常处理等.再次,针对在SDN网络中应用BFT算法时存在的多控制器部署问题,给出了求解其近似最优解的启发式算法.最后,将该BFT算法与传统的主备切换方法进行对比,实验结果表明,BFT能够有效提高SDN网络的可靠性,但对系统的性能会造成一定程度的影响.在未来的工作中,我们期望能够针对该原型系统做进一步的优化,调整交互模块与控制器的架构,并引入并行处理机制,以减少对系统性能的影响.

[1]Diego K, Fernando M V, Paulo V. Towards secure and dependable software-defined networks[C] //Proc of the 3rd Workshop on Hot Topics in Software Defined Networking. New York: ACM, 2013: 55-60

[2]Banerjee S, Kannan K. Tag-in-tag: Efficient flow table management in SDN switches[C] //Proc of the 10th Network and Service Management (CNSM). Piscataway, NJ: IEEE, 2014: 109-117

[3]Al-Shaer E, Al-Haj S. FlowChecker: Configuration analysis and verification of federated OpenFlow infrastructures[C] //Proc of the 3rd ACM Workshop on Assurable and Usable Security Configuration. New York: ACM, 2010: 37-44

[4]Open Network Foundation. OpenFlow Switch Specification Version 1.2[S]. Reston, VA: The Internet Engineering Task Force, 2011

[5]Castro M, Liskov B. Practical Byzantine fault tolerance and proactive recovery[J]. ACM Trans on Computer Systems, 2002, 20(4): 398-461

[6]Correia M, Costa P, Pasin M, et al. On the feasibility of Byzantine fault-tolerance mapreduce in clouds-of-clouds[C] //Proc of the 31st Reliable Distributed Systems. Piscataway, NJ: IEEE, 2012: 448-453

[7]Casado M, Koponen T, Ramanathan R, et al. Virtualizing the network forwarding plane[C] //Proc of the ACM Workshop on Programmable Routers for Extensible Services of Tomorrow. New York: ACM, 2010: 8-17

[8]Shin S, Porras P A, Yegneswaran V, et al. FRESCO: Modular composable security services for software-defined networks[C] //Proc of the ISOC Network and Distributed System Security Symp. New York: ACM, 2013

[9]Hu Yannan, Wang Wendong, Gong Xiangyang, et al. Control traffic protection in software-defined networks[C] //Proc of Global Communications Conf. Piscataway, NJ: IEEE, 2014: 1878-1883

[10]Jagadeesan N A, Pal R, Nadikuditi K, et al. A secure computation framework for SDNs[C] //Proc of the 3rd Workshop on Hot Topics in Software Defined Networking. New York: ACM, 2014: 209-210

[11]Hu Hongxin, Han W, Ahn G, et al. FLOWGUARD: Building robust firewalls for software-defined networks[C] //Proc of the 3rd Workshop on Hot Topics in Software Defined Networking. New York: ACM, 2014: 97-102

[12]Li He, Li Peng, Guo Song, et al. Byzantine-resilient secure software-defined networks with multiple controllers in cloud[J]. IEEE Trans on Cloud Computing, 2014, 2(4): 436-447

[13]Wang Yongjian, Pei Xiang, Li Tao, et al. Nova-BFT: A replicated state machine protocol supporting multiple fault models[J]. Journal of Computer Research and Development, 2011, 48(7): 1134-1145 (in Chinese)(王永剑, 裴翔, 李涛, 等. Nova-BFT: 一种支持多种故障模型的副本状态机协议[J]. 计算机研究与发展, 2011, 48(7): 1134-1145)

[14]Yung M. The mobile adversary paradigm in distributed computation and systems[C] //Proc of the 2015 ACM Symp on Principles of Distributed Computing. New York: ACM, 2015: 171-172

[15]Hock D, Hartmann M, Gebert S, et al. Pareto-optimal resilient controller placement in SDN-based core networks[C] //Proc of the 25th Teletraffic Congress. Piscataway, NJ: IEEE, 2013: 1-9

[16]Hu Yannan, Wang Wendong, Gong Xiangyang, et al. On reliability-optimized controller placement for software-defined networks[J]. China Communications, 2014, 11(2): 38-54

[17]Internet2 Open Science. Scholarship and services exchange[OL]. [2015-12-10]. http://www.internet2.edu/network/ose

[18]Medved J, Varga R, Tkacik A, et al. Opendaylight: Towards a model-Driven SDN controller architecture[C] //Proc of the 2014 IEEE Int Symp on Network. Piscataway, NJ: IEEE, 2014: 1-6

[19]Bessani A, Sousa J, Alchieri E. State machine replication for the masses with BFT-SMaRt[C] //Proc of 2014 Annual IEEE/IFIP Int Conf on Dependable Systems and Networks. Piscataway, NJ: IEEE, 2014: 355-362

[20]Sherwood R, Yap K. Cbench controller benchmarker[J]. Control Engineering Practice, 2011, 19(11): 1253-1265

Research on Improving the Control Plane’s Reliability in SDN Based on Byzantine Fault-Tolerance

Li Junfei, Hu Yuxiang, and Wu Jiangxing

(National Digital Switching System Engineering & Technological R&D Center, Zhengzhou 450002)

Software defined network (SDN) proposes the architecture of separating the control logic and forwarding devices in networks, which brings the open API for freely programing and makes the network management more fine. However, while the centralized control of SDN brings innovation and convenience for network applications, it also brings other problems, for example the reliability problem and the scalability problem simultaneously. For the problem of control plane’s reliability in SDN, the method that voting deals with the same OpenFlow messages by combing multiple controllers to a quorum view is proposed to tolerate Byzantine faults, which is different from the current OpenFlow protocol. Firstly, we concretely explain the network structure, workflow and exception handling in the application of Byzantine fault-tolerance algorithm with the feature of SDN, and establish the analytical model of multi-controller’s deployment. Secondly, we design a heuristic algorithm to solve the problem of multi-controller’s deployment. Finally, to verify the fault tolerance method and deploy algorithms by simulation, experimental results show that this method can effectively deal with controllers’ faults, improving the reliability of the control layer, but it will sacrifice the system’s performance at some level. Meanwhile, the deployment algorithm can effectively reduce the transmission delay of processing OpenFlow request.

software defined network (SDN); OpenFlow; Byzantine fault tolerance; reliability; controllers’ deployment

Li Junfei, born in 1989. PhD candidate. His main research interests include SDN and network security.

Hu Yuxiang, born in 1982. PhD and associate professor. His main research interests include the next generation information network.

Wu Jiangxing, born in 1953. Professor and PhD supervisor. His main research interests include network architecture and security.

2016-01-26;

2016-08-17

国家自然科学基金项目(61521003) This work was supported by the National Natural Science Foundation of China (61521003).

TP393

猜你喜欢
拜占庭视图交换机
拜占庭元素的艺术特征及在现代服装设计中的应用
拜占庭帝国的绘画艺术及其多样性特征初探
更换汇聚交换机遇到的问题
基于地铁交换机电源设计思考
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
缔造工业级的强悍——评测三旺通信IPS7110-2GC-8PoE工业交换机
《西方史学通史》第三卷“拜占庭史学”部分纠缪
Django 框架中通用类视图的用法