SDN的概念介绍和发展
一、SDN的基本介绍
1. 定义
首先引出一个概念: ”可编程网络”,对网络编程,应当满足对转发设备编程:通用、开放、与供应商无关的特性。
SDN理念提出主要围绕着以下三个目的:
- 分离控制平面和数据平面:Separation of control and forwarding functions
- 中心控制:Centralization of control/one control plane controls multiple forwarding devices.
- 用良定义的接口编程网络:Ability to program the behavior of the network using well-defined interfaces。
控制和数据平面的分离,使SDN拥有了中心流控制和网络可编程的特性,从而提升了网络的灵活性,可扩展性,网络的可视性, 并节约开发成本。并用high-level的控制程序来控制网络行为,解决实际网络的问题
2.背景与需求的更迭
2.1 起源
源自高校研究[1]
SDN的理念起源于斯坦福大学的Clean Slate Program,由Nick Mckeown教授领导。
SDN理念的产生可追溯到网络发展的需求驱动,传统网络因为越来越多的新功能添加,带来部署复杂性,使网络变得脆弱,从而导致网络革新速度缓慢。所以,可编程网络设备、中心控制的思想在业界出现。
1980s network control point(AT&T)
- in-band signaling:数据和控制(主要是针对于phone network的声音数据以及控制信号)都通过一个通道传输,没有实现分离。传输频率为确定的2600Hz。缺点是不安全。
- network control point(AT&T):分离信号和声音,发展了phone network,通过减少了在电路上的保持时间而降低了费用,产生了800服务等其他电话服务(例如:N digits from a number, sending and receiving messages, making a billing record).NCP现在还用于800call的路由。
1990s 可编程网络 Active network
DARPA为了加速网络革新快速融合部署新技术,1990s提出了可编程网络的概念。可编程网络指路由器可以对报文执行计算的网络,例如middlebox也是一种active network的例子。active network交换机可以与旧式交换机并存,可编程交换机可以处理报文中的额外信息。
主要包括两种类型:
- capsule:每个消息是一个程序,消息携带程序在交换机或路由器运行。
- 可编程交换机:交换机基于报文头部进行操作,有一点类似SDN的目标。
- 一些相关工程:
(1)ANTS(MIT):报文内除了基本头部还有ANTS头部,JAVA程序
(2)SwitchWare(PENN):可编程交换机,脚本语言,是产生switchlet的推动。
(3)Smart packet(BBN):网络控制
(4)opensignaling(Columbia):报文流处理
(5)Tempset(Cambridge):发明了swichlet但是由于没有“killer apps/enviroment”的驱动(如果需要使用某个应用必须安装某系统,就如云、数据中心和SDN的关系),以及硬件支持成本昂贵(当时都是用ASIC,而现在具有了NPU、TCAM、FPGA等选择),且具有安全性堪忧等问题,active network便没有继续发展。但active network还是从可编程网络方法、报文头部定义了报文内代码和数据的解复用、关注中间件方法的结合这三个方向,为SDN的出现打下了基础。
1990s NFV
在同一个物理基础架构上建立多个逻辑网络拓扑。优点包括了可以通过多个逻辑单元共享数据以及有效隔离资源,提供了可定制性。拥有独立逻辑网络的能力还使它能够在虚拟网络的特定部分上自行运行自定义路由和转发软件。
- Tempset swichlet(Cambridge) 1998
虚拟化交换机,将控制框架从交换机中隔离开来。多个控制器控制一个ATM网络。Switch driver划分端口、带宽和缓存,不同的控制器控制不同的swichlet
- VINI 2006虚拟网络架构
VINI在小规模的实验模拟和真实环境之间,通过虚拟化技术搭建了桥梁,满足了环境使用的可重复性和真实性。可以跑真实的程序,观察网络真实的状态,控制网络,提供各自独立的逻辑实验平台。
同时,VINI将控制平面和数据平面进行分离,控制平面采用XORP实现,数据平面采用CLICK实现,中间接口采用隧道。
- CABO 2007
2.2 发展过程
SDN概念的产生经历了三个阶段:
(1)active network
(2)控制的分离
(3)Openflow API和网络操作系统
2.1讲述了在SDN之前的一些技术,为SDN的诞生带来了动力。在本节,将围绕着报文交换控制的发展历程展开。
将网络控制分离开来具有以下好处:
(1)可以带来更快的革新
(2)更好解释网络行为
(3)更容易引进新的服务
- FORCES 2003
FORCES协议使用多个控制元素(CE)控制多个转发元素(FE),但是新的控制平面,需要提供标准的设计和硬件支持。- routing ctrol platform(RCP)中心控制点 2004
中心控制点监控全局。是利用了IN-BAND协议BGP负责通信。RCP控制BGP,但是受限于BGP协议。虽然如此,RCP还在骨干网中应用针对安全事件或流量清理对流量重定向。
- 2005 4D架构,decision dissemination discovery data
- Ethane 2007
自定义数据平面中的硬件,可能会更轻松地在控制平面中支持更广泛的应用程序。
该项目为企业提供了一种网络体系结构,该体系结构允许"域控制器"直接实施细粒度的网络策略。
域控制器将计算流表。根据域控制器上定义的访问控制策略,应将其安装在企业的每个交换机中。Ethane需要部署自定义交换机。该项目基于OpenWrt,NetFPGA和Linux实施了其中的几种。这种方法的问题在于它需要支持Ethane协议的自定义交换机。- Openflow 2008
Openflow将(flow table)流表安装至交换机,用于控制数据平面的转发。因为大多数的交换机已经支持流表,所以只需要基于Openflow协议设计接口用于控制功能。[7]
SDN在这些年的发展上分为了学术界和工业界两条线,结合各自领域的特点发展了SDN理念的不同方面。[5] 上图由杨泽卫老师总结的SDN在工业界和学术界的两条发展路线。
参考文献
[1]SDN and NFV https://www.sdxcentral.com/articles/contributed/nfv-and-sdn-whats-the-difference/2013/03/
[2]NFV white paper
[3]Security in SDN: A comprehensive survey
[4]SDN发展历程:https://blog.csdn.net/wujiaqicsdn/article/details/91351532
[5]知乎杨泽卫老师回答:SDN发展历程(2017之前)https://zhuanlan.zhihu.com/p/26743976
[6]2008年Nick演讲PPT
[7]coursa SDN课程(Nick Feamster)