商品簡介
本書基於Linux基金會劃分的開源網絡技術層次框架,對處於主導地位的、較為流行的開源網絡項目進行闡述,包括DPDK、OpenDaylight、Tungsten Fabric、OpenStack Neutron、容器網絡、ONAP、OPNFV等。本書內容主要圍繞各個項目的起源與發展、實現原理與框架、要解決的網絡問題等方面展開討論,致力於幫助讀者對Linux開源網絡技術的實現與發展形成完整、清晰的認識。本書語言通俗易懂,能夠帶領讀者快速走入Linux開源網絡的世界並做出自己的貢獻。本書適合參與Linux開源網絡項目開發的讀者閱讀,也適合互聯網應用的開發者、架構師和創業者參考。
目次
第1章 Linux開源網絡 1
1.1 開源網絡組織 1
1.1.1 雲計算與三大基金會 1
1.1.2 LFN 3
1.2 網絡標準及架構 4
1.2.1 OpenFlow 4
1.2.2 SDN 10
1.2.3 P4 14
1.2.4 ETSI的NFV參考架構 17
1.3 Linux開源網絡生態 19
1.3.1 開源硬件 20
1.3.2 虛擬交換 21
1.3.3 Linux操作系統 22
1.3.4 網絡控制 23
1.3.5 雲平臺 24
1.3.6 網絡編排 27
1.3.7 網絡數據分析 27
1.3.8 網絡集成 28
第2章 Linux虛擬網絡 29
2.1 TAP/TUN設備 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 虛擬網絡隔離技術 45
2.7.1 虛擬局域網(VLAN) 45
2.7.2 虛擬局域網擴展(VxLAN) 47
2.7.3 通用路由封裝GRE 49
2.7.4 通用網絡虛擬化封裝(Geneve) 50
第3章 高性能數據平面 52
3.1 高性能數據面基礎 54
3.1.1 內核旁路 54
3.1.2 平臺增強 59
3.1.3 DPDK 65
3.2 NFV和NFC基礎設施 72
3.2.1 網絡功能虛擬化 72
3.2.2 從虛擬機到容器的網絡I/O虛擬化 78
3.2.3 NFVi平臺設備抽象 81
3.3 OVS-DPDK 86
3.3.1 OVS-DPDK 概述 86
3.3.2 OVS-DPDK性能優化 93
3.4 FD.IO:用於報文處理的用戶面網絡協議棧 98
3.4.1 VPP 98
3.4.2 FD.IO子項目 101
3.4.3 與OpenDaylight 和OpenStack集成 107
3.4.4 vBRAS 109
第4章 網絡控制 112
4.1 OpenDaylight 114
4.1.1 ODL社區 114
4.1.2 ODL體系結構 115
4.1.3 YANG 120
4.1.4 ODL子項目 122
4.1.5 ODL應用實例 125
4.2 Tungsten Fabric 126
4.2.1 Tungsten Fabric體系結構 126
4.2.2 Tungsten Fabric 轉發平面 134
4.2.3 Tungsten Fabric實踐 138
4.2.4 Tungsten Fabric應用實例 145
4.2.5 Tungsten Fabric與OpenStack集成 146
第5章 OpenStack網絡 147
5.1 OpenStack網絡演進 150
5.2 Neutron體系結構 152
5.2.1 網絡資源模型 152
5.2.2 網絡實現模型 159
5.2.3 Neutron軟件架構 164
5.3 Neutron Plugin 165
5.3.1 ML2 Plugin 165
5.3.2 Service Plugin 170
5.4 Neutron Agent 174
第6章 容器網絡 177
6.1 容器 177
6.1.1 容器技術框架 180
6.1.2 Docker 184
6.1.3 Kubernetes 188
6.2 Kubernetes網絡 196
6.2.1 Pod內部的容器間通信 196
6.2.2 Pod間通信 197
6.2.3 Pod與Service之間的網絡通信 199
6.2.4 Kubernetes外界與Service之間的網絡通信 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容器網絡項目Kuryr 217
6.5.1 Kuryr起源 217
6.5.2 Kuryr架構 217
第7章 網絡編排與集成 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應用場景 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