有个 Docker 的网络问题想问问大家

查看 12|回复 0
作者:TravisMtg   

---
背景:如图,B 机器是 ArchLinux ,systemd-networkd 未开启 IPForward 。
1. 图中黑色的 ip 地址为校内局域网,A/B 处于 10.112.0.0/16 子网内,而 C 在另一个子网
2. 橙色地址为 tailscale 创建的局域网,B 和 C 都在 tailscale 创建的网络中
此时在 B 机器上启动一个 docker 服务,映射到 8080 端口,A 机器和 B 机器都可以正常通过 http://10.112.91.240:8080 访问;但是在机器 C 上则不行,通过 tailscale 的 ip 可以正常访问。
查阅文档后发现是 ArchLinux 的 systemd-networkd 默认没开 IPForward ,开启后一切正常。
---
问题:想询问下,为什么开启 IPForward 后就正常了?我理解是因为网络请求没有被宿主机转发到 docker0 上,但是这样解释不了相同网段的机器可以正常访问。查了点 docker 的资料感觉也云里雾里,求求各位指个路。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部