目录
前言 1
第1 章 网络简介 7
1.1 网络历史7
1.2 OSI 模型 10
1.3 TCP/IP 14
1.3.1 应用层 16
1.3.2 传输层 19
1.3.3 网络层 35
1.3.4 互联网协议 35
1.3.5 链路层 46
1.3.6 回到Web 服务器 .52
1.4 本章小结54
第2 章 Linux 网络 55
2.1 基础 .55
2.2 网络接口59
2.3 网桥接口61
2.4 内核中的数据包处理 63
2.4.1 Netfilter 63
2.4.2 Conntrack 66
2.4.3 路由 69
2.5 高级路由70
2.5.1 IPtables .70
2.5.2 IPVS 82
2.5.3 eBPF 84
2.6 网络故障排查工具 87
2.6.1 安全告警 .88
2.6.2 ping 88
2.6.3 traceroute .89
2.6.4 dig 91
2.6.5 telnet .92
2.6.6 nmap 93
2.6.7 netstat 94
2.6.8 netcat .95
2.6.9 OpenSSL .96
2.6.10 cURL 98
2.7 本章小结.100
第3 章 容器网络基础 101
3.1 容器简介.101
3.1.1 应用程序 101
3.1.2 Hypervisor 102
3.1.3 容器 .103
3.2 容器基础. 111
3.2.1 控制组 112
3.2.2 命名空间 112
3.2.3 设置命名空间 . 114
3.3 容器网络基础 122
3.3.1 Docker 网络模型 132
3.3.2 Overlay 网络 133
3.3.3 容器网络插件 135
3.4 容器连通性 137
3.4.1 容器到容器同主机通信 .142
3.4.2 容器到容器跨主机通信 .144
3.5 本章小结.146
第4 章 Kubernetes 网络简介 147
4.1 Kubernetes 网络模型 148
4.2 节点和Pod 网络布局 151
4.2.1 隔离网络 151
4.2.2 扁平网络 152
4.2.3 岛屿网络 154
4.2.4 kube-controller-manager 配置 154
4.3 Kubelet 156
4.4 Pod 就绪和探针 157
4.5 CNI 规范.163
4.6 CNI 插件.164
4.6.1 IPAM 接口 165
4.6.2 热门CNI 插件 166
4.7 kube-proxy .172
4.7.1 userspace 模式 173
4.7.2 IPtables 模式 173
4.7.3 IPVS 模式 175
4.7.4 kernelspace 模式175
4.8 NetworkPolicy .176
4.8.1 基于Cilium 的NetworkPolicy 示例 179
4.8.2 选择Pod 185
4.8.3 规则 .188
4.9 DNS 192
4.10 IPv4/IPv6 双栈 198
4.11 本章小结 200
第5 章 Kubernetes 网络抽象 201
5.1 StatefulSet .203
5.2 Endpoint .205
5.3 Endpoint Slice 209
5.4 Kubernetes Service 213
5.4.1 NodePort 215
5.4.2 ClusterIP 218
5.4.3 Headless 225
5.4.4 ExternalName Service 227
5.4.5 LoadBalancer 229
5.4.6 服务小结 236
5.5 Ingress .237
5.6 Ingress 控制器和规则 237
5.7 服务网格.245
5.8 本章小结.258
第6 章 Kubernetes 与云网络 259
6.1 Amazon Web Services 259
6.1.1 AWS 网络服务 260
6.1.2 Amazon EKS 272
6.1.3 在AWS EKS 集群上部署应用程序 .283
6.2 谷歌云平台 293
6.2.1 GCP 网络服务 293
6.2.2 GKE .297
6.3 Azure 300
6.3.1 Azure 网络服务 301
6.3.2 AKS 310
6.3.3 将应用程序部署到AKS .315
6.4 本章小结.327