V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
HOOC
V2EX  ›  宽带症候群

关于两台 routeros 用 wg 组网的奇怪现象,需要把 mtu 改成 1492 网络才正常,求大佬们来解释一下原理。

  •  
  •   HOOC · 240 天前 · 2102 次点击
    这是一个创建于 240 天前的主题,其中的信息可能已经有所发展或是发生改变。

    路由 A:rb5009 routeros 7.14.2 电信双拨双公网 IP+一个 IPTV 的 pppoe 拨号 路由 B:软路由 routeros 7.14.2 无公网 IP

    两台机器在同城同区,组了 wg ,需求是 B 路由下的设备想通过 A 路由的 IPTV 口看单播源的电视和两个局域网之间的文件传输,无特殊用途。

    两端使用 routeros 默认 wg 的 mtu 1420 ,这种情况下 B 路由下的设备看 IPTV 出现频道不能播放或严重卡顿的现象,需要 b 路由在 mangle 下加一条 chang mss ,把出口为 wg 的 mss 改到 1380 ,看电视就正常了,这个配置我用了很长时间。

    今天突然发现如果把 AB 两端路由 wg 的 mtu 改成 1492 或以上(试过改到 1500 ,再高就没试过了),b 路由的那条 mangle 规则可以直接禁用掉,看电视也是正常的,不会卡顿。

    但如果两端 wg 的 mtu 改为 1491 或以下想要正常在 b 路由下看电视则必须在 b 路由把出口为 wg 的 mss 改到 mtu-40 才能正常播放。(比如 wg 的 mtu 为 1491 ,mss 就要改到 1451)

    鉴于网上帖子基本都建议吧 wg 的 mtu 设置成 1420 、1412 甚至更低,请懂行的大佬科普一下我这种情况是什么回事,谢谢!

    12 条回复    2024-05-13 17:34:29 +08:00
    1423
        1
    1423  
       240 天前
    这样跑 A 路由会不会因为上传太多被运营商找麻烦
    geekvcn
        2
    geekvcn  
       240 天前
    geekvcn
        3
    geekvcn  
       240 天前
    geekvcn
        4
    geekvcn  
       240 天前
    如果你的 MTU 超过你链路的 MTU ,就需要对数据包进行分片,也就是 MSS
    morpheuszero2023
        5
    morpheuszero2023  
       239 天前
    没用过 WG ,不太懂。不过我试过调 Windows 的 MTU 。最简单的路由器拨号( MTU 1492 ),电脑连路由器 LAN 口自动获取 IP 上网。Windows 的以太网默认 MTU 是 1500 。只要把这个 1500 改低,游戏就会特别特别卡,有时候网络卡住有几秒钟,甚至掉线。
    我是感觉改低某些 MTU 就会出问题,或许和对应的 MRU (接收数据包大小)有关?如果 MRU 同步 MTU 变低了,那确实可能出很多问题。
    ovoo
        6
    ovoo  
       239 天前 via Android
    直接设置为 1280 ,浪费一点带宽,获得最佳适应能力。
    据我观察,同类产品中
    tailscale ,cloudflare warp 都是如此设置。
    HOOC
        7
    HOOC  
    OP
       239 天前 via Android
    @1423 我是正常使用,a 端一个月总上传 600g 左右,不至于。


    @geekvcn 按 mtu 计算器,我 wg 的最佳 mtu 为 1432 ,但目前看来我这边设置小于 1492 的 mtu ,都需要 change mss 到 mtu-40 ,网络才正常。


    @morpheuszero2023 mtu 这东西一直很迷幻。


    @ovoo 目前是就算我把 mtu 设置到 1280 ,b 路由下看 iptv 还是会卡顿,这时就需要把 wg 出口的 mss 改到 1280-40 即 1240 网络才正常,但直接把 mtu 改成 1492 的话就不需要 change mss 了。
    terrancesiu
        8
    terrancesiu  
       239 天前
    我这样的,我的宽带是 1480 的 mtu ,wg 我就用了 1400 的 mtu ,然后 ipv4 的 tcpmss 改成 1360 ,ipv6 的 tcpmss 改成 1340 。所有的 wg 隧道遵循这个配置方案,一切都稳。
    HOOC
        9
    HOOC  
    OP
       239 天前
    @terrancesiu 我现在改用 1492 了,少一条 mangle 。
    life90
        10
    life90  
       239 天前 via Android
    这个值我记得只能是偶数,奇数也可以?
    Andy1989
        11
    Andy1989  
       237 天前
    我是用的默认 1420 配合下面 4 条命令。
    /ip firewall mangle add action=change-mss chain=output new-mss=clamp-to-pmtu passthrough=no protocol=tcp tcp-flags=syn;
    /ip firewall mangle add action=change-mss chain=forward new-mss=clamp-to-pmtu passthrough=yes protocol=tcp tcp-flags=syn;
    /ipv6/firewall/mangle/add action=change-mss chain=output new-mss=clamp-to-pmtu passthrough=no protocol=tcp tcp-flags=syn;
    /ipv6/firewall/mangle/add action=change-mss chain=forward new-mss=clamp-to-pmtu passthrough=yes protocol=tcp tcp-flags=syn;
    Naples
        12
    Naples  
       227 天前 via Android
    坐等大佬来破案……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5620 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 01:41 · PVG 09:41 · LAX 17:41 · JFK 20:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.