Debian 静态路由不起作用?

Debian 静态路由不起作用?

我肯定做错了什么事。

网络设置如下:

ST1     eth0
    192.168.254.253
    255.255.255.0
    no gate
ST1     eth1
    10.10.10.6
    255.255.255.252
    no gate
    
ST2     eth0
    172.16.200.254
    255.255.255.0
    no gate
ST2     eth1
    10.10.10.5
    255.255.255.252
    no gate
    
CLIENT
    172.16.200.100
    255.255.255.0
    172.16.200.254
    
KENTUCKY
    192.168.254.254
    255.255.255.0
    no gate

替代文本

ST1:

替代文本

ST2:

替代文本

有人能指出我做错了什么吗?已经尝试了很多配置...

答案1

是否已告知路由器通过将 /proc/sys/net/ipv4/ip_forward 设置为 1 进行路由? http://www.linuxdocs.org/HOWTOs/Adv-Routing-HOWTO-12.html

如果这是问题所在,则进行如下设置将使其在重启后继续存在。

File:/etc/sysctl.conf:
net.ipv4.ip_forward = 1

http://www.ducea.com/2006/08/01/how-to-enable-ip-forwarding-in-linux/是我的 systcl 设置的来源

答案2

(哇,这花了一段时间——我不得不画两次。)

首先,我没有看到 Kentucky 上有将数据包发送到 172.16.200.0/24 的路由规则。并且 no-gate 意味着(对我来说,因为我以前从未处理过这种特定语法)它上面没有默认网关。

路由 101:网络可以将数据包发送给您,并不意味着它可以将数据包发送回其来源地。因此,即使您可以向肯塔基州发送 ping 命令,也无法返回答案。

ST1 指定了两次相同的路线:

up route add -net 172.16.200.0 netmask 255.255.255.0 gw 10.10.10.5 dev eth1

...这是无害的,因为它说的是同样的事情。

另外,我认为 ST2 上的这一行是错误的:

up route add -net 192.168.254.0 netmask 255.255.255.0 gw 10.10.10.5 dev eth0

...我认为这意味着你告诉它 192.168.254.0/24 网络可以通过其自身在错误的接口上访问。它还与正确的路由相矛盾,该路由位于 ST2 上的第一个集群中:

up route add -net 192.168.254.0 netmask 255.255.255.0 gw 10.10.10.6 dev eth1

因此。删除up route add -net 192.168.254.0 netmask 255.255.255.0 gw 10.10.10.5 dev eth0ST2 上的规则,在 Kentucky 上添加一条规则,通过 ST1 进行默认路由(或仅发送 172.16.200/24 的数据包),这样就应该可以正常工作了。

如果这不起作用,请netstat -rn对 ST1 和 ST2 执行操作并发布其输出。

相关内容