将 LXC 容器桥接到具有不同 IP 范围的主机网络

将 LXC 容器桥接到具有不同 IP 范围的主机网络

我对 Linux 还很陌生,过去一周左右我一直在努力解决一个问题......

我正在尝试在工作站(主机)上设置一个 LXC 容器集群,该工作站的 IP 为 192.168.10.33,并连接到 IP 为 192.168.10.1 的网关

LXC 节点默认连接到 IP 为 10.0.3.1 的 lxcbr0 网桥,容器的 IP 介于 10.0.3.111 和 10.0.3.120 之间

我可以从主机 ping 每个容器,我可以从容器 ping 网桥(10.0.3.1),以及主机 IP(eth0、192.168.10.33),但我无法访问网关(192.168.10.1)我已经阅读了大量关于网络、iptables 和路由的帖子和手册页,但到目前为止都没有任何效果(定义默认 gw、ip 转发......)

如果我将 lxcbr0 桥接器配置为 192.168.10.33(主机 IP),并将我的容器配置为在同一 IP 范围(192.168.10.111 到 120)内使用 IP,那么它可以正常工作。

我想了解如何桥接两个具有不同 IP 范围的网络(如上所述(桥接 192.168.10.0/24 和 10.0.3.0/24))???

(作为免责声明,我禁用了防火墙和任何可能阻止到达网关的东西,我可以从主机到达它)

任何能给我指明正确方向的见解都将不胜感激。谢谢

答案1

你需要检查你的NAT设置或在网关上添加网络路由。要添加路由,您应该在网关上运行命令(当然,如果它是 Linux):

ip route add 10.0.3.0/24 via 192.168.10.1  

添加 NAT:

/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

答案2

我意识到,LXC 在创建时使用默认设置即可正常工作,但所有后续克隆的容器都存在此连接问题,并且 SSH 已停止。

我最终创建了所有容器并在其中运行安装脚本,而不是克隆原始容器。

我无法从克隆的容器内建立工作连接,我仍然不知道原因,但我解决了我的问题。

相关内容