深入淺出Neutron :OpenStack網路技術

深入淺出Neutron :OpenStack網路技術

《深入淺出Neutron :OpenStack網路技術》作者是張華、向輝、劉艷凱,出版日期為2015年11月01日。

內容簡介

本書是一本介紹 OpenStack網路的專著,本書將會從傳統的網路技術開始,讓讀者在大腦中建立傳統網路與 Neutron網路的一一對應關係,然後介紹了深入講解 Neutron一些重要特性背後的網路背景知識,以及它在 Neutron中是如何實現的。本文還對大規模高性能網路調優的一些經驗與看法,目的是讓讀者昀終從本質上把握雲計算時代的網路,知道如何去獲取與此相關的知識。 本書強調系統性和理論指導實踐的前瞻性,很多網路原理會用簡單有效的小試驗來證明,而 Neutron背後的原理和它恰好是一模一樣的,這便於讀者的深入理解。本書適合 OpenStack愛好者和有一定基礎的技術工程師以及想要深入理解 OpenStack Neutron的架構師使用。

目錄

第1章Neutron是什麼2

1.1什麼是雲...2

1.2什麼是OpenStack3

1.3Neutron的發展與介紹.4

1.4分層思想與Neutron組件架構5

1.5Neutron中的服務.7

1.5.1Neutron二層網路服務.7

1.5.2Neutron三層網路服務.9

1.5.3Neutron高級網路服務.9

1.5.4其他服務.10

1.6Neutron支持的部署拓撲...12

1.6.1單一平面網路.12

1.6.2多平面網路.13

1.6.3混合平面私有網路.13

1.6.4通過私有網路實現運營商路由功能..14

1.6.5通過私有網路實現每個租戶創建自己專屬的網路區段..14

1.7愛上Neutron的理由..15

1.7.1北向API,框架結構與微核心..15

1.7.2大規模高性能,L2的控制平面L2population(L2pop).15

1.7.3大規模高性能,改善東西南北向流量之分散式虛擬路由(DVR)..16

1.7.4大規模高性能,L3高可用VRRP(VirtualRouterRedundancyProtocol)...17

1.8小結.17

第2章Neutron二層網路服務實現原理.18

2.1二層網路基本原理.18

2.2大二層變革綜述.19

2.2.1大二層多路徑技術.20

2.2.2大二層互聯技術.20

2.3二層網路的實現——ML2外掛程式21

2.4二層網路在Linux中的實現.22

2.4.1vethpath演示用例..23

2.4.2Linux網橋演示用例...24

2.5Openvswitch中二層網路的實現...26

2.6虛擬機部署與二層網路的綁定(PortBinding).28

2.7小結.30

第3章Neutron三層網路服務實現原理.31

3.1路由原理.31

3.2三層路由在Linux中的實現.32

3.3Neutron的三層網路實現...33

3.4通過實驗夯實路由基礎.33

3.4.1環境準備.33

3.4.2同一節點上的兩台虛擬機如何互訪..35

3.4.3不同節點上的兩台虛擬機如何互訪..36

3.4.4虛擬機如何訪問外網(SNAT)...36

3.4.5外網如何訪問虛擬機(DNAT)...36

3.4.6VLAN..36

3.4.7VxLAN40

3.4.8GRE.40

3.5FLAT、VLAN、GRE、VxLAN網路拓撲..41

3.6小結.43

第4章OpenStack的部署與Neutron之HelloWorld44

4.1OpenStack部署方式簡介..44

4.2使用Devstack部署OpenStack開發環境.44

4.2.1系統環境.45

4.2.2部署Devstack環境.45

4.2.3自動化腳本一鍵自動部署OpenStack...47

4.3創建第一個網路.49

4.4小結.59

第5章Neutron中的網路安全...61

5.1iptables基礎...61

5.2Neutron中的安全組...66

5.2.1Neutron中的自定義鏈...67

5.2.2每個虛擬機的鏈和規則..68

5.2.3配置使用Neutron中的SecurityGroup.69

5.2.4AllowedAddressPairs擴展69

5.3Neutron中的防火牆...69

5.4有狀態的防火牆和基於OVS流規則的防火牆...71

5.4.1什麼是有狀態的防火牆..71

5.4.2有狀態防火牆在iptables中的實現...72

5.4.3從數據流向看iptables對TCP、UDP及ICMP報文的支持..73

5.4.4Openvswitch中對有狀態防火牆的支持73

5.5多層防火牆套用實例.74

5.6GroupBasedPolicy.75

5.7小結.76

第6章高級網路服務.77

6.1網路服務模型與用例.77

6.1.1Routed/Embedded網路服務...78

6.1.2Floating/In-Path網路服務..78

6.1.3Out-of-Path網路服務.78

6.1.4網路服務插入點.79

6.1.5L3層的網路服務用例79

6.1.6L2層的網路服務用例80

6.1.7Bump-in-the-Wire網路服務用例...80

6.1.8TAPaaS網路服務用例...81

6.2ServiceType框架...81

6.2.1ServiceType種類...81

