第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 Fabnc 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