简单路由在 debian jessie 下不起作用

简单路由在 debian jessie 下不起作用

我正在尝试设置一个包含 3 个虚拟 debian jessie 机器的简单系统:第一台连接到第二台,第二台连接到第三台。我希望第一台能够 ping 第三台。

为了实现这一点,我设置了静态 IP 地址(通过 /etc/network/interfaces),如下所示:

#FIRST:
eth0 inet static address 172.28.11.2 netmask 255.255.255.0
#SECOND: 
eth0 inet static address 172.28.11.1 netmask 255.255.255.0
eth1 inet static address 172.28.18.2 netmask 255.255.255.0
#THIRD:
eth0 inet static address 172.28.18.1 netmask 255.255.255.0

另外,我在所有这些机器上都启用了 ipv4_forward 选项:

net.ipv4.ip_forward=1 # /etc/sysctl.conf, all machines

并检查它是否有效(通过调用 cat /proc/...../ip_forward 并确保输出中有1

第一个可以 ping 第二个 (已检查,有效)。第二个可以 ping 第三个 (已检查,有效)。

现在,我正在尝试设置简单的路由表:我在第一个节点上添加此路由:

route add -net 172.28.18.0 netmask 255.255.255.0 dev eth0 gw 172.28.11.1

之后我可以 ping 172.28.11.2(其他网络掩码中的第二个节点),但仍然无法到达 172.28.11.1(第三个节点)。

如果我进行跟踪路由,我会看到路由中的一个172.28.11.1跳跃(因此它尝试连接到那里)但没有运气。

我错过了什么?

PS 我的配置:Windows 10 作为主机,VMware Player 作为虚拟化,Debian 8 作为所有客户机

答案1

由于您没有提到您在第三个系统上添加了路由,我猜问题是第三个系统不知道如何将返回数据包路由到 172.28.11.0/24。因此您需要在那里添加路由。

请注意,该route命令在 Linux 中已弃用很长时间。您应该熟悉该ip命令,它非常强大,您可以使用它执行各种有趣的路由技巧。

您可以按如下方式在第三个系统上添加所需的路由:

ip route add 172.28.11.0/24 via 172.28.18.2

相关内容