SDN 的起源:分布式还是集中式?
谈到 SDN,业内人士必然会提及 “转发、控制分离”。实际上,SDN 的本质一语便可道破:SDN 没有另起炉灶,只是重构了传统网络而已。
从互联网的鼻祖 APRANET 开始,传统网络就采用了分布式架构,通过一系列网络协议传递可达信息。一传十,十传百,从而实现互联互通。这种结构最显著特点就是转发、控制合二为一:各节点决定自己的转发规则;一旦有节点损坏或有新的节点加入,各节点通过网络协议重新学习、收敛,再次实现互通。
- ARP:地址解析协议,通过 IP 地址获取主机 MAC 地址
- OSPF:开放式最短路径优先,用于一个自治域内的一种基于链路状态的路由协议
- RIP:路由信息协议,用于一个自治域内的一种基于距离矢量的路由协议
- BGP:边界网关协议,用于不同自治域间交换路由信息
传统网络
这种 “各自为政” 的方式看似不错,既能抵御部分节点失效的风险,又具有一定的可扩展性。但是,随着互联网的飞速发展,尤其是云计算、大数据等新兴技术的出现,传统网络的瓶颈也逐渐显现,比如:每个节点自主决定转发规则,缺乏整体观念;制定新的网络协议耗时过长等。
为应对上述问题,一些公司从上世纪 90 年开始尝试将转发和控制进行分离。SDN 一词的创立和风靡则归功于斯坦福大学的 Nick McKeown 教授,其推动的 OpenFlow 几乎已成为实际的南向接口标准。
SDN 的网络架构分为三层,从下至上分别是转发面,控制面和应用层。控制面向下的接口为南向接口,负责配置、修改转发规则,其主流标准就是前文提及的 OpenFlow。控制面向上为北向接口,为网络应用提供 API,实现网络的定制化,目前尚没有开放的标准化接口。
SDN 网络
SDN 的现状:精耕细作还是遍地开花?
自从 ONF (Open Networking Foundation,主要推进 SDN 和 OpenFlow 的标准化)于 2011 年成立以来,SDN 基本上朝着两个维度发展:一个维度是 SDN 关键组件,包括转发面、控制面和南向接口的演进;另一个则是向其它应用领域的延伸。
转发面
由于是对传统网络的重构,转发面的最初形态自然与传统网络设备类似。随着数据中心和网络虚拟化的兴起,软件作为一种新的转发面开始出现,代表之一是开源社区的 Open vSwitch。值得一提的是,与 DPDK(由英特尔联合第三方软件开发公司推出的一款数据面开发套件)结合之后,Open vSwitch 在某些应用场合展示了优异的线性交换能力,逼近硬件的性能,而软件在可重配可扩展方面的潜力却是硬件无法比肩的,具有非常广阔的应用前景。
控制面
作为 SDN 的中枢大脑,控制面根据网络运营商定义的策略配置网络拓扑和转发规则。比较著名的控制器有 OpenDayLight(目前成熟度最高的开源平台)和 ONOS(面向运营商领域,在集群、可靠性和性能方面做了增强)。
南向接口
南向接口的发展基本上呈现 OpenFlow 一枝独秀的局面。OpenFlow 以流表作为配置对象,流表定义了对报文的基本处理,包括匹配(match)、计数(counter)和操作(action)等。高度抽象和易于实现是 OpenFlow 取得成功的关键 。
应用领域延展
在数据中心取得成功后,SDN 开始被应用到其它领域。被 5G 网络架构采用是 SDN 发展史上的又一重要里程碑(虽然 3GPP 将会定义新的南向接口)。在 4G/LTE 设计之初,由于业务不丰富以及用户的数据需求不高,分组核心网被设计成以下架构。从接入网涌入的数据统一汇入服务网关(S-GW)和分组数据网关(P-GW)。
4G/LTE 网络架构
随着 VR/AR,无人驾驶,无人机集群等新应用和新服务不断涌现,用户对数据获取不仅在量(即带宽)上要求更高,在质(即时延)上也提出了明确的要求。LTE 的这种架构已经明显阻碍了新应用和新服务被采用。为了应对这些挑战,3GPP 遵循 SDN“转发、控制分离” 这一基本原则,在设计 5G 网络架构时做出重大改变:数据面下沉 + 控制面集中。
5G 网络架构
在 LTE 时代,分组核心网关的数量屈指可数,而 5G 则会大量采用分布式网关(即上图中的 UPF)。我们在软件交换机 Open vSwitch 的基础上,增加了无线分组数据(主要是 GTP-U 隧道)的封装、解封装、转发以及其它网关功能,完成了业界第一台支持 5G 分布式网关的 SDN 软件交换机,有望在流量导出与分流,移动边缘计算,高可靠、低时延通信等业务中得到广泛应用。
SDN 的未来:演进还是重生?
“转发、控制分离” 这一金科玉律很难撼动,但在 SDN 的关键组件方面,变革似乎难以避免。以南向接口 OpenFlow 为例,1.0 版本仅有 12 个匹配域,而最新的 1.4 版激增到 41 个。随着新协议的加入,如果只做补丁式演进,这一数字必定还会持续增加。
在转发方面,以前文提到的支持 5G 分布式网关的 SDN 软件交换机为例,为支持对无线分组数据的处理,我们曾对 Open vSwitch 进行修改,涉及到 20 多个文件,共计 300 多处。功能升级所需付出的代价不小。
作为 SDN 的演进方向之一,P4(Programming Protocol-Independent Packet Processors)在 2016 年 ACM SIGCOMM 成为了热点之一,多篇关于硬件交换芯片,FPGA 交换设备,软件交换机的文章与之有关。P4 带给我们的变化是:不再拘泥于 MAC/IP/TCP(UDP),可以按需自行定义报文封装格式,利用编译器自动生成硬件或者软件转发面。
SDN 是继续 1.x,还是直接跨入 2.0?是演进还是重生?让我们拭目以待。
本文来自:英特尔中国研究院/雷锋网