我有一个带有三个接口的Linux服务器 - 一个用于网络,两个用于内部,下面显示的是内部接口:
eth1
inet 地址:192.168.10.253
Bcast:192.168.255.255
掩码:255.255.0.0eth2
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 192.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.2
eth1
10.10.10.2
eth2
如果您确实需要这样做,解决方案是连接192.168.10.253
并10.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
前两个命令告诉防火墙允许流量在两个私有子网之间流动,第三个命令在内核级别执行相同操作。您需要两个命令。
就这样。