《图解OpenFlow》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:(日)晃通,(日)宫永直树,(日)岩田淳著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2016
  • ISBN:9787115411259
  • 页数:218 页
图书介绍:本书从OpenFlow的概要入手,以OpenFlow 1.0规范为核心,详细讲解了OpenFlow的基本机制和结构。为了加深理解,还介绍了实际的设置示例,包括OpenFlow中的LLDP和网络虚拟化等。另外,还讲解了从OpenFlow 1.0到OpenFlow 1.3.2之间版本的主要变化,以及OpenFlow的注意事项和未来的发展动向。本书适合所有网络开发和管理人员阅读。

第1章 OpenFlow概要 1

1.1 OpenFlow的发展历程 2

1.1.1 OpenFlow的历史 2

1.1.2 ONF 2

1.2 有效运用现有硬件,实现高效设计 4

1.3 所谓OpenFlow,具体是指什么 5

1.3.1 OpenFlow的网络构成示例 5

1.3.2 控制面和数据面的分离 5

1.3.3 控制面的构建方法 6

1.3.4 数据面的构建方法 7

1.3.5 OpenFlow控制器和OpenFlow通道 9

1.3.6 流表 10

1.4 控制器和交换机的基本动作 11

1.4.1 OpenFlow交换机的初始动作 11

1.4.2 Proactive模式设置 11

1.4.3 Reactive模式设置 11

1.5 OpenFlow的动作示例 14

1.5.1 动作示例1 14

1.5.2 动作示例2 15

1.5.3 动作示例3 15

1.5.4 其他动作示例 16

1.6 不断变化的OpenFlow规范 17

1.6.1 OpenFlow 1.0 版本以后快速变化的规范 17

1.6.2 实现OpenFlow 1.3标准化后 17

1.6.3 本书中对OpenFlow 1.1以上版本的说明 18

第2章 OpenFlow 1.O的机制 19

2.1 OpenFlow 1.0中的流表和流表项 20

2.2 流表项 22

2.2.1 头字段 22

2.2.2 计数器 25

2.2.3 行动 26

2.3 行动 27

2.3.1 Forward行动 27

2.3.2 Drop行动 28

2.3.3 Enqueue行动(可选) 29

2.3.4 Modify-Field行动(可选) 29

2.4 控制器和交换机之间的消息 32

2.4.1 安全通道的建立 32

2.4.2 消息格式 32

2.4.3 安全通道的建立和初始设置 33

2.4.4 握手 35

2.4.5 Flow-Mod消息 39

2.4.6 Packet-In消息 45

2.4.7 Packet-Out消息 46

2.4.8 Port-Status消息 47

2.4.9 Flow-Removed消息 48

2.4.10 Error消息 49

2.4.11 Barrier消息 50

2.4.12 Echo消息 51

2.5 Open Flow Switch Errata Version 1.0.1 53

2.6 新规范变化很大,需要注意 54

第3章 LLDP和OpenFlow 55

3.1 LLDP和OpenFlow 56

3.2 LLDP的机制 58

3.2.1 在LLDP中使用的目标以太网地址 58

3.2.2 LLDP中使用的3种组播以太网地址 59

3.2.3 LLDPDU格式 60

3.3 OpenFlow中有效使用LLDP的方法示例 62

3.3.1 事先准备 62

3.3.2 通过Packet-Out消息发送LLDP帧 63

3.3.3 通过Packet-In消息将LLDP帧发送至OpenFlow控制器 64

3.4 基于迪杰斯特拉算法的路径计算 66

第4章 通过实现L2交换机的功能来学习OpenFlow 69

4.1 通过具体网络设备的实现理解OpenFlow 70

4.2 中继器HUB 71

4.2.1 该示例中的网络构成 71

4.2.2 通过Proactive模式设置实现 71

4.2.3 将所有数据包Packet-In至OpenFlow控制器的方法 73

4.3 自学习桥接器 77

4.3.1 该示例中的网络构成 77

4.3.2 使用OpenFlow 1.0挑战自学习桥接器 78

4.3.3 监控ARP并创建流表项 83

