-
软件定义网络解决传统网络问题的探究
摘要
SDN
是近年来继云计算后,学术界和产业界最为关注的网络技术。首先介
绍了传统网络存在的
问题;然后介绍了
SDN
的产生背景、体系架构以及关键技
p>
术;最后分析了
SDN
对传统网络问题的解
决。
关键词
:软件定义网络
;
OpenFlow
;
开放网络
第一章
引言
软件定义网络(
Software
Defined Network
,
SDN
)
,是由美国斯坦福大学
CLean State
课
题研究组提出的一种新型网络创新架构,
其核
心技术
OpenFlow
通过将网络设备控制面与数
据面分离开来,
从而实现了网络流量的灵活控制,
为核心网络及应用的创新提供了良好的平
台。
p>
传统网络的世界是水平标准和开放的,
每个网元可以和周边网元进行
完美互联;
计算机
的世界则不仅水平标准和开放,
同时垂直也是标准和开放的,
从下到上有硬件、驱动、
操作
系统、编程平台、应用软件等等,编程者可以很容易地创造各种应用。
和计算机对比,
在垂直方向,
从某个角度来说,
网络是
“相对封闭”
和没有
“框架”
的,
在垂直方向创造应用、部署业务是相对困难的。但
SDN
将在整
个网络(不仅仅是网元)的
垂直方向,让网络开放、标准化、可编程,从而让人们更容易
、更有效地使用网络资源。所
以,
SDN
不能丢掉网络水平方向标准、易互通、节点智能的优势。
第二章
传统网络存在的问题
目前,
随着互联网爆炸式地增长,
除了规模和发展远
超之前所有曾出现的数据网络,
业
务的快速创新也很令人眼花缭
乱。
近年来,
随着各种实时业务如视频语音、
< br>云数据中心和移
动业务的迅速发展,人们突然发现,传统网络已经无法满足当前的
需求:
1
、缺失的体验保证
到目前为止,绝大多数
IP
网络都是基于无连接的,只
有基于大宽带的粗放带宽保障措
施,质量保证和监控基本处于放弃状态。其后果就是,业
务只有连通,而无体验的保证,从
而导致业务质量受损。
2
、低效的业务部署
由于网络和业务割裂,
目前大部分网络的配置是通过命令行或者网管、
由管理员手工配
置的,
本身是一个静态的网络。
当遇到需要网络及时做出调整的动态业务时,
就显得非常低
p>
效,甚至无法实施。
3
、缓慢的业务适应
网络无法满足业务的需求,
需求持续数年的特性和架构调整、
< br>引入新设备,
才能满足新
业务的需求。例如:云数据中心
的虚拟机和虚拟网络运营业务,传统二层的
VLAN
机制无
p>
法满足扩展性,
对交换机设备提出了新承载协议的要求,
此时物理网络设备更加无法及时适
应,靠软件实现的虚拟
< br>Switch
、通过
VxLAN
或
NvGRE
的
Overlay
的方式,才绕过了物理
交换机对的限制。
<
/p>
多年来,
人们确实想出了一些解决问题的办法,
< br>但是常常是解决了一个问题,
另一个问
题又冒出来了。因
为大家忽略了这些问题是传统网络的基本属性决定的,以
IP
为
代表(以
太网也在其列)
的这种业务无需知道网络、
网络也无需知道业务的解耦模式,
造就了互联网
的
快速业务创新,
同时也造成了业务和网络的天然割裂,
不从网络
基础架构入手,
问题很难
得到根本的解决。
第三章
SDN
体系结构
3.1
SDN
的产生背景
SDN
是起源于美国斯坦福大学实验室的研究项目的技术,并不是在其产生时就具有该
名称。
2006
年斯坦福的学生
Casado
M
和他的导师
Mc Keown N
教
授受其研究项目
Ethane
[1]
启
发,提出了
Open Flow
的概念。该项目试图通过一个集
中式的控制器,让网络管理员可以
方便地定义基于网络流的安全控制策略,
并将这些安全策略应用到各种网络设备中,
从而实
现
对整个网络通信的安全控制。在随后的
2008
年,
Mc
Keown
N
等人在
ACM
SIGCOMM
发表了题为
Open
Flow: enabling innovation in campus networks
[2]
的论文。文中首次详细地介
绍
Open Flow
的概念,
即将传统网络设备的数据
平面和控制平面两个功能模块相分离,
通过
集中式的控制器
p>
(
controller
)以标准化的接口
对各种网络设备进行管理和配置。这种网络架
构为网络资源的设计、管理和使用提供更多
的可能性,从而更容易推动网络的革新与发展。
在此基础上,
基
于
Open
Flow
为网络带来的可编程特性,
Mc Keown
教授进一步提出了
SDN
最早的概念
[3]
。
由此可见,<
/p>
SDN
的产生与
Open
Flow
协议密切相关。现在业界普遍将基于
Ope
n
Flow
协议的
SDN
视为狭义
SDN
。
随着
SDN
的发展,越来越多的厂商加入
SDN
的研究行列。由于不同行业
、不同应用
对
SDN
有着各自不同的需
求,
因此在谈论
SDN
时通常也有着不
同的理解。
在网络科研领域,
利用
SD
N
快速地部署和试验创新的网络架构与通信协议;
大型互联网公
司希望
SDN
提供掌
握网络深层信息的
可编程接口,以优化和提升业务体验;云服务提供商希望
SDN
提供网络
虚拟化和自动配置,
以适应
其扩展性和多租户需求;
ISP
希望利用
SDN
简化网络管理以及
实现快速灵活的业务提供;企业网用
户希望
SDN
实现私有云的自动配置和降低设备采购成
本。
基于这些需求,在思科等厂商的推动下,
IETF
、
IEEE
< br>等标准组织去除了
SDN
与
Op
en
Flow
的必然联系,保留了
可编程特性,从而扩展出
SDN
的广义概念,即泛指基于开放接
口实现软件可编程的各种基础网络架构,进而将具备控制转发分离、逻辑集中控制、开放
API 3
个基本特征的网络纳入
SD
N
的广义概念下,目前这一概念的发展由
IETF
主推。
3.2
SDN
的网络架构及关键技术
3.2.1 SDN
的网络架构
p>
图
1
是业界广泛认同的
SDN
模型架构。该模型架构分为
3
层,其中基础设施层主要由
支持
Open Flow
协议的
SDN
交换机组成。控制层主要包含
p>
Open Flow
控制器及网络操作系
统(
network operation system,
NOS
)
。控制器是一个平台,该平台向下可以直接与使用
p>
Open
Flow
协议的交换机
(以下简称
SDN
交换机)
进行会话;
向上,
为应用层软件提供开放接口,
用于应用程序检测网络状态、
下发控制策略。
位于
顶层的应用层由众多应用软件构成,
这些
软件能够根据控制器提
供的网络信息执行特定控制算法,
并将结果通过控制器转化为流量控
制命令,下发到基础设施层的实际设备中。根据上述论述,
Open
Flow
协议、网络虚拟化技
术和网
络操作系统是
SDN
区别于传统网络架构的关键技术。
图
1
SDN
模型架构
3.2.2 OpenFlow
协议
从
SDN
的起源可看出,
Open Flow
协议是
SDN
< br>实现控制与转发分离的基础。业界为了
推动
SDN
发展并统一
Open Flow
标准,
组建了标准化组织开放网络基金会
(
Open
Networking
Fundation
,
ONF
)
[4]
。
目前,
ONF
已成为<
/p>
SDN
标准制定的重要推动力量,其愿景就是使基
于
Open Flow
协议的
SDN
成为网络新标准。自
2009
年
10
月发布
Open Flow
标准第一个版
本以来,
ONF
先后发布了
1.1
、
1.2<
/p>
、
1.3
等版本。
Open
Flow
协议发表的详细情况如表
1
所
示。
表
1
OpenFlow
协议发表情况
发布时间
2011
年
2
月
2011
年
3
月
201
1
年
10
月
2012
年
1
月
2012
年
6
月
2012
年
6
月
2012
年
9
月
版本情况
2009
年
10
月
Open Flow
发布第一个可商用的
1.0
版本
Open
Flow 1.1
增加支持多交换表、群组、虚拟端口以及对
M
PLS
、
VLAN
、
< br>Qin Q
等的支持
ONF<
/p>
成立。截至
2013
年
< br>3
月,已成立工作组
7
个,讨论
组
4
个,成员单位
94
家
ONF
发布
Open Flow 1.
2
,增加对
IPv6
报头各字段的识别
功能
基于
Open Flow
1.2
版的
of-config
1.0
,定义
Open
Flow
数据路径所需基本功能
Open Flow 1.3.0
版,增加重构能力协商、
p>
IPv6
扩展头支持等
发布
of-config
1.1
版,增加对
Open Flow
1.3
版本的支持
Open
Flow1.3.1
版提升版本协商的能力并修改
Open
Flow1.1
的错误
Open F
low
规范主要由端口、流表、通信信道和数据结构
4
部分组成。由于篇幅原因,本文
不对该规范做展开论述,主要介绍
Open Flow
的运行原理。
图
2
反映了
Open
Flow
对数据分组的处理机制。
一个
Open Flow
交换机包括一
个或者多个流表(
flowtable
)和一个组表(
group table
)
。流表
中的每个流条目包括如下
3
个部分。
匹配(
match
)
:根据数据分组的输入端口、报头字段以及前一个流表传递的信息,
匹配已有
流条目。
计数(
counter
)
:对
匹配成功的分组进行计数
。
操作(
instruction
)
:包括输出分组到端口、封装后送往控制器、丢弃等操作。
SDN
交换机接收到数据分组后,首先在本地的流表上查找是否存在匹配流条
目。数据
分组从第一个流表开始匹配,
可能会经历多个流表,<
/p>
这叫做流水线处理
(
pipelinep
rocessing
)
。
流水线处理的好处是允许数据分组被发送到接下来的流表中做进一步处理或者元数据信息< p>
在表中流动。
如果某个数据分组成功匹配了流表中某个流条目,
则更新这个流条目的
“计数”
,
< br>同时执行这个流条目中的“操作”
;如果没有,则将该数据流的第一条报文或报文
摘要转发
至控制器,由控制器决定转发端口。
图
2Op
enFlow
运行原理
3.2.3 FlowVisor
Flow
Visor
是建立在
Open Flow
之上的网络虚拟化平台
[5]
,
引入
Flow Visor
后
Open F
low
网络架构如图
3
所示。
对于控制器而言,
Flow Visor
看起来
就是普通的交换机;
从
Open Flow
交换机的角度来看,
Flow
Visor
就是一个控制器。类比计算机的虚拟化,
Flow
Visor
就是位
于硬件结构元件和软件之间的网络虚拟层。<
/p>
它将物理网络分成多个逻辑网络,
从而允许多个
< br>控制器同时控制一台
Open Flow
交换机,
但是每个控制器仅仅可以控制经过这个
Open Flow
交换机的某一个虚拟网络(即
slice
)
。因此通过
Flow Visor
建立的试验
平台可以在不影响流
的转发速度的情况下,允许多个网络试验在不同的虚拟网络上同时进
行。
网络切片是
Flow Viso
r
管理功能实现的要素,
它是由一组文本配置文件定义的。
p>
文本配
置文件包含控制各种网络活动的规则,
例如允许、
只读和拒绝,
其范围包括流量的来源
IP
地
址、端口号或者数据分组表头信息。通过网
络切片,
Flow Visor
为管理员提供了广泛的定义
p>
规则来管理网络。
由于
Flow
Visor
是建立在
Open Flow
控制器基础上的,
因此,
它与一般的商用交换机是
兼容的。
目前
Flow
Visor
尚处于实验阶段,主要部署在校园网(如斯坦福大学)
。