如何在 debian 或 linux 操作系统中设置 2 个网关?

如何在 debian 或 linux 操作系统中设置 2 个网关?

在我运行 debian 操作系统的树莓派中,我有 2 个接口,wlan0 和 eth0。两个接口都从两个网关服务器获取 dhcp。我如何 ping 两个 LAN?例如 :

eth0 -> gateway 10.1.22.1 -> LAN 10.0.0.0/8
wlan0 -> gateway 192.168.10.1 -> LAN 192.168.10.0/24
                              -> also can browse internet

我得到的路由表是:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.1.22.1       0.0.0.0         UG    203    0        0 eth0
default         192.168.10.1    0.0.0.0         UG    304    0        0 wlan0
10.1.22.0       0.0.0.0         255.255.255.0   U     203    0        0 eth0
192.168.10.0    0.0.0.0         255.255.255.0   U     304    0        0 wlan0

我可以 ping 通 LAN 10.0.0.0/8,但无法浏览互联网。我如何浏览互联网并 ping LAN 10.0.0.0/8 ?

抱歉,这是基本的 Linux 网络配置。我对linux操作系统不熟悉。希望有人能帮我弄清楚。

答案1

default路由用于不在本地网络上的计算机(即用于访问 Internet)。

您有两条default路线,这有点令人困惑,因为您说您有两种不同的方式访问互联网。

我猜其中之一是错误的,并且可能10.1.22.1没有充当互联网网关,这就是您无法访问互联网的原因。

我想解决方案是删除此路由,只有一个默认路由,并提供一个为您提供 Internet 访问的网关。

如果您仍想 ping 10.0.0.0/8 上但在 LAN 网段 (10.1.22.0/24) 之外的主机,则将网关目标设置为 10.0.0.0/8 而不是default,因此只有 10.0.0.0/8 的流量网络(而不是互联网流量)通过该路线。

答案2

您应该删除接口上的默认路由eth0,或者至少使用比您想要用于访问互联网的接口更高的度量值。您现在有两条相互竞争的默认路由,并且您的 RPi 选择了错误的接口将数据包路由到非本地地址。

您的问题也存在不一致:在文本中您提到 LAN 10.0.0.0/8,但路由表有 netmask 255.255.255.0,即10.0.0.0/24

答案3

我终于通过在 /lib/dh​​cpcd/dhcpcd-hooks 中添加更多路由并添加包含内容的 40 路由文件来完成设置

ip route add 10.0.0.0/8 via 10.1.22.1

并在 /etc/dhcpcd.conf 中添加更多行

interface wlan0
metric 100

interface eth0
metric 200

现在我可以 ping 通两个 LAN。还有一个问题是,在网关 192.168.10.1 上实际上也有 IP 地址 10.0.0.0/8。那么,我们如何分离例如从 10.0.0.1 到 10.0.0.21 的 IP 地址应该来自网关 10.1.22.1,从 10.0.0.22 到 10.254.254.254 将从 192.168.10.1 进入网关,网关 192.168.10.1 也可以访问互联网。但 10.1.22.1 没有互联网(仅用于 voip 服务器网关)。

相关内容