尝试设置运行 3 个虚拟机的 Proxmox 机器。它有 3 个公共 ip,但这些 ip 位于单个接口 (eth0) 上。
3 个虚拟机位于地址为 172.16.0.1/24 的网桥 (vmbr0) 上
我已启用 ip 伪装和转发。但我无法弄清楚如何使 3 个虚拟机(172.16.0.2、172.16.0.3、172.16.0.4)中的每一个都通过特定的公共 ips 路由出去。
我已经尝试使用 3 个表设置网关和规则的标准 iproute,但无论我设置什么规则,vm 仍然通过主 ip 路由出去。
问题是 3 个公共 ip 位于完全独立的网络上,因此它们每个都有不同的网关。如果每个公共 ip 都在一个单独的物理接口上,我知道如何使用 iproute 来执行此操作,但是这台机器在一个接口上拥有所有 3 个,并且 iproute 似乎不喜欢那样,因为如果我执行 ip route add default via 23.92.26.1 dev eth0:2 表 node2 然后列出它通过 eth0 显示的所有内容。所以显然 iproute 不喜欢伪接口。我对 iptables 了解不多,我确信有一种方法可以用纯 iptables 做到这一点,但还没有找到任何东西。我所有的谷歌搜索都提出了 iproute 表,就像我说的那样,似乎不适用于 signle 界面。
先感谢您