我有一个虚拟环境,其中一台主机上有 3 台虚拟机。其中一台虚拟机有 2 个网络接口。
我需要具有两个接口的虚拟机来连接到两个不同的网络。
这里是拓扑
我的主机主机有一个
IP 192.168.3.29 网络掩码 255.255.255.0 网关 192.168.3.1
这 3 台虚拟机有 ip 地址
IP 192.168.3.30 网络掩码 255.255.255.0 网关 192.168.3.1
IP 192.168.3.31 网络掩码 255.255.255.0 网关 192.168.3.1
IP 192.168.3.32 网络掩码 255.255.255.0 网关 192.168.3.1
现在我将以下设置添加到虚拟机以允许它与另一个网络通信。地址 10.10.0.10 网络掩码 255.255.255.0
我将以下行添加到文件 /etc/iproute2/rt_tables
一 rt2
然后我运行以下命令。
ip route add 10.10.0.99/32 dev eth1 src 10.10.0.10 table rt2
ip route add default via 10.10.0.1 dev eth1 table rt2
ip rule add from 10.10.0.99/32 table rt2
ip rule add to 10.10.0.99/32 table rt2
我尝试访问的 IP 是 10.10.0.99 并且我只希望通过此路由访问该 IP。
由于某种原因,当我按照上述配置尝试 ping ip 时,出现目的地不可达的情况。
我无需上述配置就可以通过网关 192.168.3.1 访问服务器 10.10.0.99,但是我的节点和另一个节点之间存在不必要的节点数量,有时会造成麻烦。
是不是我的步骤有问题啊?
我按照步骤操作这里
我发现了另一个类似的问题这里
这似乎表明我正朝着正确的方向前进。
答案1
如果您的 VM 1 在网络中有一个 IP,10.10.0.0/24
那么就不需要任何路由进行通信10.10.0.99
,因为两个主机都在同一个网络中。
必须保证具有IP的主机10.10.0.99
在同一个交换域内,且有24位子网掩码,即255.255.255.0
。
如果不是这种情况,请提供有关交换配置和主机 IP 配置的更多信息10.10.0.99
。