概述
产生原因
- 传统网络
- 管理困难、配置麻烦。
- SDN
- 将控制层面从底层路由器和交换机中分离。
- switches仅作为转发设备。
网络架构
- 一个OpenFlow交换机有1个或多个流表。
- 流表中的规则匹配流量的子集,并执行相应操作。
- 流表由控制器下发到转发设备。
- 转发决策是基于流的,而不是基于目的的。
- 流:源和目的之间的数据序列。
- 控制逻辑是给到控制器的。
- 控制器:运行在服务器上的软件平台。
术语
名称 | 简称 | 意义 |
---|---|---|
Forwarding Device | FD | 数据平面的转发设备 |
Data Plane | DP | FD互联而成的层 |
Southbound Interface | SI | 使CP和DP(通信)形式化 |
Control Plane | CP | 通过SI对FD编程 |
Northbound Interface | NI | 为上层APP提供管理API |
Management Plane | MP | APP的集合,通过NI管理网络 |
自底向上
第一层:设施
- OpenFlow设备匹配表项(新增)。
版本 | 匹配字段 | 统计单位 |
---|---|---|
v1.0 | 入端口 | 表 |
以太网:src,dst,type,VLAN | 流 | |
IPv4:src,dst,proto,ToS | 端口 | |
TCP/UDP:src port,dst port | 队列 | |
v1.1 | Metadata,SCTP,VLAN tagging | 组 |
MPLS:label,traffic class | 动作桶 | |
v1.2 | OpenFlow Extensible Match | |
IPv6:src,dst,flow label,ICMPv6 | ||
v1.3 | PBB,IPv6扩展头 | flow meter(band) |
第二层:南向接口
- OpenFlow协议提供3个信息源给网络操作系统。
- 当链路或端口发生变化时,转发设备会向控制器发送基于事件的消息。
- 流量统计由转发设备产生,由控制器收集。
- 当转发设备不知道如何处理新的传入流或因为在流表的匹配条目中有一个显式的“发送给控制器”动作时,packer-in消息由转发设备发送给控制器。
这些信息通道是向网络操作系统提供流级信息的必要手段。
第三层:网络虚拟管理
划分网络
FlowVisor是SDN虚拟化的早期技术之一。
- FlowVisor的基本思想是允许多个逻辑网络共享相同的OpenFlow网络基础设施。
- 为此,它提供了一个抽象层,使基于现成的支持openflow的交换机对数据平面进行切片变得更容易,从而允许多个不同的网络共存。
- FlowVisor考虑了5个切片维度:带宽、拓扑、流量、设备CPU和转发表。
- 此外,每个网络切片支持一个控制器,即多个控制器可以在相同的物理网络基础设施上共存。
- 每个控制器只允许作用于自己的网络切片。
- 一般来说,切片被定义为数据平面上的一组特定的流。
- 从系统设计的角度来看,FlowVisor是一个透明的代理,它拦截交换机和控制器之间的OpenFlow消息。
- 它划分了每个交换机的链路带宽和流表。
- 每个片接收一个最小的数据速率,每个来宾控制器在交换机中获得自己的虚拟流表。