网络桥接不同的子网(Docker / Kubernetes)

网络桥接不同的子网(Docker / Kubernetes)

我对 docker / k8s 设置中网桥的使用有点困惑。

我的理解是,网桥专门在第 2 层运行,用于将 2 个网段组合成一个广播域。

当阅读有关 docker / K8s 的信息时,我看到网桥用于将主机 NIC(例如 eth0)与内部 docker / pod NIC(veth0)链接起来,例如在单个主机内:

eth0 [192.168.1.100] <----> docker0(bridge)[172.17.0.1] <----> veth0 [172.17.0.2]

我的第一个困惑是,用第 2 层设备连接两个独立的子网似乎很奇怪,我们不需要从 192... 网络路由到 172... 还是因为网桥只在第 2 层运行,所以这无关紧要?例如,它不关心实际的 IP 地址

我的第二个想法是,根据我的 docker 主机上的路由表来判断,定义了一条到达 172.17.0.0 网络的路由:

 172.17.0.0/16 dev docker0

那么我们为什么需要桥接设备,主机不能直接将数据包从 eth0 路由到 docker 容器 NIC 吗?

我显然遗漏了一些东西,所以提前致歉。任何帮助都将不胜感激。

相关内容