目 錄Contents
序
前 言
第1章 Neutron概述 1
1.1 Neutron的由來 1
1.2 Neutron的特性與應用 3
1.2.1 基于OpenStack的應用 4
1.2.2 基于SDN的應用 6
1.3 Neutron的擴展能力 8
1.4 本章小結 9
第2章 Linux虛擬網絡基礎 11
2.1 tap 11
2.2 namespace 13
2.3 veth pair 16
2.4 Bridge 17
2.5 Router 19
2.6 tun 21
2.7 iptables 24
2.7.1 NAT 27
2.7.2 Firewall 30
2.7.3 mangle 32
2.8 本章小結 32
第3章 Neutron的網絡實現模型 34
3.1 Neutron的三類節(jié)點 34
3.2 計算節(jié)點的實現模型 35
3.2.1 VLAN實現模型 37
3.2.2 VXLAN實現模型 41
3.2.3 GRE實現模型 44
3.2.4 計算節(jié)點的實現模型小結 45
3.3 網絡節(jié)點的實現模型 46
3.4 控制節(jié)點的實現模型 49
3.5 本章小結 49
第4章 Neutron的資源模型 51
4.1 Neutron資源的租戶隔離 51
4.1.1 Neutron語境下租戶隔離的
含義 52
4.1.2 Neutron在租戶隔離中的無限
責任和有限責任 53
4.1.3 Neutron的租戶隔離實現方案 54
4.1.4 租戶隔離小結 56
4.2 Network 57
4.2.1 運營商網絡和租戶網絡 58
4.2.2 物理網絡 61
4.2.3 Network小結 64
4.3 Trunk Networking 65
4.3.1 Bridge的VLAN接口模式 65
4.3.2 VLAN aware VM與Trunk
Networking 69
4.3.3 Trunk Networking小結 78
4.4 Subnet 79
4.4.1 IP核心網絡服務 80
4.4.2 Subnet資源池 81
4.5 Port 83
4.6 Router 86
4.6.1 Router的外部網關 88
4.6.2 增加Router接口 89
4.6.3 Router的路由表 91
4.6.4 Floating IP 92
4.6.5 Router小結 94
4.7 Multi-Segments 95
4.7.1 Multi-Segments的困惑 96
4.7.2 Multi-Segments的幾個應用
場景 98
4.8 BGP VPN 102
4.8.1 BGP VPN的使用場景 103
4.8.2 BGP VPN的實現模型 104
4.8.3 BGP VPN的資源模型 105
4.9 本章小結 109
第5章 Neutron架構分析 112
5.1 Neutron的Web框架與規(guī)范 115
5.2 Neutron的消息通信機制 117
5.2.1 AMQP基本概念 118
5.2.2 AMQP的消息轉發(fā) 118
5.3 Neutron的并發(fā)機制 122
5.3.1 協(xié)程概述 122
5.3.2 Neutron中的協(xié)程 124
5.4 通用庫Oslo 131
5.5 本章小結 131
第6章 Neutron的服務 132
6.1 Neutron啟動一個Web Server 133
6.1.1 Web Server的啟動過程 133
6.1.2 Web Server啟動過程中的
關鍵參數 135
6.1.3 Web Server的進程與協(xié)程 138
6.1.4 小結 142
6.2 加載WSGI Application 142
6.2.1 api-paste.ini對應的WSGI
Application 144
6.2.2 neutronapi_v2_0 section 146
6.3 Core Service API(RESTful)的
處理流程 148
6.3.1 Core Service的WSGI
Application 149
6.3.2 Core Service處理HTPP Request的基本流程 149
6.3.3 Core Service處理HTTP Request的函數映射 153
6.3.4 小結 162
6.4 Extension Service API(RESTful)的處理流程 164
6.4.1 Extension Service的類圖與加載 164
6.4.2 Extension Service的WSGI Application 167
6.4.3 Extension Service處理HTTP Request的基本流程 169
6.4.4 Extension Service處理HTTP Request的函數映射 171
6.4.5 小結 176
6.5 Plugin的加載 178
6.5.1 Core Service Plugin的加載 179
6.5.2 Extension Services Plugin的加載 180
6.6 RPC Consumer的創(chuàng)建 181
6.6.1 Neutron Plugin創(chuàng)建RPC Consumer的接口 182
6.6.2 Neutron Server啟動RPC Consumer 183
6.7 本章小結 187
第7章 Neutron的插件 190
7.1 核心插件 191
7.1.1 ML2插件簡介 193
7.1.2 類型驅動 193
7.1.3 機制驅動 202
7.1.4 ML2插件create_network函數剖析 224
7.1.5 ML2插件create_subnet函數剖析 229
7.1.6 ML2插件create_port函數剖析 240
7.2 業(yè)務插件 249
7.2.1 Router Plugin的create_router函數分析 250
7.2.2 Router Plugin的add_router_interface代碼分析 257
7.3 Neutron Plugin的消息發(fā)布和訂閱 260
7.3.1 Neutron Plugin中的Callbacks Module機制 261
7.3.2 Neutron Plugin中的RPC機制 265
7.4 本章小結 266
第8章 Neutron的代理 268
8.1 OVS Agent 270
8.1.1 三類關鍵的Bridge 270
8.1.2 內外VID的轉換 288
8.1.3 OVS Agent代碼分析 295
8.1.4 OVS Agent小結 309
8.2 L3 Agent 311
8.2.1 class OVSInterfaceDriver分析 312
8.2.2 class RouterInfo分析 317
8.2.3 L3 Agent代碼分析 326
8.2.4 L3 Agent小結 351
8.3 本章小結 352