如何配置内联网路由器以告知其主机有关到其他子网的路由?

如何配置内联网路由器以告知其主机有关到其他子网的路由?

听起来有点奇怪,但目前的网络配置是,我有两个本地网络:192.168.7.0/24 和 192.168.144.0/24。它们的网关分别是 192.168.7.1(R1)和 192.168.144.1(R2)。R2 通过 WLAN 连接到 R1 的本地网络,其 IP 地址为 192.168.7.94。R1 不直接连接到 R2 的本地网络(192.168.144.0/24)。

R1 是支持 OpenWRT 的 D-LINK 路由器。R2 是 Linux PC。

R1 上有一条静态路由,任何以 192.168.144.0/24 为目标的传入数据包都会转发到 192.168.7.94。R2 还接受来自任何以 192.168.144.0/24 为目标的接口的传入数据包,并将其转发到其配置为 192.168.144.1 的接口。

到目前为止,192.168.7.0/24 上的主机 192.168.7.74(H3)可以访问 192.168.144.0/24 上的任何主机,因为 192.168.7.1 可以将其数据包转发到 192.168.7.94(R2)。


问题是,我发现 H3 上的路由表没有条目表明任何发往 192.168.144.0/24 的数据包都应该发往 192.168.7.1(或连接到 R1 的接口)。当 H3 只连接到一个网络时,这是没问题的。

但是,如果 H3 使用 LAN 连接到 Internet,则 H3 的路由表中的“默认”条目将成为连接到 Internet 的 LAN 接口,然后所有发往 192.168.144.0/24 的数据包都会转发到 Internet 路由器,而该路由器肯定无法访问 R2 的内联网。那么问题是,一旦 H3 连接到 Internet,它就无法再访问 192.168.144.0/24,即使它仍连接到 R1 的网络(192.168.7.0/24)。

我想知道,R1 是否可以“通知”其所有主机在其路由表中添加一个条目,即将发往 192.168.144.0/24 的数据包发送到 192.168.7.1(或连接到 R1 的接口)。

答案1

我最终找到了一个使用 DHCP 的解决方案。

我在启用 OpenWRT 的路由器 R1 上的 DHCP 服务器上添加了“无类静态路由”选项(121 和 249)。它看起来像:

121,24.192.168.144,192.168.7.94
249,24.192.168.144,192.168.7.94

根据我在网上找到的信息,第二个 (249) 适用于 Microsoft Windows 客户端。请参考此链接来配置这些选项:https://ercpe.de/blog/advanced-dhcp-options-pushing-static-routes-to-clients

在 OpenWRT 中,我可以在我的 LAN 网络配置中添加这些选项(网络 - 接口 - LAN - 编辑 - DHCP 服务器 - 高级设置 - DHCP 选项)。

正确设置这些选项后,主机在收到 DHCP 租约时将能够从路由器 R1 接收静态路由。

相关内容