当前位置: 首页 > 知识库问答 >
问题:

linux如何向向局域网内的其他路由器广播特定路由条目?

单展
2024-11-12

linux如何向向局域网内的其他路由器广播特定路由条目

遇到一个问题,主路由是一个普通的家庭路由器,无法配置静态路由,但是旁路由是可以任意操作的开放的linux系统路由器.如图所示,旁路由连接另一个局域网.现在想要让主路由 可以转发数据包的旁路由所主导的局域网.

注:由于一些原因,旁路由的主导的局域网的相关路由条目无法被其他路由器自动学习(具体原因是旁路由所连接的局域网是用vpn连接的,具体软件是使用tailscale)

共有3个答案

谭正谊
2024-11-12

直接去咸鱼捡一台有管理功能的千兆企业级路由器不就行了。

张亦
2024-11-12

这个取决于你的家用路由器是不是能配置DHCP。

DHCP可以配置下发静态路由,具体可以查询 option 121

家用路由器大概率是不支持直接配置的,我用过openwrt这样配置是没问题的。

如果没有配置的话,看看能不能关闭路由器上的dhcp服务,然后在旁路由上装个dnsmasq,自己来做DHCP地址下发。

何修能
2024-11-12

在 Linux 系统上,你通常不能直接通过广播的方式向局域网内的其他路由器添加静态路由条目,因为路由器通常不会接受来自其他设备的动态路由更新(除非它们配置为使用某种动态路由协议,如 BGP、OSPF 等)。然而,你可以采取一些其他方法来实现你的需求。

在这种情况下,由于主路由是一个普通的家庭路由器且不支持静态路由配置,而旁路由是一个可以任意操作的 Linux 系统,你可以考虑以下解决方案:

解决方案:使用 IP 转发和策略路由

  1. 启用 IP 转发
    在旁路由上启用 IP 转发,以便它能够转发来自主路由的数据包到 VPN 连接的局域网。

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

或者,永久启用 IP 转发,可以编辑 /etc/sysctl.conf 文件并添加以下行:

net.ipv4.ip_forward = 1

然后运行 sudo sysctl -p 以应用更改。

  1. 配置静态路由
    虽然你不能直接在其他路由器上添加静态路由,但你可以通过调整旁路由上的路由表来实现类似的效果。

    假设你的网络配置如下:

    • 主路由的 IP 地址为 192.168.1.1
    • 旁路由的 IP 地址为 192.168.1.2
    • VPN 连接的局域网网段为 10.0.0.0/8

    在旁路由上,你可以添加一条静态路由,将所有发往 10.0.0.0/8 的流量通过 VPN 接口转发。

    ip route add 10.0.0.0/8 via <VPN_GATEWAY_IP> dev <VPN_INTERFACE>

替换 <VPN_GATEWAY_IP> 为 VPN 网关的 IP 地址,<VPN_INTERFACE> 为 VPN 连接的网络接口名。

  1. 配置策略路由(可选)
    如果主路由和旁路由之间有其他复杂的流量转发需求,你可能需要使用策略路由(也称为基于源或目标的路由)。

    例如,你可以使用 ip ruleip route 命令来创建更复杂的路由规则。

  2. 确保防火墙规则允许转发
    确保旁路由的防火墙规则允许数据包转发。你可能需要调整 iptablesfirewalld 规则来允许相关的流量通过。

注意:

  • 由于你提到 VPN 是通过 Tailscale 建立的,确保 Tailscale 的配置允许从旁路由转发流量到 VPN 网络。
  • 这种方法依赖于旁路由作为数据包转发的中间点,因此旁路由的性能和稳定性将直接影响整个网络的性能。

通过上述步骤,你可以在一定程度上实现主路由向旁路由所主导的 VPN 连接的局域网转发数据包的需求。然而,这并不是通过广播静态路由条目来实现的,而是通过配置旁路由的路由表和 IP 转发功能来实现的。

 类似资料:
  • 英文原文:http://emberjs.com/guides/routing/redirection/ 过渡与重定向 在路由中调用transitionTo或者在控制器中调用transitionToRoute,将停止当前正在进行的过渡,并开启一个新的,这也用作重定向。transitionTo具有参数,其行为与link-to助手相同。 如果过渡到一个没有动态段的路由,路由的model钩子始终都会运行。

  • 我正在尝试使用react router(版本^1.0.3)做一个简单的重定向到另一个视图的操作,我只是觉得有些累。 我只需要将用法发送到“/login”,就这样。 我能做什么? 控制台中的错误: 未捕获的引用错误:未定义PropType 用我的路线归档

  • 我一直试图做一个简单的重定向到按钮点击的另一个组件,但由于某种原因,它不起作用。我想重定向到/dashboard并从登录显示AdminServices,如下所示: //索引。js //应用程序。js //登录。js //管理服务。js

  • 在TS文件中 用户详细信息应为 在管理组件中 我的问题是,当单击时,我不会被重定向到页面,但当我从url栏导航到/userdails时,我会看到组件

  • 我已经稍微调整了React路由器的私有路由示例,以便与Redux玩得很好,但是当链接或重定向到其他页面时,不会呈现任何组件。这个例子可以在这里找到: https://reacttraining.com/react-router/web/example/auth-workflow 他们的PrivateRoute组件如下所示: 但是,因为我已经把它合并到一个Redux应用程序中,我不得不稍微调整一下私

  • 当我们想要通知客户端应用程序已移动此URL时,重定向路由非常有用。 可以使用以下函数重定向URL。 static Cake\Routing\Router::redirect($route, $url, $options =[]) 上述功能有三个参数 - 描述路径模板的字符串。 要重定向到的URL。 一个数组,它将路径中的命名元素与该元素应匹配的正则表达式相匹配。 例子 (Example) 在co

  • 我在react-redux项目中使用react-router-dom 5.1.2。对于我的路由,我有两个文件。第一个是App.js,其中包含redux存储和BrowserRout的提供程序: 在下一层,我有Main.js,它有到所有组件的路径 我遇到的问题是,当我使用path=“/games/:game_id/fighters/new”进入路线时,而不是显示FighterForm。js,它会重定向