天天看点

基于OpenFlow 的SDN工作流程基于OpenFlow 的SDN工作流程

基于OpenFlow 的SDN工作流程

1.SDN体系结构

主流SDN架构如图1所示,为3+2结构,即3层+2接口,分别是应用层、控制层、数据层、北向接口、南向接口。

基于OpenFlow 的SDN工作流程基于OpenFlow 的SDN工作流程

2.基于OpenFlow的SDN工作流程

OpenFlow 协议作为 SDN 事实上的协议标准基本实现了 SDN 的原型设计思想,是 SDN 领域的重要实例,占有举足轻重的地位,因此,对 OpenFlow 协议工作流程分析是对 SDN 安全模型脆弱性分析的重要基础。

数据平面由交换机等基础网络元素组成 SDN 数据通路,控制平面主要由逻辑中心的控制器构成。当数据平面接收到数据分组后,对其分组头进行解析,并匹配交换机流表,如果没有对应的表项,由控制器根据全网视图、逻辑策略等生成流规则,完成转发。具体工作场景及工作过程如图 2 所示。

基于OpenFlow 的SDN工作流程基于OpenFlow 的SDN工作流程

发送者要与接收者通信时,基本通信流程主要包括以下步骤。

Step1  发送者连接到网络并向SDN 交换机传输相应数据分组。

Step2  SDN 交换机接收数据分组并解析分组头后,在自身流表中查询该数据分组有无对应流规则。如果匹配成功,则直接转发至相应端口;如果匹配失败,则进行下一步骤。

Step3  SDN 交换机根据相应数据分组产生Packet-in 事件,以TCP 协议或TLS 协议(安全传输层协议)将Pakcet-in 数据分组发送至控制器。

Step4  SDN 控制器接收Packet-in 数据分组后,根据相关应用产生相应转发策略,并下发至相应SDN 交换机。

Step5  SDN交换机将流规则加入流表,并将相应数据分组转发至指定接口,从而完成数据转发。

在以上通信过程中,尤其值得注意的是安全传输层协议(TLS),TLS 协议能够为控制器和交换机在OpenFlow 下提供安全传输通道,在安全传输通道下,数据分组消息均采用加密认证技术,使控制器与交换机之间能够进行安全通信。为了便于后续章节对SDN 安全的分析,下面以TLS 1.2协议标准为例概述其基本工作过程,如图3 所示。

基于OpenFlow 的SDN工作流程基于OpenFlow 的SDN工作流程

Step1  SDN 交换机向控制器发出请求(switch hello)以提供协议版本(如TLS 1.2)、用于生成“对话秘钥”的随机数、支持的加密方法和压缩方法等。

Step2  控制器回应交换机请求,其中,controller hello 确定加密通信协议版本等;certificate 向交换机发送控制器证书;controller key exchange 要求交换机继续提供缺省信息;certificate request 请求验证客户端证书合法性;controller hello done 表示消息结束。(通常控制器将以上信息合并发送)

Step3  交换机收到controller hello 后会首先回应控制器(switch key exchange),其中,certificate为自身证书信息;certificate verify 验证控制器端证书;change cipherspec 表明交换机已协商好加密套件状态。

Step4  控制器完成加密套件状态。

Step5  控制器与交换机进行加密传输。通过以上步骤可以看出TLS 协议握手认证过程较为繁琐,因此,OpenFlow 1.3 将TLS 设置为可选择选项,从一定程度上增加了SDN 的风险性,后续章节会进行具体分析,在此不再赘述。

参考文献:王涛, 陈鸿昶, 程国振. 软件定义网络及安全防御技术研究[J]. 通信学报, 2017(11):137-164.

继续阅读