看的书本是《软件定义网络》-----SDN与OpenFlow解析
第三章 OpenFlow
ONF:由一些服务商成立的开放网络基金会(Open Networking Foundation),是一个非营利性组织
ONF来商业化、标准化和促进在生产网络中使用OpenFlow。
OpenFlow是一组协议和API,本身不是一个产品,甚至不是一个产品的功能。
OpenFlow模型的关键组件已至少成为SDN常见的定义的一部分,主要表现在以下方面:
- 控制平面和数据平面的分离(对于ONF来说,控制平面是对逻辑上集中的控制器系统的管理)
- 在控制器和网元设备上的代理之间使用一个标准协议,用于转发状态的实例化
- 通过现代的、可扩展的API,以集中的视图来提供网络可编程性。
- 一个是线路协议,用于建立控制回话,定义了用于对流的修改(flow mods)进行交互和对统计数据进行收集的消息结构,并定义了一个交换机(端口和流表)的基本结构
- 另一个是配置与管理协议of-config,它基于NETCONF来给特定的控制器分配物理的交换机端口,并定义高可用性和控制器连接失败时的行为
在OpenFlow流表项里,整个数据分组头(至少第二层和第三层的字段)可以用于
匹配和
修改操作
OpenFlow与分布式IP/MPLS模型相比,在运行者所能控制的广度上有着很明显的差异(OpenFlow有11元组的匹配空间),下面简短的列出了控制广度的可能性
- 因为在OpenFlow匹配指令中的掩码能力,网络可以模拟基于IP目的地址的转发行为。
- 在二层和三层上,网络都可以表现出基于源/目的的路由行为
- OpenFlow的数据分组匹配能力目前还没有其他标准能做到,这使其在替代策略路由或分布式控制环境中其他匹配/转发机制方面非常强大
OpenFlow协议通过EXPERIMENTER扩展(扩展可以是公共的,也可以是私有的)来实现对控制消息、流匹配字段、计量表操作、统计数据的扩展,以及厂商特定的扩展
OpenFlow支持
physical、
logical、和
reserved的端口类型(分别对应
物理的、
逻辑的和
预留的端口类型),这些端口被用作入口、出口或双向结构
LOCAL
仅用于出端口,该逻辑端口允许OpenFlow的应用程序访问网元设备的主机操作系统的端口(进而访问进程)
NORMAL
仅用于出端口,该逻辑端口允许交换机像一个传统的以太网交换机那样运作
FLOOD
仅用于出端口,该逻辑端口使用网元设备的复制引擎来把数据分组发送到所以标准(费预留)端口。FLOOD与ALL不同,ALL端口包含入端口。FLOOD利用了网元设备的
数据分组复制引擎
CONTROLLER
允许转发数据分组的流规则(通过控制通道)从数据路径转发数据分组到控制器。这就启动了PACKET_IN和PACKET_OUT行为。