谢津 李勇 郑墨泓 张大明
(中国电子科技集团公司第七研究所 广东省广州市 510310)
SDN 是网络虚拟化的一种实现方式,它将控制面从传统的路由交换设备中剥离出来,可通过网络操作系统采用软件编程控制网络,使转发与控制分离。SDN 网络为集中式的网络控制,包括SDN 控制器和SDN 交换机,其组网通过控制器控制内部交换节点之间的流表转发完成。SDN 打破了传统电信设备软硬件一体化的封闭模式,简化和加速网络的部署、管理、升级、自动化,具有控制灵活、有效降低设备负载等优点。
为了适应带宽不足、网络拓扑变化频繁、抗毁要求较高的机动通信网络,SDN 技术应进行相应的改进。设计改进SDN 受控转发回落机制,提出基于流表激活的回落机制、和基于邻居状态的流表回落触发机制,既保障软件定义控制平面因链路临时短暂通断流表的健壮,又保障转发面的流表能够在控制器节点失联或链路断开条件下的快速回落,支持软件定义控制平面失效后的网络平稳降级。
目前国外新一代网络架构以SDN技术为研究主流方向。SDN 的概念核心是控制转发分离,转发设备标准化,控制面集中化,所有控制功能可以通过集中的控制面进行编程实现而无需升级转发面。SDN 架构包括转发面、控制面和应用平面。
SDN 的特征有多种描述角度,应用于不同的专业网络时也可能呈现不同的特征,但最基本的共性特征有以下四个:
(1)水平集成、控制与转发分离及软硬件解耦。解耦后的软件和硬件可以分别独立发展,软件可以实现灵活的控制面功能,满足用户多元化需求,还可以快速部署网络及网络功能和参数,如路由、安全、策略、流量工程、QoS 等,快速调度带宽等资源,提升链路利用率。硬件成为简单哑资源,专注转发,可采用通用廉价的IT 设备,减少设备种类和专用平台,大幅降低硬件成本,简化运维管理。
(2)网络虚拟化。SDN 通过将转发过程抽象为流表,控制器直接控制流表,屏蔽了底层硬件,实现了网络虚拟化,物理硬件被淡化为资源池,不仅可以按需灵活和快速分配以及相互隔离,而且可望显著减少硬件数量及其连带的建设和运营成本。事实上,网络虚拟化代表了未来网络构建方式的根本性变化。当然,网络虚拟化技术可以独立于SDN 部署,但若能与开放和灵活的SDN 架构相结合,则将相得益彰,好上加好。
(3)逻辑上集中控制。SDN 使得使用者具有全网视野,掌握跨网、跨层、跨域、跨技术和跨厂商的全局信息(包括拓扑和网络状态等),有望最佳地利用全网的资源,提升网络性能(网络的收敛速度和时延特性等),确保网络系统路由和性能的可预测,并希望能提供一些全新的网络功能。
(4)开放性和软件编程接口。SDN 打破了传统电信设备软硬件一体化的封闭模式,有望建立和利用更广泛、开放和强壮的产业链。采用软件编程接口后,可以通过编程直接而快速地决定网络连接和网络功能,不必对一个个网络烟囱群和大量硬件盒子进行耗时费力的手动配置,这将极大地简化和加速网络的部署、管理、升级、自动化,有利于网络和业务的持续演进和不断创新。简言之,SDN/NFV 完美地结合了快速、高效、基于分组的本地决策机制和整体的、基于流的集中控制决策机制。
Openflow 交换机作为应用最广泛的SDN 交换机,路由流表、安全通道和OpenFlow 协议三部分组成。安全通道是连接OpenFlow 交换机到控制器的接口。控制器通过这个接口控制和管理交换机,同时接收来自交换机的事件以及向交换机发送数据包。OpenFlow 交换机接收到数据包后,首先在本地的流表上查找转发目标端口。如果没有匹配,则把数据包转发给OpenFlow 控制器,由控制器决定转发端口或丢弃。交换机和控制器间的所有通信信息必须按照OpenFlow 协议规定的格式来执行。如图1 所示。
图1 :基于OpenFlow 的SDN 网络架构
在传统SDN 网络中,由于基础设施充足,链路带宽充足,节点移动性较弱,其SDN 失效和链路故障判断方法具有以下缺点:
(1)需要第二台或多台SDN 控制器,或需要多台SDN交换机,且故障诊断方法复杂,设计心跳检测技术、镜像处理、或额外分配内存区域、添加额外的拓展接口,实现复杂度高;
(2)需要进行多次额外的通信,并且没有考虑节点移动性强、网络动态拓扑的特点,例如要求发送业务流量的特征参数、探测发包个数等,维护开销极大;
(3)没有考虑大部分SDN 交换机没有直连SDN 控制器的情况,部分采用SDN 交换机对SDN 控制器进行故障诊断的方法将失效;
(4)部分研究仅针对SDN 集群中的控制器或交换机。
其故障恢复具有以下缺点:
(1)侧重考虑重新选举SDN 控制器,或新的SDN 控制器如何快速获知网络信息,要求具有备份的SDN 控制器或第二SDN 控制器,并且大部分需要预先上传网络信息,以便于新的SDN 控制器快速获得相关网络信息,对软件和硬件要求较高,实现较为复杂;
(2)当部分研究考虑流表老化机制时,仅适用于带宽充足的环境,维护开销较大,例如需要增加与报文计数相关的开销,并且没有同时考虑转发路径回落,只能防止数据不按已失效的原路径转发,但并未形成新的转发路径,转发业务仍然无法正常进行;
(3)未考虑混合控制机制,尚未与基于混合控制机制的系统相关的转发路径回落方法,抗毁性较弱。
显然,传统方法没有考虑混合控制机制,并且没有考虑带宽不足、节点移动性较强、低功耗的网络环境,并且其故障恢复方法较为复杂,计算量大,实现复杂度高,维护开销极大,不适用于复杂地形下网络拓扑变化频繁、抗毁要求较高的机动通信网络。
目前国内SDN 控制器故障诊断,根据执行故障诊断的对象,可分为两种方法,采用其它SDN 控制器对当前控制器进行故障判断,或采用SDN 交换机对其进行故障判断。大部分传统方法着重于重新选举SDN控制器或切换控制器,其机制较为复杂,并且要求系统配备了备份的SDN 控制器或第二SDN 控制器。另一部分研究侧重考虑新选举的控制器如何快速获知当前网络信息适合于上述考虑重新选举控制器的方法共同使用。几乎没有研究采用流表老化处理和转发路径回落的方式进行故障恢复。
面向复杂地形的机动通信网络的SDN 受控转发回落机制,其特征在于,针对采用混合控制机制的系统,提出基于流表激活的回落机制、和基于邻居状态的流表回落触发机制;其中,基于流表激活的回落机制用于首节点检测SDN 控制器是否失效,并在SDN 控制器失效时,各节点启动本地流表删除过程,转发路径回落,重新采用路由转发;基于邻居状态的流表回落触发机制用于判断链路是否断开,当链路断开时,在无需SDN 控制器进行信息传输的前提下,使各节点进行流表老化,并通知SDN 控制器,使其重新进行路径规划,假如SDN 控制器已重新规划路径,下发新流表,则采用流表转发,否则,转发路径回落,采用路由转发。
系统包含SDN 控制器和SDN 交换机,每个SDN 交换机为一个节点,仅首节点与SDN 交换机直接连接,节点间形成链路。实现方案架构图如图2 所示。
图2 :方案架构图
本研究的关键点在于:
(1)首次提出面向复杂地形下高抗毁机动通信网络的SDN 受控转发回落机制,考虑了混合控制机制,抗毁能力强,系统稳定性好,考虑了带宽不足、轻量化和节点移动性强的应用环境。
一方面,该SDN 受控转发回落机制考虑混合控制机制,即流表转发和路由转发,当SDN 控制器失效或链路断开后SDN 控制器未能及时规划新路径,即无法采用流表转发时,能够进行转发路径回落,采用路由转发,使系统抗毁能力强,系统稳定性好。另一方面,仅基于SDN 控制器触发的流表激活消息和邻居间的握手机制判断SDN 控制器是否失效,链路是否断开,故障诊断方法简单,无需额外分配内存区域,无需额外的拓展接口,适用于节点移动性强并且带宽不足的条件,有利于实现系统轻量化。
(2)本研究所述的基于流表激活的回落机制采用流表激活消息判断SDN 控制器是否故障,节省开销。
基于流表激活的回落机制通过首节点在n个周期内是否收到SDN 控制器触发的流表激活消息,判断SDN 控制器是否失效;并且当包括首节点在内的各节点在n个周期内无法接收到流表激活消息时,自动删除流表。上述机制无需专门的消息通知节点进行流表删除,协议实现简单,节省开销。
(3)基于邻居状态的流表回落触发机制考虑双重触发机制,即包括基于路由的邻居信息快速触发流表回落和基于激活信息的流表回落。
基于邻居状态的流表回落触发机制用于检测链路是否断开,并在链路断开的情况下进行流表老化处理。其中,基于路由的邻居信息快速触发流表回落采用邻居间握手,当n个周期内没有收到触发消息,则该链路断开;基于激活信息的流表回落采用SDN 控制器触发流表激活消息,并由首节点进行沿途节点流表激活,当n个周期某SDN 交换机未收到触发消息,则该链路断开。上述机制能在max{nT+m,nT+m}时间内,判断某链路是否断开,迅速通知SDN 控制器重新计算路径,其中m与断开链路的上一跳在拓扑中的位置和时延有关,m与断开链路的下一跳在拓扑中的位置和时延有关。
基于流表激活的回落机制采用首节点接收SDN 控制器的流表激活信息,并进行沿途节点流表激活;当SDN 控制器失效时,首节点无法收到流表激活信息,则无法进行沿途节点流表激活,则各节点流表老化时间到期,删除本地流表;节点间无需进行任何二次信息传输的前提下,各节点启动本地流表删除过程,转发路径回落,采用路由转发。
工作流程如图3 所示。
图3 :适应机动通信网络混合SDN 受控转发回落机制工作流程图
基于流表激活的回落机制包括以下工作步骤:
(1)控制器以T(T∈N)为周期触发一个流表激活信息给流表首节点;
(2)假如流表首节点在n个T周期内未收到流表激活消息,进入步骤3,否则,SDN 控制器未失效,进入步骤6;
(3)SDN 控制器失效,各节点的流表老化时间到期;
(4)各节点的流表激活代理删除转发面的流表;
(5)转发路径回落,采用路由转发;
(6)SDN 受控转发回落结束。
基于邻居状态的流表回落触发机制包括基于路由的邻居信息快速触发流表回落和基于激活信息的流表回落,考虑双重触发机制;该回落触发机制在链路断开时通知SDN 控制器,并在无需SDN 控制器进行二次信息传输的前提下,使各节点进行流表管理。
基于路由的邻居信息快速触发流表回落为:采用节点间路由邻居握手,当本节点检测到与邻居之间的链路断开后,触发本地流表管理机制;一方面进行前向触发回落,链路断开处的上一跳依次通知前向节点进行流表老化处理,删除旧流表,并由首节点通知控制器该条流表已回落;另一方面进行后向触发回落,链路断开处的下一跳通知后续的节点进行流表老化,删除其本地流表;假如SDN 控制器已重新规划路径,下发新流表,则采用流表转发,否则,转发路径回落,采用路由转发。
基于邻居状态的流表回落触发机制工作步骤如下:
(1)SDN 交换机以T(T∈N)为周期发送触发消息给邻居,并且控制器以T(T∈N)为周期触发一个流表激活信息给流表首节点,首节点进行沿途节点流表激活;
(2)假如某SDN 交换机在n个T周期内未收到触发消息,或当激活信息发送到中间断开节点,在向后续节点发送时,检测到与后续节点断开,进入步骤3,否则,已分配链路未断开,进入步骤7;
(3)进行前向触发回落,链路断开处的上一跳依次向前通知各链路断开处的前向节点,各前向节点的流表激活代理删除流表,并由首节点通知SDN 控制器;
(4)链路断开处的后续节点通过流表激活代理删除流表,或链路断开处的各后向在流表老化时间到时,删除流表;
(5)SDN 控制器重新进行路径计算;
(6)假如SDN 控制器已重新规划路径,下发新流表,则采用流表转发,否则,转发路径回落,采用路由转发;
(7)SDN 受控转发回落结束。
本文提供的方法,对比于传统的SDN 控制器和链路故障诊断和流表老化机制,存在明显优势,总结为以下3 个方面:
网络拓扑变化频繁将导致链路频繁断开和接通,大量用于故障诊断、通知流表老化处理、通知SDN 控制器重新计算路径的控制消息将导致维护开销极大,甚至带宽不足的条件下无法实现。本研究提供的方法无需额外发送与业务无关的消息以及专门用于通知节点删除流表的消息,无需特殊的协议,开销较小,支持带宽不足、网络拓扑变化频繁条件下的SDN 受控转发回落。
本研究提供的方法仅通过流表激活消息和邻居握手进行故障诊断和流表老化处理,无需复杂的计算,无需额外分配内存区域,无需额外的拓展接口,降低硬件成本,实现复杂程度较低,满足系统轻量化要求,适用于复杂地形下基础设施不足的环境。
一方面,本研究考虑了混合控制机制,当SDN 控制器被毁或无法进行流表转发时,进行转发路径回落,采用路由转发;另一方面,本研究提供的方法采用双重保障进行链路故障诊断和流表老化处理,并通知SDN 控制器重新进行路径计算,能在较短的时间内删除旧流表,并下发新流表,在链路通断频繁的条件下迅速形成新的转发路径;因此,本研究所述的方法抗毁性强,保障业务传输能力。
本文介绍的混合SDN 控制机制,该控制回落机制包括基于流表激活的回落机制和基于邻居状态的流表回落触发机制,实现采用混合控制机制,适用于机动通信网络,考虑了带宽不足、节点移动性强等特征,可用于支持网络动态重组,极大地减小了开销,实现系统轻量化。