本書對開源網(wǎng)絡(luò)項目進行了闡述,包括DPDK、OpenDaylight、TungstenFabric、OpenStackNeutron、容器網(wǎng)絡(luò)、ONAP、OPNFV等,主要圍繞各個項目的起源與發(fā)展、實現(xiàn)原理與框架、要解決的網(wǎng)絡(luò)問題等方面展開了討論。
郭瑞景:從事網(wǎng)絡(luò)與存儲開發(fā)工作,活躍于OpenStack、OpenDaylight、OPNFV等開源項目。
陸連浩:ONAP項目積極貢獻者,此前長期從事Linux驅(qū)動、嵌入式系統(tǒng)開發(fā)工作。
秦凱倫:OpenStack Neutron項目的活躍貢獻者。
徐琛杰:從事邊緣計算項目StarlingX網(wǎng)絡(luò)方面的開發(fā)。
應(yīng)若愚:從事網(wǎng)絡(luò)相關(guān)軟件開發(fā)和優(yōu)化工作,目前主要負責ONAP平臺開發(fā)。
丁亮:從事云ONAP相關(guān)的開發(fā)和集成工作。
朱禮波:活躍于OPNFV、ONAP等開源項目,此前從事虛擬化技術(shù)與GPU底層的開發(fā)與維護。
黃海濱:ONAP項目積極貢獻者,Multi-Cloud 和 VFC的Committer,在虛擬化和智能監(jiān)控領(lǐng)域發(fā)表6篇專利。
任橋偉:從事Linux內(nèi)核、OpenStack、Ceph等開源項目的開發(fā),著有《Linux內(nèi)核修煉之道》 《 Linux那些事兒》系列。
梁存銘:軟件架構(gòu)師,網(wǎng)絡(luò)數(shù)據(jù)面專家。主要從事研究數(shù)據(jù)面優(yōu)化、網(wǎng)絡(luò)設(shè)備虛擬化及系統(tǒng)架構(gòu)優(yōu)化。
胡雪焜:專注于虛擬化技術(shù)和基于IA架構(gòu)的數(shù)據(jù)面性能優(yōu)化,具有豐富的SDN/NFV商業(yè)實踐。
胡嘉瑜:主要從事網(wǎng)絡(luò)I/O虛擬化方面的工作。
王瀟:主要從事網(wǎng)絡(luò)虛擬化、云網(wǎng)絡(luò)硬件加速等技術(shù)的開發(fā)。
何少鵬:專注于網(wǎng)卡和I/O虛擬化,之前在云服務(wù)和網(wǎng)絡(luò)設(shè)備行業(yè)有十多年的從業(yè)經(jīng)驗。
姚磊:主要從事DPDK虛擬化以及OVS的性能評估和分析工作。
倪紅軍:VPP Maintainer,Sweetcomb和NSH_SFC項目負責人。
吳菁菁:主要從事Intel平臺上網(wǎng)絡(luò)包處理加速工作。
陳兆彥:主要從事基于IA架構(gòu)的DPDK網(wǎng)絡(luò)系統(tǒng)的性能測試和分析,以及研究SDN/NFV方案,如對TungstenFabric vRouter的性能分析。
目錄
第1章 Linux開源網(wǎng)絡(luò) 1
1.1 開源網(wǎng)絡(luò)組織 1
1.1.1 云計算與三大基金會 1
1.1.2 LFN 3
1.2 網(wǎng)絡(luò)標準及架構(gòu) 4
1.2.1 OpenFlow 4
1.2.2 SDN 10
1.2.3 P4 14
1.2.4 ETSI的NFV參考架構(gòu) 17
1.3 Linux開源網(wǎng)絡(luò)生態(tài) 19
1.3.1 開源硬件 20
1.3.2 虛擬交換 21
1.3.3 Linux操作系統(tǒng) 22
1.3.4 網(wǎng)絡(luò)控制 23
1.3.5 云平臺 24
1.3.6 網(wǎng)絡(luò)編排 27
1.3.7 網(wǎng)絡(luò)數(shù)據(jù)分析 27
1.3.8 網(wǎng)絡(luò)集成 28
第2章 Linux虛擬網(wǎng)絡(luò) 29
2.1 TAP/TUN設(shè)備 30
2.2 Linux Bridge 32
2.3 MACVTAP 33
2.4 Open vSwitch 35
2.5 Linux Network Namespace 37
2.6 iptables/NAT 42
2.7 虛擬網(wǎng)絡(luò)隔離技術(shù) 45
2.7.1 虛擬局域網(wǎng)(VLAN) 45
2.7.2 虛擬局域網(wǎng)擴展(VxLAN) 47
2.7.3 通用路由封裝GRE 49
2.7.4 通用網(wǎng)絡(luò)虛擬化封裝(Geneve) 50
第3章 高性能數(shù)據(jù)平面 52
3.1 高性能數(shù)據(jù)面基礎(chǔ) 54
3.1.1 內(nèi)核旁路 54
3.1.2 平臺增強 59
3.1.3 DPDK 65
3.2 NFV和NFC基礎(chǔ)設(shè)施 72
3.2.1 網(wǎng)絡(luò)功能虛擬化 72
3.2.2 從虛擬機到容器的網(wǎng)絡(luò)I/O虛擬化 78
3.2.3 NFVi平臺設(shè)備抽象 81
3.3 OVS-DPDK 86
3.3.1 OVS-DPDK 概述 86
3.3.2 OVS-DPDK性能優(yōu)化 93
3.4 FD.IO:用于報文處理的用戶面網(wǎng)絡(luò)協(xié)議棧 98
3.4.1 VPP 98
3.4.2 FD.IO子項目 101
3.4.3 與OpenDaylight 和OpenStack集成 107
3.4.4 vBRAS 109
第4章 網(wǎng)絡(luò)控制 112
4.1 OpenDaylight 114
4.1.1 ODL社區(qū) 114
4.1.2 ODL體系結(jié)構(gòu) 115
4.1.3 YANG 120
4.1.4 ODL子項目 122
4.1.5 ODL應(yīng)用實例 125
4.2 Tungsten Fabric 126
4.2.1 Tungsten Fabric體系結(jié)構(gòu) 126
4.2.2 Tungsten Fabric 轉(zhuǎn)發(fā)平面 134
4.2.3 Tungsten Fabric實踐 138
4.2.4 Tungsten Fabric應(yīng)用實例 145
4.2.5 Tungsten Fabric與OpenStack集成 146
第5章 OpenStack網(wǎng)絡(luò) 147
5.1 OpenStack網(wǎng)絡(luò)演進 150
5.2 Neutron體系結(jié)構(gòu) 152
5.2.1 網(wǎng)絡(luò)資源模型 152
5.2.2 網(wǎng)絡(luò)實現(xiàn)模型 159
5.2.3 Neutron軟件架構(gòu) 164
5.3 Neutron Plugin 165
5.3.1 ML2 Plugin 165
5.3.2 Service Plugin 170
5.4 Neutron Agent 174
第6章 容器網(wǎng)絡(luò) 177
6.1 容器 177
6.1.1 容器技術(shù)框架 180
6.1.2 Docker 184
6.1.3 Kubernetes 188
6.2 Kubernetes網(wǎng)絡(luò) 196
6.2.1 Pod內(nèi)部的容器間通信 196
6.2.2 Pod間通信 197
6.2.3 Pod與Service之間的網(wǎng)絡(luò)通信 199
6.2.4 Kubernetes外界與Service之間的網(wǎng)絡(luò)通信 202
6.3 Kubernetes CNI 202
6.4 Service Mesh 209
6.4.1 Sidecar模式 211
6.4.2 開源Service Mesh方案 213
6.5 OpenStack容器網(wǎng)絡(luò)項目Kuryr 217
6.5.1 Kuryr起源 217
6.5.2 Kuryr架構(gòu) 217
第7章 網(wǎng)絡(luò)編排與集成 221
7.1 ETSI NFV MANO 221
7.1.1 ETSI標準化進展 221
7.1.2 OASIS TOSCA 223
7.1.3 開源編排器 224
7.2 ONAP 228
7.2.1 ONAP基本框架 230
7.2.2 ONAP應(yīng)用場景 234
7.3 OPNFV 237
7.3.1 OPNFV上游 238
7.3.2 OPNFV項目 245
7.3.3 OPNFV CI 251
7.3.4 OPNFV典型用例 252