4.3.4 如果将PCA和PCB对调,结果会怎样 89

4.3.5 通过发送源和目标以太网地址的配对进行管理的方法 90

4.3.6 在OpenFlow 1.1以上版本中实现自学习桥接器的方法 90

4.4 Tagged VLAN 92

4.4.1 该示例中的网络构成 92

4.4.2 实现TaggedVLAN的设置(OpenFlow交换机1) 93

4.4.3 实现TaggedVLAN的设置(OpenFlow交换机2) 96

4.4.4 该示例中的注意事项 98

第5章 Open Flow与虚拟化 99

5.1 服务器虚拟化和网络虚拟化 100

5.1.1 服务器虚拟化 100

5.1.2 动态迁移 101

5.1.3 多租户 102

5.1.4 网络虚拟化 103

5.2 基于OpenFlow的网络虚拟化的实现方法示例 105

5.2.1 使用VLAN ID的方法 105

5.2.2 使用物理端口/逻辑端口的方法 105

5.2.3 OpenFlow控制器的实现要点 106

5.2.4 其他方法 106

5.3 FlowVisor 107

5.3.1 FlowVisor概要 107

5.3.2 FlowVisor和OpenFlow控制器之间的OpenFlow通道 107

5.3.3 FlowVisor的串联 108

5.3.4 FlowVisor和虚拟网络 109

5.3.5 设置FlowVisor时的注意事项 110

第6章 通过用例考察OpenFlow 111

6.1 使用以太网地址的用户管理 112

6.2 ECMP 114

6.2.1 该示例中的网络构成 114

6.2.2 通过发送源地址区分时 115

6.2.3 通过TCP端口号区分时 116

6.2.4 轮询方式 116

6.3 简易负载均衡 117

6.4 选择性端口映射 118

6.4.1 单纯的端口映射 118

6.4.2 仅映射特定的TCP端口 119

6.4.3 OpenFlow 1.1的“组”和映射 120

6.4.4 从多个OpenFlow交换机持续进行选择性映射并转发至监控设备 120

6.5 重定向至安全产品 121

6.6 与虚拟路由近似的动作(多层交换机) 122

6.6.1 该示例中的网络构成 122

6.6.2 同一子网内的数据包转发处理 123

6.6.3 经过路由器的数据包转发处理 123

6.6.4 作为虚拟路由器响应ARP请求 124

6.6.5 虚拟路由器使用ARP解决以太网地址 125

6.6.6 TTL的处理 126

第7章 OpenFlow 1.1 127

7.1 OpenFlow 1.1中的变更要点 128

7.2 匹配字段的变更 129

7.3 多流表规范的变更(流水线处理) 130

7.3.1 流水线处理 130

7.3.2 元数据 134

7.3.3 OpenFlow 1.1中的自学习桥接器的实现手法 135

7.4 指令 136

7.4.1 何谓指令 136

7.4.2 行动、行动集、行动列表、指令的区别 136

7.4.3 对行动的变更 137

7.5 组 139

7.5.1 组表 139

7.5.2 组表项 139

7.5.3 组类型 140

7.5.4 组的组 144

7.6 虚拟端口的扩展 145

7.7 TTL字段操作 146

7.7.1 copy TTL inwards/copy TTL outwards 146

7.7.2 接收到包含非法TTL值的数据包时的处理 147

7.7.3 不能实施TTL的匹配 148

7.8 OpenFlow 1.1中其他的变更 149

7.8.1 支持MPLS标签和VLAN标签的Push/Pop 149

7.8.2 OpenFlow混合交换机 149

7.8.3 支持SCTP 149

7.8.4 支持ECN 150

7.8.5 OpenFlow交换机和控制器之间连接名称的变更 150

7.8.6 紧急事态流缓存的取消 151

7.8.7 Vendor消息名称的变更 151

第8章 OpenFlow 1.2 153

8.1 OpenFlow 1.2中的变更点 154

8.2 OpenFlow eXtensible Match(OXM) 155

8.2.1 OXM TLV 的基本结构 155

8.2.2 匹配字段解析规范的取消和Pre-requisite 157

