SDN和openFlow简介
1 首先从概念上了解SDN和openFlow。
1)什么是SDN?
SDN定义了一种全新的控制平面集中化方法,将控制平面功能从网络设备转移到中心设备或集群中,使转发平面和控制平面相分离,将控制面功能从网络设备中释放出去,允许设备执行纯粹的转发面功能。优势:可编程性及自动化、支持集中控制、多厂商和开放式架构、简化网络设备。
2)什么是openFlow?
控制器和转发设备之间的通信是需要某种协议来完成的,从SDN控制器的角度来看,可以将这种协议分为北向协议和南向协议,南向协议用于控制平面和转发平面的通信。openFlow则是一种常见的南向协议,它是业界第一个用于SDN控制器和网络设别之间的通信并对转发平面进行编程的开源控制协议。openFlow 协议运行在控制器SDN控制的交换机或其他实现 openFlow Api的设备之间,协议运行在TCP之上。openFlow负责在设备上维护被称为流表的信息,流表中包含了如何转发数据的相关信息。在下面也会简单介绍流表在转发中的作用及优势。
2 openFlow体系结构
下面以一张简单的图来说明一下openFlow体系结构,如下图所示。
图1-1 openFlow体系结构
图中的流表是指匹配加动作转发的表项,在openFlow中称为流表。看一下openFlow1.0流表的分组匹配字段。
图1-2 openFlow1.0 流表的分组匹配字段
匹配:如图1-2所示,openFlow的匹配抽象允许对来自三个层析的协议首部所选择的字段进行匹配。
动作:每个流表项都有零个或多个动作列表,最常见的有转发、丢弃和修改字段。
3 openFlow匹配加动作场景举例
通过一个实例,来简单说明流表以及其作用。下图所示为一个网络场景,该网络具有六台主机、三台分组交换机,每台分组交换机具有4个本地接口。
图1-3 网络拓扑图
- 简单转发行为:来自h5或h6发往h3或h4的分组从s3转发到s1,然后从s1转发到s2。
S1中的流表如下:
S1流表 |
|
匹配 |
动作 |
Ingress port = 1 ; ip src = 10.3.*.* ; ip dst = 10.2.*.* |
Forward(4) |
...... |
...... |
S2中的流表如下:
S2流表 |
|
匹配 |
动作 |
Ingress port = 2 ; ip dst = 10.2.0.3 |
Forward(3) |
Ingress port = 2 ; ip dst = 10.2.0.4 |
Forward(4) |
...... |
...... |
S3中的流表如下:
S3流表 |
|
匹配 |
动作 |
ip src = 10.3.*.* ; ip dst = 10.2.*.* |
Forward(3) |
...... |
...... |
- 负载均衡行为:其中来自h3发往10.1.*.*的数据报经过s1和s2之间的直接链路转发,与此同时来自h4发往10.1.*.*的数据报经过s2和s3(于是再从s3到s1)之间的链路转发。注意到这种行为不能通过基于ip的目的地转发取得。
S1中的流表如下:
S1流表 |
|
匹配 |
动作 |
Ingress port = 1 ; ip src = 10.2.0.4 |
Forward(2) |
Ingress port = 4 ; ip src = 10.2.0.3 |
Forward(2) |
Ingress port = 1 ; ip src = 10.2.0.4 |
Forward(3) |
Ingress port = 4 ; ip src = 10.2.0.3 |
Forward(3) |
...... |
...... |
S2中的流表如下:
S2流表 |
|
匹配 |
动作 |
Ingress port = 3 ; ip dst = 10.1.*.* |
Forward(2) |
Ingress port = 4 ; ip dst = 10.1.*.* |
Forward(1) |
...... |
...... |
S3中的流表如下:
S3流表 |
|
匹配 |
动作 |
Ingress port = 4 ; ip src = 10.2.*.* |
Forward(3) |
...... |
...... |
- 防火墙行为:s2仅希望接受来自与s3相连的主机所发送的流量。
S2中的流表如下:
S2流表 |
|
匹配 |
动作 |
Ip src = 10.3.*.* ; ip dst = 10.2.0.3 |
Forward(3) |
Ip src = 10.3.*.* ; ip dst = 10.2.0.4 |
Forward(4) |
...... |
...... |
从上述这几种简单场景中,也可以看出通用转发(匹配加动作表项将转发一般化)的多样性和优势。
参考:
- 《网络虚拟化技术详解》
- 《计算机网络自顶向下方法》