通过中间 Linux 设备在两台机器之间连接的路由

通过中间 Linux 设备在两台机器之间连接的路由

我有以下设置:

----PC---- 
10.8.0.1/24


--LINUX1--
10.8.0.6/24
192.168.1.3/24


--LINUX2--
192.168.1.1/24


我想从 PC ping LINUX2,反之亦然。我需要在相应的设备上添加哪些路由。

我在 Linux1 上运行了这个:

echo 1 > /proc/sys/net/ipv4/ip_forward

而且,据我所知,这应该足以在 LINUX1 上路由黑白网络,但我对此可能是错误的。

我已添加 10.8.0.3 作为 LINUX2 上的默认网关:

# route -e
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.1.0     *               255.255.255.0   U         0 0          0 ath0
127.0.0.0       *               255.0.0.0       U         0 0          0 lo
224.0.0.0       *               240.0.0.0       U         0 0          0 ath0
default         192.168.1.3     0.0.0.0         UG        0 0          0 ath0

之后我可以从 LINUX2 ping LINUX1 的两个接口,但我仍然无法 ping PC。

我在 PC 上添加了一条到 192.168.1.0/24 网络的路由,如下所示:

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0     192.168.20.1    192.168.20.90     20
         10.8.0.0    255.255.255.0         10.8.0.2         10.8.0.1     30
         10.8.0.0  255.255.255.252         On-link          10.8.0.1    286
         10.8.0.1  255.255.255.255         On-link          10.8.0.1    286
         10.8.0.3  255.255.255.255         On-link          10.8.0.1    286
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
      169.254.0.0      255.255.0.0         On-link     192.168.126.1    296
  169.254.255.255  255.255.255.255         On-link     192.168.126.1    276
      192.168.1.0    255.255.255.0         10.8.0.6         10.8.0.1     33
     192.168.20.0    255.255.255.0         On-link     192.168.20.90    276

但我仍然无法从 PC ping LINUX2。我只能从PC上ping通LINUX1的10.8.0.6接口,但无法ping通192.168.1.3。

如果重要的话,10.8.0.0 是一个 openVPN,192.168.1.0 只是一个 LAN。

答案1

除了默认网关之外,您还必须告诉PC它可以通过以下方式到达LINUX2(以及完整的 192.168.1.* LAN 网段)LINUX1

ip route add 192.168.1.0/24 via 10.8.0.6

你必须告诉LINUX2它可以PC通过以下方式到达LINUX1

ip route add 10.0.8.0/24 via 192.168.1.3

您已经在 上启用了转发LINUX1,并且链路本地路由应该足够了。所以现在你应该能够ping 192.168.1.1from PC,也ping 10.8.0.1能够 from LINUX2。如果它不起作用,请使用tcpdump -i interface_name(使用您要转储的网络接口)和进行调试ip route get ...

相关内容