8.2.3 OXM 匹配字段 158

8.2.4 OXM中的通配符 159

8.2.5 OXM TLV示例 160

8.2.6 基于OXM的Set-Fiel d 162

8.2.7 取消TCP、UDP、SCTP、ICMP重载使用相同字段 162

8.3 支持基本的IPv6 163

8.4 支持多台控制器(故障转移和负载均衡) 164

8.4.1 Role 164

8.4.2 Role变更 165

8.4.3 OpenFlow控制器之间的协作 165

8.5 OpenFlow 1.2中的其他变化 167

8.5.1 将虚拟端口分离为逻辑端口和保留端口 167

8.5.2 Flow-Mod的MODIFY/MODIFYSTRICT的规范变更 167

8.5.3 对实验性扩展的支持 167

8.5.4 变更历史记录的添加 168

第9章 OpenFlow 1.3 169

9.1 OpenFlow 1.3中的变更要点 170

9.2 计量表(QoS支持) 171

9.3 Table-miss的默认动作改为Drop 173

9.3.1 Table-miss流表项 173

9.3.2 流表匹配流程的变更 173

9.4 OpenFlow 1.3中的其他变更 175

9.4.1 OpenFlow控制器和OpenFlow交换机之间的辅助连接 175

9.4.2 可以通过UDP、DTLS等 OpenFlow控制器进行通信 175

9.4.3 支持IPv6扩展头 176

9.4.4 OXM 匹配字段的添加 176

9.4.5 支持PBB 176

9.4.6 多框架 177

9.4.7 从握手时的Features响应消息中删除端口号 178

9.4.8 流表项构成要素的变更 178

9.5 OpenFlow 1.3.1和1.3.2 179

9.5.1 OpenFlow 通道中版本协商的变更 179

9.5.2 建立与OpenFlow控制器之间的OpenFlow通道 179

第10章 OpenFlow的注意事项 181

10.1 Packet-In消息的处理负载 182

10.1.1 控制面带宽较窄导致的故障 183

10.1.2 Packet-In导致的消息延迟 183

10.2 匹配和流相关的注意事项 184

10.2.1 未发现TCP标志 184

10.2.2 并非数据包及帧的任意字段都可进行匹配 184

10.2.3 匹配字段的依赖关系 185

10.3 取决于实现的事项 187

10.3.1 流表项数量的上限 187

10.3.2 OpenFlow控制器可同时控制的OpenFlow交换机数量的上限 187

10.3.3 通过buffer id表示的数据包未必保存着 187

10.3.4 OpenFlow 通道断开时的重新连接计时器 188

10.4 从下流发送Flow-Mod 189

10.5 Barrier消息和错误 190

10.5.1 Flow-Mod之后的Packet-Out 190

10.5.2 向不同的 OpenFlow交换机发送Flow-Mod消息和Packet-Out消息时 192

10.6 没有检测Packet-Out失败的方法 194

10.7 IP碎片处理 195

第11章 OpenFlow的未来 197

11.1 互通性验证 198

11.1.1 OF-Test 198

11.1.2 PlugFest 198

11.1.3 2012 年进行的第1次PlugFest 198

11.1.4 第2次、第3次PlugFest 199

11.1.5 今后的课题 199

11.2 Northbound API 201

11.3 OF-CONFIG 202

附录 203

附录1 各版本的行动一览 204

附录1.1 OpenFlow 1.0的行动 204

附录1.2 OpenFlow 1.1的行动 205

附录1.3 OpenFlow 1.2的行动 206

附录1.4 OpenFlow 1.3的行动 207

附录2 各版本的消息一览 209

附录2.1 OpenFlow 1.0的消息 209

附录2.2 OpenFlow 1.1的消息 210

附录2.3 OpenFlow 1.2的消息 211

附录2.4 OpenFlow 1.3的消息 212

附录3 OpenFlow从1.0到1.3.2的变更之处 213

附录3.1 行动集 213

附录3.2 指令 213

附录3.3 行动列表 213

附录3.4 组表 214

附录3.5 计量表 214

附录3.6 行动 214

附录4 参考文献及URL 215