李吉良,娄 阳,张学敏
(中国电子科技集团公司第五十四研究所,河北 石家庄 050081)
互联网的快速发展促使了传统网络在功能和结构上变得愈加复杂,传统网络存在的问题也逐渐暴露出来。软件定义网络(Software Defined Networking,SDN)[1]将数据面与控制面分离,采用集中控制方式,具有可编程、整网控制、业务部署快捷及成本低等优势,不仅提升了网络的安全性与服务质量、降低了网络运营与维护的成本,而且使新的服务与应用可以更加快捷地部署到网络中,缩短了新产品的开发周期。
SDN网络中控制器实现控制平面功能,控制面是SDN架构的核心层,负责收集网络状态、计算路由以及下发控制信息给数据平面的数据转发设备,因此,研究控制平面的可靠性、可扩展性和抗毁性十分重要[2-4]。为解决网络管控规模大带来的路由计算量大、资源管控量大的问题,控制器一般采用分布式集群系统。分布式集群系统一般分为垂直分布和水平分布两种方式,把不同的功能部署在不同的分布式节点中并进行并行处理称为垂直分布,相同功能部署在不同的分布式节点中形成一个集群称为水平分布。控制器采用垂直分布和混合分布混合使用的方式,拓扑管理等采用垂直分布方式,网络设备管理、协议处理等功能使用水平分布方式。
当前,基于SDN的广域网技术是一个比较前沿的研究领域,与数据中心网络不同,广域网的SDN化面临最大的问题是大规模组网以及网络动态变化而导致的网络可靠性降低、抗毁能力差等问题[5-6]。传统SDN控制器(如OpenDaylight[7-8]、ONOS[9]等)采用控制器集群化方式[10],主要为满足数据中心需求而设计,并不适用于广域网中,主要原因如下:
① 数据中心网络为专用网,地域、逻辑较为集中,传输带宽大,因此在大带宽小地域的数据中心网络中控制器之间能够进行大量集群信息的收发。而广域网具有地域覆盖广泛、网络带宽情况复杂等特点,传统SDN控制器并不适用。
② 数据中心网络为满足虚拟机迁移等需求一般采用大二层等技术,没有控制器分级、网络分域的需求。而广域网网络规模大、范围广、流表数量巨大,因此,一般根据区域进行分级分域管理,这样不仅减少了域内的流表信息,而且使得整个网络更便于管理。
③ 传统SDN控制器通过集群冗余方式进行抗毁,由于没有进行分域控制,需要对全网拓扑进行路由计算与网络状态监控,当出现集群节点不可用等情况,其他控制节点的计算与流量负载会产生成倍的增加,不适用于广域网抗毁情况使用。
④ 传统SDN网络控制器与交换机之间控制通道采用带外控制方式,控制器通过专用控制网络与交换机相连,并利用该网络完成与交换机的南向通信。这种带外方式构建的控制通道不仅成本高,而且只适用于数据中心等地域集中的网络,不适用广域网的情况。
综上,现有SDN控制方式并不适用于广域网,为实现SDN在广域网的使用,本文提出基于带内控制方式的分级分域控制器组网架构,并研究在此架构下控制器抗毁[11]组网方法。
SDN分级分域控制器组网架构如图1所示。该架构采用垂直分层水平分域的方式将网络控制层分为两层:上层为域间控制器(Inter Area Controller,IAC),底层为区域控制器(Area Controller,AC)。其中AC负责管理区域(Area)内设备,完成区域内业务转发;上层的IAC则负责对AC进行协同,完成区域间的网络管理和控制工作。AC与IAC之间的东西向接口(AC-IAC)使用控制器互联协议进行通信,AC通过南向接口(Southbound Interface,SBI)管理区域内交换机。每个AC管理网络的一个区域,在一个区域的边缘交换机上既有区域内链路(Area Link,AL),也有区域间链路(Inter Area Link,IAL)。AC通过LLDP协议[12]完成区域内拓扑信息探测并同步至IAC,同时接收IAC执行区域间转发策略;IAC通过AC搜集各区域内拓扑信息,通过LLDP协议探测区域间链路构建全局网络拓扑,为AC控制器提供区域间转发策略。
图1 SDN分级分域控制器组网架构
1.1 带内控制
在广域网络中,节点数量大,节点地域分布广,物理链路种类多,一般不会搭建类似数据中心网络的SDN物理专用控制网络,考虑到南向控制通道承载业务带宽需求相对较小,采用在控制器与交换机中运行传统IP路由协议组建逻辑独立的带内控制网络是可行方式,通过路由方式可以在数据传输网络中隔离出相对独立的控制域Areai,该思路既能保证网络逻辑上集中控制,也能保证网络控制与转发分离。如图1所示,SBI、AC-IAC交互报文在逻辑独立的控制网络中传输,IAC与各AC之间,AC控制器与所辖交换机之间通过传统路由协议建立控制通道连接,它们在逻辑上还是星型关系,控制通道SBI、AC-IAC与转发数据业务共用一张物理网络。
1.2 区域控制器(AC)
AC完成本区域内的链路发现、主机信息管理以及区域内的转发策略计算,并通过控制器互联协议(AC-IAC)协助IAC完成区域间数据转发。
① 链路信息发现
AC通过发送包含交换机ID、端口号、控制器ID和对外端口号信息的LLDP包发现链路。如果AC收到来自另一个区域的LLDP包,那么这个AC会将收到这个包的端口标记为对外端口,并分配一个在区域内唯一的对外端口号。同时AC也需要向IAC转发从其他区域发来的LLDP包,使IAC发现区域间链路与端口关系并记录。
② 主机信息管理
AC负责一个区域的管理,为了能够转发数据包,AC需要收集包括MAC地址、IP地址和子网掩码等主机信息。另外AC还需要异步地向IAC发送主机信息,使IAC能够根据主机信息进行编排和协同决策。
③ 转发策略计算
当出现转发层面无法通过流表正常转发的数据时,该数据会被PacketIn到控制平面进行路径计算。当AC通过区域内信息能够计算出转发路径时,则为区域内数据传输,AC将转发路径以流表形式下发到数据平面进行数据转发;当AC无法通过区域内信息计算出转发路径时,通过AC-IAC上报到IAC进行跨域路径转发计算。
④ 控制器互联协议
AC需要通过AC-IAC向IAC发送区域内节点信息、链路信息、主机信息以及与其他区域相连的对外端口等信息,帮助IAC形成全网网络拓扑;并接收IAC的跨域转发策略,实现跨域转发中的本区域数据转发。
1.3 域间控制器(IAC)
IAC负责管理AC之间的编排和协同,通过收集区域拓扑信息和域间链路(IAL)信息生成全网拓扑,此外还需要收集主机位置信息以保证能够完成全网范围内的业务处理。
① 全局拓扑收集
IAC通过AC-IAC从AC获得区域拓扑信息,并将多区域拓扑信息整合为全网拓扑信息。
② 跨域转发策略计算
接收区域控制器的跨域转发请求,并根据全局拓扑计算跨域转发策略,如图2所示。当能够计算出跨域转发策略时,IAC将跨域转发策略分解成多个区域的区域转发策略,通过AC-IAC将跨域转发策略下发对应的AC中;当不能够计算出跨域转发策略时,IAC通告请求的AC目的不可达,将数据丢弃。
图2 跨域业务实现
SDN分级分域控制器组网架构将网络根据区域进行了划分,将整网的路由计算划分到不同的区域中。首先,采用带内的控制通道组建方式,解决了广域SDN网络集中控制的问题,使得SDN网络能够在大规模、跨地域的广域网进行应用。其次,分域将路由计算与网络状态采集分解到每个域内,单一域内的路由计算量与网络状态变化量相对全网较少,一个或几个区域控制节点失效,不会造成本域中其他集群控制器的负载过大,甚至整个区域所有控制节点均失效,也只影响此区域的数据通信,因此能够有效地降低网络故障影响。另外,本架构中AC只需要掌握本区域网络信息,无需直接与其他区域的AC通信,减少了控制器间的信息交换,提高了SDN在广域网应用的可靠性。
由于SDN将控制面与数据面分离,为实现控制面对数据面的控制,在OpenFlow协议中增加了控制通道,控制通道的断开会导致数据面失去控制不能进行有效的转发。在SDN分级分域控制器组网架构下,当一个交换机相连的所有AC均失联后交换机便不能进行有效的数据转发。为解决此问题,提高SDN分级分域控制器组网架构在广域网应用的抗毁性,数据面采用OpenFlow-hybrid交换机(此种SDN交换机既支持传统IP路由转发,同时也支持OpenFlow协议流表转发),保证在控制通道断开情况下交换机仍有部分路由计算能力,当OpenFlow-hybrid交换机与控制器失联后,采用切换到传统IP路由模式的方法实现其自身的抗毁组网。
2.1 传统区域自组网
在SDN分级分域控制器组网架构下,OpenFlow-hybrid交换机与控制器失联后应独立为单独的一个区域,方便整网进行分级分域控制。
当失联原因为控制器正常、控制链路阻塞等情况导致的控制通道断开时,失联交换机为独立的单个或几个交换机。若有失联交换机相连,失联交换机会自动通过传统路由协议(包括OSPF[13]、IS-IS[14]、RIP[15]协议等路由协议)进行协议交互,实现之间的自动组网,两个独立区域便合并为一个区域,如图3所示。当失联原因为控制器失效,整个域内交换机均产生失联情况下,整个区域的交换机均会切换至传统路由协议方式下运行,并整体组成一个传统IP路由区域。其中,失联交换机之间链路变为区域内链路,失联交换机与未失联交换机相连链路变为域间链路(IAL)。AC可通过下发的LLDP包,动态识别与失联交换机相连的域间链路(IAL)。如果AC收到来自另一个区域的LLDP包,那么这个AC会将收到这个包的端口更改为对外端口,并能根据LLDP包的计数计算是否经过失联交换机,以及经过几个失联交换机。当计算得到经过失联交换机时,AC更新接收到该LLDP包端口为连接失联交换机的对外端口。
图3 传统IP路由区域自组网
2.2 跨域数据传输
为实现失联交换机组成的传统IP路由区域与SDN区域之间的数据互通,IAC需要通过传统IP路由协议获得传统区域内的拓扑与路由情况。因此,AC需要通过AC-IAC将路由协议包发送至IAC进行协议交互与解析。
① 区域控制器(AC)
AC需要向与传统IP路由区域相连的交换机下发路由协议PacketIn到AC的流表,并通过AC-IAC将PacketIn的数据包转发到IAC上,再通过AC-IAC接收IAC发送的传统协议数据包,并转发到接收路由协议的对外端口上。
② 域间控制器(IAC)
IAC通过AC-IAC接收AC上传的路由协议数据包,通过路由协议模块、路由表解析模块进行处理,将处理结果反馈至拓扑管理模块,方便路径计算模块进行路径计算,如图4所示。
图4 跨域控制器(IAC)路由协议处理
路由协议模块接收路由协议报文生成路由表,路由表解析模块根据路由表将传统域内网络信息附加到对应的对外端口上,完成整网拓扑网络信息的更新。如图5所示,传统路由协议模块从SW1上PacketIn的路由协议中获得路由表(目标网络:10.223.223.0/24、20.223.221.0/24 接口:1),从SW2上PacketIn的路由协议中获得路由表(目标网络:10.223.223.0/24、20.223.223.0/24 接口:2)。解析分析得到通过SW1的1接口和SW2的2接口可达10.223.223.0/24网络,将网络拓扑信息上传并存储到拓扑管理中。当路径计算模块需要计算到10.223.223.0/24网络时,可通过拓扑管理模块得到通过SW1的1接口或SW2的2接口到达,跨域控制器只需要下发流表将数据转发至SW1的1接口或SW2的2接口,SW3收到通过1接口或2接口收到数据包后根据传统路由协议转发至目的网络。
图5 路由信息解析
路由表解析模块从拓扑管理模块获得域内网络信息,并将区域网络信息转换为路由信息添加到路由协议模块中。图5中路由表解析模块根据SDN区域内拓扑信息生成SW1路由表(目标网络:20.223.222.0/24 接口:2)和SW2路由表(目标网络:20.223.224.0/24 接口:1),两条路由信息通过路由协议模块与交换机SW3进行路由协议交互,SW3最终生成路由表(目标网络:20.223.221.0/24、20.223.222.0/24 接口:1;目标网络:20.223.223.0/24、20.223.224.0/24 接口2;目标网络:10.223.223.0/24 接口:3),其中路由(目标网络: 20.223.222.0/24 接口:1;目标网络:20.223.224.0/24 接口2)为学习到的新路由表项。当传统域中数据包请求SDN域A中20.223.224.0/24网络时,可通过路由协议转发至SW3交换机的2接口上,之后通过控制器计算下发流表将数据包转发至SW2的1接口上,最终到达目的网络。
通过以上IAC学习传统IP路由区域中路由表、IP路由交换机学习AC中SDN区域网络信息实现两个区域之间的双向通信。当控制通道恢复后,OpenFlow-hybrid交换机通过检查,自动恢复为OpenFlow交换机,脱离所在传统IP路由区域,恢复到相连AC所控制的SDN区域中进行流表转发。本抗毁组网方法能够解决控制通道断开造成的交换机转发失效的问题,提高了SDN在广域网应用的抗毁性。
2.3 实验验证
实验验证平台由控制面和数据面组成,控制面包括3个运行在Ubuntu系统上的控制器,控制器采用扩展了分级分域模块与抗毁模块的ONOS控制器。3个控制器节点,即1个IAC与2个AC组成2层控制网络,如图6所示。数据面由6台OpenFlow-hybrid交换机组成,交换机由改造的OpenVSwitch与Quagga进行仿真,每个AC控制3个仿真交换机。
图6 实验平台拓扑
抓取主机A到主机B的流量,在抓包过程中关闭AC B,触发AC B控制的3个交换机与控制失连。在启用与不启用抗毁模块两种情况下进行流量抓取,得到对比数据如图7所示。 通过对比发现,抗毁模块能在失连后继续保证SDN域与传统域之间的互通,满足控制器失连下的抗毁要求。
图7 实验数据对比
本文提出了面向广域网的SDN分级分域控制器组网架构,解决了SDN在广域网组织运用时控制规模大、计算量大导致的网络不稳定问题,以及控制面和数据面分离导致网络抗毁能力差等问题。该架构将网络控制层分为区域控制层与跨域控制层,提出区域控制器控制域内业务转发,域间控制器控制跨域业务转发的控制策略,采用带内方式承载东西向和南向接口报文的方法,较好地解决了SDN广域网控制通道问题。为提高此架构在广域网应用的抗毁性,研究控制器失联情况下的抗毁组网方法,通过使用OpenFlow-hybrid交换机,将失联OpenFlow交换机临时切换到传统IP路由交换机,通过失联域与SDN域控制器的路由信息交互,完成两域间数据的双向通信,实现分级分域架构下的抗毁组网,对进一步开展基于SDN的广域网研究具有借鉴意义。
[1] ONF White Paper.Software-Defined Networking: The New Norm for Networks,Open Networking Foundation[R],2012.
[2] Baskett P,Shang Y,Zeng W,et al.SDNAN:Software-defined Networking in Ad Hoc Networks of Smartphones[C]∥2013 IEEE Consumer Communications and Networking Conference (CCNC),2013:861-862.
[3] Yeganeh S H,Ganjali Y.Kandoo: A Framework for Efficient and Scalable Offloading of Control Applications[C]∥Proceedings of the First Workshop on Hot Topics in Software Defined Networks.ACM,2012: 19-24.
[4] McCauley J,Panda A,Casado M,et al.Extending SDN to Large-scale Networks[J].Open Networking Summit,2013: 1-2.
[5] Tootoocian A,Ganjali Y.HyperFlow: A Distributed Control Plane for OpenFlow[C]∥In Proc.ACM INM/WREN,2010:3.
[6] McCauley J,Panda A,Casado M,et al.Extending SDN to Large-Scale Networks[C]∥In Proc.ONS,2013:75-79.
[7] Hildrum K,Kubiatowicz J D,Rao S,et al.Distributed
Object Location in a Dynamic Network[J].Theory of Computing Systems,2004,37(3): 405-440.
[8] Medved J,Varga R,Tkacik A,et al.Opendaylight:Towards a Model-driven Sdn Controller Architecture[C]∥2014 IEEE 15th International Symposium on.IEEE,2014: 1-6.
[9] Berde P,Gerola M,Hart J,et al.ONOS: Towards an Open,Distributed SDN OS[C]∥Proceedings of the Third Workshop on Hot Topics in Software Defined Networking.ACM,2014: 1-6.
[10] Demers A,Greene D,Hauser C,et al.Epidemic Algorithms for Replicated Database Maintenance[C]∥Proceedings of the Sixth Annual ACM Symposium on Principles of Distributed Computing.ACM,1987: 1-12.
[11] XIONG Xiaoping.Reliability Analysis and Optimal Design of Wide Area Communication Network in Power System [D].Guangxi:Guangxi University,2013.
[12] HUANG Wunyuan,HU Jenwei,LIN Shucheng. Design and Implementation of Automatic Network Topology Discovery System for International Multi-Domain Future Internet Testbed[J].Journal of Internet Technology,2013 ,14(2):181-183.
[13] OSPF Version2,RFC 2328[DB/OL].Available: https:∥tools.ietf.org/html/rfc2328.
[14] IS-IS Protocol Specification (IETF),RFC 1142[DB/OL].Available:http:∥tools.ietf.org/html/rfc1142.
[15] RIP Version2,RFC 2453[DB/OL].Available: https:∥tools.ietf.org/html/rfc2453.
[16] Dixit A,Hao F,Mukherjee S,et al.Towards an Elastic Distributed SDN Controller[C]∥In Proc.ACM SIGCOMM HotSDN,2013:7-12.
[17] McKeown N,Anderson T,Balakrishnan H,et al.OpenFlow: Enabling Innovation in Campus Networks[J].ACM SIGCOMM Computer Communication Review,2008,38(2): 69-74.