6.2.2如何配置ServiceType使用高級網路服務...82

6.2.3重構後的高級服務代碼實現..83

6.3其他高級網路服務特性.84

6.3.1NeutronFlavor框架84

6.3.2ServiceInsertion..84

6.3.3ServiceChain(服務鏈)...86

6.3.4TrafficSteering特性...87

6.3.5HuaweiServiceChain特性.87

6.4LBaaS服務原理與實現.88

6.4.1LBaaS代碼結構..88

6.4.2LBaaS套用場景及實現要點..89

6.4.3LBaaS示例..90

6.5IPSecVPNaaS服務原理與實現91

6.5.1隧道協定的本質與分類..91

6.5.2VPN的本質與分類92

6.5.3IPSec理論...93

6.5.4NeutronopenSwan/strongSwanVPNaaS驅動架構...95

6.5.5運行NeutronstrongSwanVPNaaS.96

6.5.6NeutronstrongSwanVPNaaS配置與排錯...102

6.6基於MPLS的VPNaaS服務原理與實現...106

6.6.1MPLS原理與路由信息傳遞106

6.6.2NeutronVPNaaS數據模型演進...109

6.6.3NeutronMPLSVPN實現原理.110

6.7小結...111

第7章網路性能調優...112

7.1通用作業系統與傳統Hypervisor的網路性能瓶頸...112

7.1.1網路性能瓶頸在哪兒112

7.1.2virtio...113

7.1.3vhost...115

7.1.4vhost-user與snabbswitch.115

7.1.5openonload.116

7.2Neutron性能的評價指數.117

7.3APIServer的調優118

7.4MySQL、Rabbitmq調優.119

7.5計算節點及l3-agent的調優119

7.6網路中的MTU問題對性能的影響120

7.7啟用L2pop特性提高性能...121

7.8通過分散式虛擬路由器改善網路節點性能...122

7.8.1實例分析...123

7.8.2命名空間...126

7.8.3配置使用NeutronDVR126

7.8.4環境演示...127

7.8.5內幕分析...128

7.8.6DVR定製OVSFlow138

7.9網路節點的高可用性...139

7.9.1通過pacemaker/corosync實現的NeutronL3高可用性.140

7.9.2支持NeutronL3高可用性和擴展性..145

7.9.3VRRP高可用性156

7.10小結.163

第8章Neutron實戰開發165

8.1Neutron的數據模型介紹.166

8.1.1核心實體(L2)...167

8.1.2L3層的實體..167

8.1.3高層服務實體...168

8.2Neutron的API及其實現機制介紹.168

8.3使用eclipse+pydev外掛程式建立開發環境170

8.4如何開發新的Plugin...173

8.5為新二層設備開發MechanismDriver實戰179

8.6小結...183

第9章貢獻Neutron社區...184

9.1加入OpenStack社區...184

9.2註冊BP與neutron-spec..185

9.3如何提交代碼...191

9.4NeutronCI測試195

9.5代碼及代碼風格...198

9.6小結...199

第10章Neutron中的測試..200

10.1單元測試.201

10.1.1assert_has_calls實例...203

10.1.2assert_called_once_with實例.204

10.2功能測試.205

10.3Tempest集成測試..208

10.4小結.217

第11章軟體定義網路(SDN)..219

11.1軟體定義網路(SDN)簡介.219

11.2OpenFlow中的L3層路由與跨數據中心的SDN221

11.3RouteFlow...222

11.4SDN與Neutron的集成.223

11.5NFV.224

11.6小結.226

第12章IPv6與Neutron.227

12.1基礎知識.227

12.1.1IPv6地址的3種配置方式.227

12.1.2IPv6PrivacyExtensions..228

12.1.3Radvd軟體路由器..228

12.1.4IPv6地址類型.228

2.2IPv6在Neutron中的實現.229

12.2.1Neutron中的IPv6地址支持..229

12.2.2Neutron中的IPv6前綴代理(PrefixDelegation,PD)機制.233

12.2.3Neutron網路中的IPv6路由..233

12.3IPv6在管理網路中的實現233

12.3.1配置Radvd..234

12.3.2配置Keystone.234

12.3.3配置glance..238

12.3.4配置Nova239

12.3.5配置neutron-server.242

12.3.6配置swift..244

12.3.7配置swift-storage245

12.3.8配置corosync..246

12.3.9配置cinder..247

12.3.10配置RabbitMQ.249

12.3.11IPv6novarc250

12.3.12實驗結果驗證...251

12.4小結.254

附錄AOpenstack網路的故障排除..256

A.1虛擬機獲取不到IP的問題.256

A.2虛擬機無法訪問外網的問題..256

A.3無法重建GRE隧道的問題257

附錄B調試代碼時可能遇到的問題..258

B.1服務狀態不一致的問題..258

B.2在eclipse中調試OpenStack代碼時,模組動態替換的問題..258

B.3Devstack環境中切換代碼分支的問題...259

附錄CDevstack環境代碼升級的問題.260

參考連結.264

相關詞條

熱門詞條

聯絡我們