摘要
189张图表轻松入门
从工作原理到应用实例,一本书掌握OpenFlow协议
图解OpenFlow 内容简介
《图解OpenFlow》从OpenFlow的概要入手,以OpenFlow 1.0规范为核心,详细讲解了OpenFlow的基本机制和结构。为了加深理解,还介绍了实际的设置示例,包括OpenFlow中的LLDP和网络虚拟化等。另外,还讲解了从OpenFlow 1.0到OpenFlow 1.3.2之间版本的主要变化,以及OpenFlow的注意事项和未来的发展动向。
图解OpenFlow 目录
第1章 OpenFlow概要
1.1 OpenFlow的发展历程
1.1.1 OpenFlow的历史
1.1.2 ONF
1.2 有效运用现有硬件,实现高效设计
1.3 所谓OpenFlow,具体是指什么
1.3.1 OpenFlow的网络构成示例
1.3.2 控制面和数据面的分离
1.3.3 控制面的构建方法
1.3.4 数据面的构建方法
1.3.5 OpenFlow控制器和OpenFlow通道
1.3.6 流表
1.4 控制器和交换机的基本动作
1.4.1 OpenFlow交换机的初始动作
1.4.2 Proactive模式设置
1.4.3 Reactive模式设置
1.5 OpenFlow的动作示例
1.5.1 动作示例1
1.5.2 动作示例2
1.5.3 动作示例3
1.5.4 其他动作示例
1.6 不断变化的OpenFlow规范
1.6.1 OpenFlow 1.0 版本以后快速变化的规范
1.6.2 实现OpenFlow 1.3标准化后
1.6.3 本书中对OpenFlow 1.1以上版本的说明
第2章 OpenFlow 1.O的机制
2.1 OpenFlow 1.0中的流表和流表项
2.2 流表项
2.2.1 头字段
2.2.2 计数器
2.2.3 行动
2.3 行动
2.3.1 Forward行动
2.3.2 Drop行动
2.3.3 Enqueue行动(可选)
2.3.4 Modify-Field行动(可选)
2.4 控制器和交换机之间的消息
2.4.1 安全通道的建立
2.4.2 消息格式
2.4.3 安全通道的建立和初始设置
2.4.4 握手
2.4.5 Flow-Mod消息
2.4.6 Packet-In消息
2.4.7 Packet-Out消息
2.4.8 Port-Status消息
2.4.9 Flow-Removed消息
2.4.10 Error消息
2.4.11 Barrier消息
2.4.12 Echo消息
2.5 Open Flow Switch Errata Version 1.0.1
2.6 新规范变化很大,需要注意
第3章 LLDP和OpenFlow
3.1 LLDP和OpenFlow
3.2 LLDP的机制
3.2.1 在LLDP中使用的目标以太网地址
3.2.2 LLDP中使用的3种组播以太网地址
3.2.3 LLDPDU格式
3.3 OpenFlow中有效使用LLDP的方法示例
3.3.1 事先准备
3.3.2 通过Packet-Out消息发送LLDP帧
3.3.3 通过Packet-In消息将LLDP帧发送至OpenFlow控制器
3.4 基于迪杰斯特拉算法的路径计算
第4章 通过实现L2交换机的功能来学习OpenFlow
4.1 通过具体网络设备的实现理解OpenFlow
4.2 中继器HUB
4.2.1 该示例中的网络构成
4.2.2 通过Proactive模式设置实现
4.2.3 将所有数据包Packet-In至OpenFlow控制器的方法
4.3 自学习桥接器
4.3.1 该示例中的网络构成
4.3.2 使用OpenFlow 1.0挑战自学习桥接器
4.3.3 监控ARP并创建流表项
4.3.4 如果将PCA和PCB对调,结果会怎样
4.3.5 通过发送源和目标以太网地址的配对进行管理的方法
4.3.6 在OpenFlow 1.1以上版本中实现自学习桥接器的方法
4.4 Tagged VLAN
4.4.1 该示例中的网络构成
4.4.2 实现TaggedVLAN的设置(OpenFlow交换机1)
4.4.3 实现TaggedVLAN的设置(OpenFlow交换机2)
4.4.4 该示例中的注意事项
第5章 Open Flow与虚拟化
5.1 服务器虚拟化和网络虚拟化
5.1.1 服务器虚拟化
5.1.2 动态迁移
5.1.3 多租户
5.1.4 网络虚拟化
5.2 基于OpenFlow的网络虚拟化的实现方法示例
5.2.1 使用VLAN ID的方法
5.2.2 使用物理端口/逻辑端口的方法
5.2.3 OpenFlow控制器的实现要点
5.2.4 其他方法
5.3 FlowVisor
5.3.1 FlowVisor概要
5.3.2 FlowVisor和OpenFlow控制器之间的OpenFlow通道
5.3.3 FlowVisor的串联
5.3.4 FlowVisor和虚拟网络
5.3.5 设置FlowVisor时的注意事项
第6章 通过用例考察OpenFlow
6.1 使用以太网地址的用户管理
6.2 ECMP
6.2.1 该示例中的网络构成
6.2.2 通过发送源地址区分时
6.2.3 通过TCP端口号区分时
6.2.4 轮询方式
6.3 简易负载均衡
6.4 选择性端口映射
6.4.1 单纯的端口映射
6.4.2 仅映射特定的TCP端口
6.4.3 OpenFlow 1.1的“组”和映射
6.4.4 从多个OpenFlow交换机持续进行选择性映射并转发至监控设备
6.5 重定向至安全产品
6.6 与虚拟路由近似的动作(多层交换机)
6.6.1 该示例中的网络构成
6.6.2 同一子网内的数据包转发处理
6.6.3 经过路由器的数据包转发处理
6.6.4 作为虚拟路由器响应ARP请求
6.6.5 虚拟路由器使用ARP解决以太网地址
6.6.6 TTL的处理
第7章 OpenFlow 1.1
7.1 OpenFlow 1.1中的变更要点
7.2 匹配字段的变更
7.3 多流表规范的变更(流水线处理)
7.3.1 流水线处理
7.3.2 元数据
7.3.3 OpenFlow 1.1中的自学习桥接器的实现手法
7.4 指令
7.4.1 何谓指令
7.4.2 行动、行动集、行动列表、指令的区别
7.4.3 对行动的变更
7.5 组
7.5.1 组表
7.5.2 组表项
7.5.3 组类型
7.5.4 组的组
7.6 虚拟端口的扩展
7.7 TTL字段操作
7.7.1 copy TTL inwards/copy TTL outwards
7.7.2 接收到包含非法TTL值的数据包时的处理
7.7.3 不能实施TTL的匹配
7.8 OpenFlow 1.1中其他的变更
7.8.1 支持MPLS标签和VLAN标签的Push/Pop
7.8.2 OpenFlow混合交换机
7.8.3 支持SCTP
7.8.4 支持ECN
7.8.5 OpenFlow交换机和控制器之间连接名称的变更
7.8.6 紧急事态流缓存的取消
7.8.7 Vendor消息名称的变更
第8章 OpenFlow 1.2
8.1 OpenFlow 1.2中的变更点
8.2 OpenFlow eXtensible Match(OXM)
8.2.1 OXM TLV 的基本结构
8.2.2 匹配字段解析规范的取消和Pre-requisite
8.2.3 OXM 匹配字段
8.2.4 OXM中的通配符
8.2.5 OXM TLV示例
8.2.6 基于OXM的Set-Fiel d
8.2.7 取消TCP、UDP、SCTP、ICMP重载使用相同字段
8.3 支持基本的IPv6
8.4 支持多台控制器(故障转移和负载均衡)
8.4.1 Role
8.4.2 Role变更
8.4.3 OpenFlow控制器之间的协作
8.5 OpenFlow 1.2中的其他变化
8.5.1 将虚拟端口分离为逻辑端口和保留端口
8.5.2 Flow-Mod的MODIFY/MODIFYSTRICT的规范变更
8.5.3 对实验性扩展的支持
8.5.4 变更历史记录的添加
第9章 OpenFlow 1.3
9.1 OpenFlow 1.3中的变更要点
9.2 计量表(QoS支持)
9.3 Table-miss的默认动作改为Drop
9.3.1 Table-miss流表项
9.3.2 流表匹配流程的变更
9.4 OpenFlow 1.3中的其他变更
9.4.1 OpenFlow控制器和OpenFlow交换机之间的辅助连接
9.4.2 可以通过UDP、DTLS等 OpenFlow控制器进行通信
9.4.3 支持IPv6扩展头
9.4.4 OXM 匹配字段的添加
9.4.5 支持PBB
9.4.6 多框架
9.4.7 从握手时的Features响应消息中删除端口号
9.4.8 流表项构成要素的变更
9.5 OpenFlow 1.3.1和1.3.2
9.5.1 OpenFlow 通道中版本协商的变更
9.5.2 建立与OpenFlow控制器之间的OpenFlow通道
第10章 OpenFlow的注意事项
10.1 Packet-In消息的处理负载
10.1.1 控制面带宽较窄导致的故障
10.1.2 Packet-In导致的消息延迟
10.2 匹配和流相关的注意事项
10.2.1 未发现TCP标志
10.2.2 并非数据包及帧的任意字段都可进行匹配
10.2.3 匹配字段的依赖关系
10.3 取决于实现的事项
10.3.1 流表项数量的上限
10.3.2 OpenFlow控制器可同时控制的OpenFlow交换机数量的上限
10.3.3 通过buffer id表示的数据包未必保存着
10.3.4 OpenFlow 通道断开时的重新连接计时器
10.4 从下流发送Flow-Mod
10.5 Barrier消息和错误
10.5.1 Flow-Mod之后的Packet-Out
10.5.2 向不同的 OpenFlow交换机发送Flow-Mod消息和Packet-Out消息时
10.6 没有检测Packet-Out失败的方法
10.7 IP碎片处理
第11章 OpenFlow的未来
11.1 互通性验证
11.1.1 OF-Test
11.1.2 PlugFest
11.1.3 2012 年进行的第1次PlugFest
11.1.4 第2次、第3次PlugFest
11.1.5 今后的课题
11.2 Northbound API
11.3 OF-CONFIG
附录
附录1 各版本的行动一览
附录1.1 OpenFlow 1.0的行动
附录1.2 OpenFlow 1.1的行动
附录1.3 OpenFlow 1.2的行动
附录1.4 OpenFlow 1.3的行动
附录2 各版本的消息一览
附录2.1 OpenFlow 1.0的消息
附录2.2 OpenFlow 1.1的消息
附录2.3 OpenFlow 1.2的消息
附录2.4 OpenFlow 1.3的消息
附录3 OpenFlow从1.0到1.3.2的变更之处
附录3.1 行动集
附录3.2 指令
附录3.3 行动列表
附录3.4 组表
附录3.5 计量表
附录3.6 行动
附录4 参考文献及URL
图解OpenFlow 精彩文摘
1.4.1 OpenFlow 交换机的初始动作
OpenFlow 交换机启动后,即可与OpenFlow 控制器建立连接,我们将该连接称为“OpenFlow 通道”。连接是从OpenFlow 交换机向OpenFlow 控制器建立的。OpenFlow 控制器等待来自OpenFlow 交换机的连接,如果确认对方属于可建立连接的一方,则通过OpenFlow 通道建立并保持连接。
我们需要事先在OpenFlow 交换机中设置与OpenFlow 控制器建立连接所需的OpenFlow 控制器的IP 地址等。另外也需要设置作为控制面的网络和OpenFlow 交换机本身的IP 地址等▲。
▲ OF-CONFIG 是用于对OpenFlow 交换机进行初始设置的规范。有关OF-CONFIG的内容请参阅11.3 节。
作为数据面的OpenFlow 交换机之间的网络是由各OpenFlow 交换机中设置的流表项来进行控制的,因此网络设置采用由OpenFlow 控制器对OpenFlow交换机进行设置的形式来完成。OpenFlow 交换机与OpenFlow 控制器建立连接后,有时也会由OpenFlow 控制器完成OpenFlow 网络的拓扑检测。有关OpenFlow 网络的拓扑检测方法,请参阅第3 章。
本文来自年轻人玩的就是心跳投稿,不代表电子书资源网立场,如若转载,请联系原作者获取。