静态路由产生主机不可达错误

静态路由产生主机不可达错误

我有一个带有三个接口的Linux服务器 - 一个用于网络,两个用于内部,下面显示的是内部接口:

eth1
inet 地址:192.168.10.253
Bcast:192.168.255.255
掩码:255.255.0.0

eth2
inet 地址:10.10.10.253
Bcast:10.10.10.255
掩码:255.255.255.0

有一台内部工作机器,其网关为 192.168.10.253,IP 来自该子网;另一台内部工作机器,其网关为 10.10.10.253,IP 来自其子网。我需要能够在这些机器之间进行访问。

在Linux机器上我有以下路由表:

default via * dev eth0
10.10.10.0/24 dev eth2  proto kernel  scope link  src 10.10.10.253
* dev eth0  proto kernel  scope link  src *
192.168.10.0/16 dev eth1  proto kernel  scope link  src 192.168.10.253

我添加了一条静态路由:

路由添加-net 10.10.10.0 网络掩码 255.255.255.0 gw 1​​92.168.10.253

结果

10.10.10.0/24 通过 192.168.10.253 dev eth1 范围链接

但当我尝试从 eth1 ping 一个正常运行的接口 10.10.10.2 时,它总是显示目标主机无法访问。我缺少什么配置?

基本设置如下所示:

在此处输入图片描述

当我从 eth1 ping 时

ping 10.10.10.2 -I eth1
PING 10.10.10.2 (10.10.10.2) from 192.168.10.253 eth1: 56(84) bytes of data.
From 192.168.10.253 icmp_seq=1 Destination Host Unreachable

当我从 eth2 ping 时:

ping 10.10.10.2 -I eth2
PING 10.10.10.2 (10.10.10.2) from 10.10.10.253 eth2: 56(84) bytes of data.
64 bytes from 10.10.10.2: icmp_seq=1 ttl=64 time=0.547 ms

答案1

192.168.10.253根据您的网络图,设备与网络之间没有物理链路,因此当您 ping出10.10.10.0/24时,您绝对不可能期望得到响应。成功 ping 的唯一方法是 ping 请求出。10.10.10.2eth110.10.10.2eth2

如果您确实需要这样做,解决方案是连接192.168.10.25310.10.10.2创建路由。如何做到这一点取决于两个盒子的性质。如果它们是服务器,它们可能有一个您可以连接(并进行适当配置)的第二个网络端口。如果他们没有第二个网络接口,那么如果不完全更改网络配置,您可能就运气不佳。我的建议是,因为您可能有点XY问题,是发布一个新问题描述你需要实现什么,而不是你试图如何实现它。

答案2

不要需要另一条路由来允许私有子网的用户进行通信。您只需以下命令:

iptables -A FORWARD -i eth1 -o eth2 -j ACCEPT
iptables -A FORWARD -i eth2 -o eth1 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward

前两个命令告诉防火墙允许流量在两个私有子网之间流动,第三个命令在内核级别执行相同操作。您需要两个命令。

就这样。

相关内容