我有以下拓扑:
VM A VM C
192.168.56.102 192.168.57.102
| |
| |
(eth0) 192.168.56.103 --[ VM B ] -- 192.168.57.101 (eth1)
我试图让B充当两个网络之间的路由器。在尝试将数据报从A发送到C时,我可以看到192.168.56.103端的数据包(使用tcpdump),但是我看不到192.168.57.101端出站的数据包。
我已经验证数据报的目标地址是192.168.57.102,B中的转发表如下所示:
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.56.0 * 255.255.255.0 U 1 0 0 eth0
192.168.57.0 * 255.255.255.0 U 1 0 0 eth1
我也尝试过添加此转发规则:
route add -net 192.168.57.0 netmask 255.255.255.0 gw 192.168.57.102 dev eth1
产生此路由表:
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.56.0 * 255.255.255.0 U 1 0 0 eth0
192.168.57.0 C.local 255.255.255.0 UG 0 0 0 eth1
192.168.57.0 * 255.255.255.0 U 1 0 0 eth1
我非常确定这条规则是多余的,我不会用它获得更好的结果。
如果有帮助,这是来自B的ARP表:
C.local (192.168.57.102) at 08:00:27:12:6b:c9 [ether] PERM on eth1
A.local (192.168.56.102) at 08:00:27:0a:86:a2 [ether] PERM on eth0
我是否缺少可以连接这两个网络的步骤?谢谢你的帮助!
答案 0 :(得分:0)
您通常需要在计算机上启用ipv4路由。
您可以通过发出以下命令来执行此操作:
sysctl -w net.ipv4.ip_forward=1
或者:
echo 1 > /proc/sys/net/ipv4/ip_forward