5.2.4. 数据包流


假设您有两个容器:A 和 B。其中容器 A 的 eth0 的对等虚拟以太网设备名为 vethA,而容器 B 的 eth0 的对等设备名为 vethB

注意

如果您尚未熟悉 Docker 服务使用对等虚拟以太网设备,请参阅 Docker 的高级网络文档

现在假定容器 A 存在于本地主机上,容器 B 也在本地主机上。然后,从容器 A 到容器 B 的数据包流如下:

eth0 (A’的 netns) vethA br0 vethB eth0 (B’的 netns)

接下来,假设容器 A 位于本地主机,容器 B 位于集群网络上的远程主机上。然后,从容器 A 到容器 B 的数据包流如下:

eth0 (in A's netns)→ vethA br0 vxlan0 network [1] vxlan0 br0 vethB eth0 (在 B 的 netns)

最后,如果容器 A 连接到外部主机,流量类似如下:

eth0 (在 A 的 netns) vethA br0 tun0 →(NAT)→ eth0 (物理设备) Internet

几乎所有数据包交付决策都通过 OVS 网桥 br0 中的 OpenFlow 规则来执行,这简化了插件网络架构并提供灵活的路由。对于 ovs-multitenant 插件,这还提供强制的 网络隔离



[1] 这时,设备名称引用容器 B 主机上的设备。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.