如何在 Linux 上的专用网络之间路由数据包?

如何在 Linux 上的专用网络之间路由数据包?

在此输入图像描述

你好!我需要连接3个网络。

这是我所做的:

对于“左”主机

ip route add default via 192.168.26.4
ip route show
default via 192.168.26.4 dev enp0s3

对于“正确的”主机

ip route add default via 192.168.27.4
ip route show
default via 192.168.27.4 dev enp0s3

对于“左”路由器

ip route add default via 10.26.0.1
ip route add 192.168.26.0/24 via 192.168.26.1
ip route show
default via 10.26.0.1 dev enp0s8
192.168.26.0/24 via 192.168.26.1 dev enp0s3

对于“正确的”路由器

ip route add default via 10.26.0.2
ip route add 192.168.27.0/24 via 192.168.27.1
ip route show
default via 10.26.0.2 dev enp0s8
192.168.27.0/24 via 192.168.27.1 dev enp0s3

我还在两个路由器上启用了 ip 转发 ( sysctl -w net.ipv4.ip_forward=1)

现在我可以 ping 通距离主机最近的路由器。即从左侧主机,我可以通过两个 IP 地址 ping 左侧路由器(ping 192.168.26.1 和 ping 10.26.0.1),但无法 ping 下一个路由器或主机(目标主机无法访问)。正确的主机也会发生同样的情况。我还可以从最近的路由器 ping 主机(从 192.168.27(6).1 可以 ping 192.168.27(6).4)。我可以通过这两个地址从一个路由器 ping 到另一个路由器。问题是我无法从主机到主机甚至从主机到下一个路由器执行 ping 操作。

我认为我在路线上做错了什么,但我不知道到底是什么。我试图将路由器中的路由更改为邻居 IP(在左侧路由器中通过 10.24.0.2 添加默认路由),但我得到的只是network is unreachable.

相关内容