第一本介紹Neutron網路技術方面的專書
OpenStack & CSDN社區專家傾心力作
三位OpenStack Contributor從事OpenStack網路研發工作的長期累積與心得歸納,以Neutron每一個特性背後的網路背景知識為出發點,進行深入淺出地說明,基本概念與實際操作相結合,同時列出和解釋了大量程式,實用性強。
全書圖表豐富,技術含量高,以期揭開OpenStack網路技術的神秘面紗,讓讀者透過本書真正了解傳統網路、雲端運算時代的網路,把握網路技術發展的核心思想和精髓。
適用: OpenStack學習者、有一定基礎的技術工程師,或想深入了解OpenStack Neutron的架構師。發人員、想了解Linux環境下C語言程式設計者。
作者簡介:
張 華
對傳統的網路技術、雲端運算時代的網路技術都有深入的研究。曾為IBM網路專案專家(SME),目前在Canonical公司從事OpenStack網路研發工作,發表過大量的網路技術相關文章。
向 輝
喜歡研究新型網路技術, 目前在Canonical從事OpenStack網路研發相關的工作。
劉豔凱
研究Openstack網路模組,並帶領團隊開發用於混合雲的Plugin。精通資料中心網路、SDN等網路技術,擔任惠普公司雲端運算架構師。
作者序
前言
雲端運算和大數據是當今電腦領域最紅的兩項新技術,OpenStack 也正在逐步成為IaaS 雲端運算事實上的標準。我們知道,OpenStack 實際上是透過Python 語言寫的Shell 去管理底層的計算、儲存和網路等主要資源。如何進行Python 程式設計不難,難的是如何了解OpenStack 所管理的這些資源背後的領域知識,網路無疑又是這三大區塊裡面最複雜的一塊。目前市場上和OpenStack 相關的書籍主要集中在安裝和運行維護方面,不涉及背後的領域知識,更不涉及最複雜的網路這塊,讓人看完之後仍然不了解背後的原理,很難真正幫助讀者了解OpenStack。
本書是三位OpenStack Contributor 從事OpenStack 網路研發工作的長期累積與心得歸納,都是在第一線的工程師,而雲端運算主要是由工程師文化驅動的,既懂原理又懂程式的工程師更能深刻認識和了解OpenStack,也最清楚讀者在進軍OpenStack 網路技術的過程中需要儲備什麼樣的知識。本書順應了這種潮流,以Neutron 每一個特性背後的網路背景知識為出發點,進行深入淺出地說明,基本概念與實際操作相結合,同時列出和解釋了大量程式,具有較強的實用性;全書圖表豐富,技術含量高,以期揭開OpenStack 網路技術的神秘面紗,讓讀者能夠透過本書真正了解傳統網路,了解雲端運算時代的網路,把握網路技術發展的核心思想和精髓。
本書的主要內容包含:傳統七層網路知識,Neutron 中與之對應的各個模組,Neutron 在提升網路效能方面所做的努力,編者在實作OpenStack 中的體會,如何貢獻OpenStack 社區,一些新興的網路虛擬化技術等。全書內容豐富,無論對於新入門的讀者還是資深的讀者都具有很強的實用性和可參考性。
本書在撰寫的過程中,使用了一些OpenStack 社區、個人部落格和網路中的圖片,使本書更臻增強,這些圖片的分享者他們對本書的貢獻同樣重要,在此表示真誠的感謝。
需要說明的是,本書的內容說明僅代表編者的觀點,此外,由於OpenStack 系統還在發展中,某些功能尚未完全實現,但對其中的個別功能的實現編者也列出了一些有益的探討,如有不妥之處,歡迎讀者朋友和同行指證。
您在使用本書的過程中,如有問題,請聯繫Email:booksaga@126.com
前言
雲端運算和大數據是當今電腦領域最紅的兩項新技術,OpenStack 也正在逐步成為IaaS 雲端運算事實上的標準。我們知道,OpenStack 實際上是透過Python 語言寫的Shell 去管理底層的計算、儲存和網路等主要資源。如何進行Python 程式設計不難,難的是如何了解OpenStack 所管理的這些資源背後的領域知識,網路無疑又是這三大區塊裡面最複雜的一塊。目前市場上和OpenStack 相關的書籍主要集中在安裝和運行維護方面,不涉及背後的領域知識,更不涉及最複雜的網路這塊,讓人看完之後仍然不了解背後的原理,很難真正幫助讀者了解OpenStack。
...
目錄
前言
Part 1 初識Neutron
Chapter 01 Neutron 是什麼
1.1 什麼是雲端運算
1.2 什麼是OpenStack
1.3 Neutron 的發展與介紹
1.4 分層思想與Neutron 元件架構
1.5 Neutron 中的服務
1.6 Neutron 支援的部署拓撲
1.7 愛上Neutron 的理由
1.8 小結
Chapter 02 Neutron 二層網路服務實現原理
2.1 二層網路基本原理
2.2 大二層變革整體說明
2.3 二層網路的實現——ML2 外掛程式
2.4 二層網路在Linux 中的實現
2.5 Openvswitch 中二層網路的實現
2.6 虛擬機器部署與二層網路的綁定(Port Binding)
2.7 小結
Chapter 03 Neutron 三層網路服務實現原理
3.1 路由原理
3.2 三層路由在Linux 中的實現
3.3 Neutron 的三層網路實現
3.4 透過實驗夯實路由基礎
3.5 FLAT、VLAN、GRE、VxLAN 網路拓撲
3.6 小結
Chapter 04 OpenStack 的部署與Neutron 之Hello World
4.1 OpenStack 部署方式簡介
4.2 使用Devstack 部署OpenStack 開發環境
4.3 建立第一個網路
4.4 小結
4.4 字串
Part 2 Neutron 進階
Chapter 05 Neutron 中的網路安全
5.1 iptables 基礎
5.2 Neutron 中的安全群組
5.3 Neutron 中的防火牆
5.4 有狀態的防火牆和以OVS 流規則為基礎的防火牆
5.5 多層防火牆應用實例
5.6 Group Based Policy
5.7 小結
Chapter 06 進階網路服務
6.1 網路服務模型與使用案例
6.2 Service Type 架構
6.3 其他進階網路服務特性
6.4 LBaaS 服務原理與實現
6.5 IPSec VPNaaS 服務原理與實現
6.6 以MPLS 為基礎的VPNaaS 服務原理與實現
6.7 小結
Chapter 07 網路效能最佳化
7.1 通用作業系統與傳統Hypervisor 的網路效能瓶頸
7.2 Neutron 效能的評價指數
7.3 API Server 的最佳化
7.4 MySQL、Rabbitmq 最佳化
7.5 計算節點及l3-agent 的最佳化
7.6 網路中的MTU 問題對效能的影響
7.7 啟用L2pop 特性提高性能
7.8 透過分散式虛擬路由器改善網路節點效能
7.9 網路節點的高可用性
7.10 小結
Part 3 Neutron 實戰
Chapter 08 Neutron 實戰開發
8.1 Neutron 的資料模型介紹
8.2 Neutron 的API 及其實現機制介紹
8.3 使用eclipse + pydev 外掛程式建立開發環境
8.4 如何開發新的Plugin
8.5 為新二層裝置開發MechanismDriver 實戰
8.6 小結
Chapter 09 貢獻Neutron 社區
9.1 加入OpenStack 社區
9.2 註冊BP 與neutron-spec
9.3 如何傳送程式
9.4 Neutron CI 測試
9.5 程式及程式風格
9.6 小結
Chapter 10 Neutron 中的測試
10.1 單元測試
10.2 功能測試
10.3 Tempest 整合測試
10.4 小結
Part 4 Neutron 雜談與展望
Chapter 11 軟體定義網路(SDN)
11.1 軟體定義網路(SDN)簡介
11.2 OpenFlow 中的L3 層路由與跨資料中心的SDN
11.3 RouteFlow
11.4 SDN 與Neutron 的整合
11.5 NFV
11.6 小結
Chapter 12 IPv6 與Neutron
12.1 基礎知識
12.2 IPv6 在Neutron 中的實現
12.3 IPv6 在管理網路中的實現
12.4 小結
Appendix A Openstack 網路的故障排除
A.1 虛擬機器取得不到IP 的問題
A.2 虛擬機器無法存取外網的問題
A.3 無法重建GRE 通道的問題
Appendix B 偵錯程式時可能遇到的問題
B.1 服務狀態不一致的問題
B.2 在eclipse 中偵錯OpenStack 程式時,模組動態取代的問題
B.3 Devstack 環境中切換程式分支的問題
Appendix C Devstack 環境程式升級的問題
前言
Part 1 初識Neutron
Chapter 01 Neutron 是什麼
1.1 什麼是雲端運算
1.2 什麼是OpenStack
1.3 Neutron 的發展與介紹
1.4 分層思想與Neutron 元件架構
1.5 Neutron 中的服務
1.6 Neutron 支援的部署拓撲
1.7 愛上Neutron 的理由
1.8 小結
Chapter 02 Neutron 二層網路服務實現原理
2.1 二層網路基本原理
2.2 大二層變革整體說明
2.3 二層網路的實現——ML2 外掛程式
2.4 二層網路在Linux 中的實現
2.5 Openvswitch 中二層網路的實現
2.6 虛擬機器部署與二層網路的綁定(Port Binding)
2.7 小結
Chapter 03 Neutron ...