V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Archeb
V2EX  ›  Linux

Linux (OpenWRT)下如何实现 Per-Packet 模式的链路负载均衡?

  •  
  •   Archeb ·
    Archeb · 2019-12-18 17:45:24 +08:00 · 4095 次点击
    这是一个创建于 1800 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景实现:

    • 使用 SoftEther VPN 通过不同的两条宽带 建立了两个级联隧道
    • 使用虚拟 tap 桥接模式,在两个路由器上分别创建了两个 tap 设备( tap_link1、tap_link2 )
    • 已经确认两端两个 tap 设备都是可以通的(分别配上 IP 可以互相 Ping )

    目前我所知道并且已经尝试了的部分方法:

    1. bond 无法用在 tap 设备上(提示 operation not premitted )
    2. teql 不通 不清楚为什么 需要进一步尝试 但是限于能力我没能找到更多的参考资料(我能找到的只有 LARTC 的一篇)
    3. 直接路由负载均衡设置多个 nexthop,3.6 < kernel < 4.4 是 per-packet 模式,大于 4.4 就是 per-flow,目前的内核是 4.14 我需要 per-packet 模式 又听说可以用 equalize 来改变模式,但发现 iproute2 并没有实现 equalize flag (谷歌搜索结果,自己尝试也提示没有这个选项)。
    4. iptables 随机打标 + ip rule 策略路由:无法干预本地进程路由选择,据说可以让他在 lo 走一趟来干预
    5. teamd 因为 openwrt 似乎没有直接能用的包暂未尝试

    希望大佬能给出些建议,谢谢。

    第 1 条附言  ·  2019-12-20 18:01:40 +08:00
    4 条回复    2020-05-20 15:16:24 +08:00
    xivisi
        1
    xivisi  
       2019-12-18 18:03:05 +08:00
    我的 gentoo 软路由采用 teamd 实现双万兆 聚合成为 20G 和 支持聚合的万兆交换机互联
    lqs
        2
    lqs  
       2019-12-19 01:41:19 +08:00 via iPhone   ❤️ 1
    之前用过一个很 low 但能 work 的方法:写个脚本每 0.1 秒切换一次路由
    Archeb
        3
    Archeb  
    OP
       2019-12-19 18:39:40 +08:00
    @lqs 他工作,感谢!

    今天尝试了走 lo+iptables 打标,太坑人了..
    直接 0.1s 切换路由 完事...
    Distance369
        4
    Distance369  
       2020-05-20 15:16:24 +08:00
    你好 可以给一个邮箱吗,楼主,想请教一下你一个问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5194 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 05:56 · PVG 13:56 · LAX 21:56 · JFK 00:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.