V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OpenWrt 是一个专门面向嵌入式设备的 Linux 发行版。你可以将 OpenWrt 支持的型号的嵌入式设备,比如各种路由器上的系统,换成一个有更多可能性可以折腾的 Linux 系统。
OpenWrt 官方网站
futurejunjie
V2EX  ›  OpenWrt

openwrt24.10 下双 wan 策略路由求助

  •  
  •   futurejunjie · 5 天前 · 272 次点击

    ISP 信息

    电信:只有 IPV6 公网,60 位子网
    联通:双栈公网,IPV6 是 64 位子网

    路由器

    XDR6088 ,用到 immortalwrt 24.10

    想实现的功能

    1.实现电信走电信,联通走联通;
    2.我也可以指定某个 IP 或者某个设备走指定的链路(因为我有一台群晖,目前是通过联通的 V4 地址映射出去访问); 3.当某条链路断网后可以自动走另外一条链路; 4.两条宽带都有 IPV6 ,这个该如何配置

    后记

    自己这几天也搜索了一下,很多都是依赖 mwan3 做负载,但是好像 24.10 对 mwan3 的支持并不是那么好,所以就没有尝试 mwan3 ,然后也有大佬推荐 pbr 插件,安装了但是一头雾水,网上能搜索到的信息很少,也没有可以照葫芦画瓢的参考,无从配置。特此求助 V 站的网络大佬们该如何配置。
    目前 openwrt 上两条链路已经拨号成功,但是目前没有任何策略,路由器好像优先走的电信,因为电信这个接口是我新创建的,两个接口均没有配置优先级的话我猜应该是新创建的优先级高吧,由于现在出口走电信,之前 NAS 映射的联通公网 IP 我在外网现在没法访问家里的网络。

    derryooo
        1
    derryooo  
       5 天前   ❤️ 1
    据我了解,openwrt 开源的负载均衡和策略路由功能是没有的
    作为多年企业级路由器开发,正好看到这个问题,所以来大致讲讲原理

    接了多条宽带拨号后,系统中只会存在一条默认路由,往往是以最后拨号成功的为准,
    这就存在一个问题,访问外网的数据没办法均衡,都是走了默认路由。

    所以要实现均衡和带宽叠加,必须借助链路侦测和负载均衡算法,负载均衡包括基于连接数、基于流量、基于用户等,也可以基于简单的协议。

    做负载均衡是要用到连接跟踪 mark 和数据包(skb)mark 特性,然后结合策略路由表实现,ip 命令是可以设置指定数据包 mark 选择不同的路由表的。
    我们通常说的路由表只是一张默认的 main 表,其实系统中还可以设置多路由表,给每个 wan 定义一个表设置对应的默认路由即可,在外层通过 ip rule 命令匹配即可,细节就不在这里多讲了。

    如何实现指定 ip 走不同的 wan ?
    这里首先需要通过 iptables 或者 netfilter 钩子模块匹配 ip ,设置连接或数据包 mark ,最终基于 mark 匹配到指定的路由表。

    如果只是简单的几个 ip 可以手动设置,一般系统中要内置各大运营商的 ip 库,设置到内核程序加上高效算法匹配,实现 mark 设置
    futurejunjie
        2
    futurejunjie  
    OP
       5 天前
    @derryooo 感谢大佬,感觉好复杂的样子,有没有简单点通过 UI 界面就可以实现的啊,难道只能用爱快了嘛
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4575 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 09:53 · PVG 17:53 · LAX 02:53 · JFK 05:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.