use*_*733 5 networking routing openvz
我有硬件节点 (HN),它有 2 个物理接口(eth0、eth1)。我正在使用 OpenVZ 并希望让我的容器 (CT) 可以访问这两个接口。我正在使用基本配置 - venet。CT 可以访问 eth0(公共接口)。但是我无法让 CT 访问 eth1(专用网络)。我试过:
# on HN
vzctl set 101 --ipadd 192.168.1.101 --save
vzctl enter 101
ping 192.168.1.2 # no response here
ifconfig # on CT returns lo (127.0.0.1), venet0 (127.0.0.1), venet0:0 (95.168.xxx.xxx), venet0:1 (192.168.1.101)
Run Code Online (Sandbox Code Playgroud)
我认为主要问题是所有数据包都流经 HN 上的 eth0(使用 tcpdump 计算得出)。所以问题可能出在 HN 上的路由上。
还是我这里的逻辑全错了?我只需要从 CT 访问 HN 上的两个接口(网络)。没什么复杂的。
问题出在椅子和键盘之间。我没有在其他设备上设置伪装。因此,对于遇到相同问题的每个人:尝试在 HN 上的每个接口上设置伪装。
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE # I forgot this line
Run Code Online (Sandbox Code Playgroud)
我想通了这一点,感谢:OpenVZ wiki