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

怎么设置 ipv6 mtu

  •  
  •   znsb · 2023-10-28 09:45:00 +08:00 via Android · 3943 次点击
    这是一个创建于 392 天前的主题,其中的信息可能已经有所发展或是发生改变。

    tplink 、h3c 和(我用的) openwrt 都没有 ipv6 MTU 的选项,只有一个 WAN 口的 MTU ,那是 v4 和 v6 公用一个 MTU 值吗?

    34 条回复    2023-11-20 20:31:05 +08:00
    yyzh
        1
    yyzh  
       2023-10-28 11:54:51 +08:00 via Android
    erfesq
        2
    erfesq  
       2023-10-28 12:15:48 +08:00 via Android
    ipv6 的 mtu 设置为 1280 最好,ipv4 的 mtu 一般设置为 1492 或者 1480
    znsb
        3
    znsb  
    OP
       2023-10-28 12:18:00 +08:00 via Android
    @erfesq 但是没有“ipv6 MTU”这个东西🤔
    znsb
        4
    znsb  
    OP
       2023-10-28 12:19:16 +08:00 via Android
    @yyzh 师傅能不能展开回答一下
    letmefly
        5
    letmefly  
       2023-10-28 14:44:20 +08:00
    openwrt 原版是肯定有 ipv6 mtu 选项的,就在 ipv6 RA 设置 ,RA mtu 那里。
    v2tudnew
        6
    v2tudnew  
       2023-10-28 14:46:37 +08:00
    其实不用设置,IPv6 会通过 ICMP 自动协商 MTU ,好像叫 Path MTU
    mantouboji
        7
    mantouboji  
       2023-10-28 14:59:41 +08:00
    /ipv6 firewall mangle
    add action=change-mss chain=forward new-mss=clamp-to-pmtu passthrough=yes protocol=tcp tcp-flags=syn
    xqzr
        8
    xqzr  
       2023-10-28 15:08:17 +08:00   ❤️ 1
    @v2tudnew 当初 我和你的想法一样 直到我遇到了 https://res.wx.qq.com 没有处理 PMTU 导致黑洞
    yin1999
        9
    yin1999  
       2023-10-28 15:12:07 +08:00
    看这个帖子:/t/800024
    xqzr
        10
    xqzr  
       2023-10-28 15:12:28 +08:00
    PPPoE 1492
    IPoE/固定 IP 1500
    yin1999
        11
    yin1999  
       2023-10-28 15:13:13 +08:00
    @yin1999 没发成功 /t/800024
    veSir
        12
    veSir  
       2023-10-28 15:52:44 +08:00
    @erfesq #2

    OpenWrt 设置 MTU 貌似要在基础上加 8 才与直接连接光猫 ping 出来的 MTU 值相同.
    ciichen
        13
    ciichen  
       2023-10-28 16:16:36 +08:00 via iPhone
    ipv6 协议自动探测链路最小 mtu
    a90405
        14
    a90405  
       2023-10-28 17:28:33 +08:00
    流量过滤链 "mangle_forward"
    钩子:forward(捕获发送到其他主机的传入数据包),优先级:-150
    策略:accept (继续处理不匹配的数据包)
    规则匹配 规则操作
    #规则评论:Zone wan IPv4/IPv6 ingress MTU fixing 入口设备名 于集合 { eth1, pppoe-wan }eth1
    pppoe-wan 中 TCP 标记 是 syn 将标头字段 TCP 最大报文段长度设为有效的路由 MTU
    #规则评论:Zone wan IPv4/IPv6 egress MTU fixing 出口设备的名称 于集合 { eth1, pppoe-wan }eth1
    pppoe-wan 中 TCP 标记 是 syn 将标头字段 TCP 最大报文段长度设为有效的路由 MTU

    openwrt 23.05 有 mss 钳制啊
    znsb
        15
    znsb  
    OP
       2023-10-28 21:27:11 +08:00 via Android
    完全看不懂😅
    RecursiveG
        16
    RecursiveG  
       2023-10-28 21:47:37 +08:00   ❤️ 2
    MTU 和 IPv4 还是 IPv6 没有关系,要按 IP 协议分别设置的那个叫 MSS 。建议重新阅读 MTU 的定义。

    > 最大传输单元(缩写 MTU )是指 **数据链路层** 上面所能通过的最大数据包大小,这个参数通常与通信接口有关。
    znsb
        17
    znsb  
    OP
       2023-10-28 23:19:53 +08:00 via Android
    @RecursiveG 那为什么这么多人说 ipv4 mtu ,ipv6 mtu ,都是错的吗
    Aoang
        18
    Aoang  
       2023-10-28 23:23:13 +08:00
    @znsb IPv6 有 MTU 自动探测,严格意义上和 IPV4 还真不一样
    RecursiveG
        19
    RecursiveG  
       2023-10-28 23:45:00 +08:00
    @znsb 都是错的,网上教程良莠不齐。

    @Aoang IPv4 也有 PMTUD 。
    realpg
        20
    realpg  
       2023-10-29 01:55:55 +08:00
    看着一堆 mss 和 mtu 都分不出的指点江山……
    v2tudnew
        21
    v2tudnew  
       2023-10-29 02:06:49 +08:00
    @xqzr 你说的是现在还是以前?因为我这确实能用 IPv6 打开。
    erfesq
        22
    erfesq  
       2023-10-29 02:07:56 +08:00 via Android
    ipv6 用最小的 1280 进行传输这个是最优解,因为 ipv6 会自动协商,比如设置成 1492 如果中间有 1280 的会丢弃然后再次用 1280 的发包
    xqzr
        23
    xqzr  
       2023-10-29 03:52:41 +08:00
    @v2tudnew 以前遇到,后来我把 RA 宣告的 MTU 从 1500 改到 1492 就好了
    xqzr
        24
    xqzr  
       2023-10-29 03:55:58 +08:00
    @xqzr 补充:我的 路由器 IPv6 TCP MSS 没有 钳制
    ysc3839
        25
    ysc3839  
       2023-10-29 04:08:26 +08:00 via Android
    @erfesq 不会先丢一遍,TCP 会通过 MSS Clamping 来确定链路中最小 MTU ,确定后就不会改了,丢了就丢了。一般来说运营商的设备要不然 MTU 是 1500 或更大,如果 MTU 较小的话,是会支持 MSS Clamping 的,因为如果不支持的话会对经过的流量造成影响。个人认为如果没实际遇到问题,没必要调低 MTU 。
    xqzr
        26
    xqzr  
       2023-10-29 04:46:11 +08:00
    @v2tudnew 现在也能复现
    me1onsoda
        27
    me1onsoda  
       2023-10-29 07:38:20 +08:00
    ipv6 不是不允许分片吗?还有 mtu 这个概念吗
    znsb
        28
    znsb  
    OP
       2023-10-29 16:28:37 +08:00 via Android
    @erfesq 师傅,你说这个 1280 是 mtu 吗。具体在哪设置能不能发个图看看。
    xqzr
        29
    xqzr  
       2023-10-29 22:11:52 +08:00
    @me1onsoda 不允许中间节点,但允许端点分片
    erfesq
        30
    erfesq  
       2023-10-29 22:31:10 +08:00 via Android
    @znsb 华为光猫在华为界面下有 ipv6 mtu 设置,路由器我还没见过有这个设置的,我设置过 ipv6 的 mtu 为 1280 ,比设置成其它的产生的问题少
    lxll
        31
    lxll  
       2023-10-29 23:17:08 +08:00 via Android
    h3c 支持的,cli 接口视图: ipv6 mtu xxx ,其实 v4v6 mtu 保持一致即可,tcp mss v6 需要比 v4 小 20
    znsb
        32
    znsb  
    OP
       2023-10-31 22:10:42 +08:00 via Android
    @ysc3839 一头雾水😵‍💫,所以就是只改 tcp-mss 就 OK 了吗?那 mss 大小是多少?
    下面我这个防火墙规则有问题吗:
    iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -o pppoe-wan -j TCPMSS --set-mss 1200

    ip6tables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -o pppoe-wan -j TCPMSS --set-mss 1280

    iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -i pppoe-wan -j TCPMSS --set-mss 1200

    ip6tables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -i pppoe-wan -j TCPMSS --set-mss 1280

    还有就是 FORWARD POSTROUTING PREROUTING 这三规折表哪个表里设置 mss 才是正确的(我看网上说法五花八门)
    ysc3839
        33
    ysc3839  
       2023-10-31 22:19:56 +08:00 via Android   ❤️ 1
    @znsb 大多数情况下是的。
    我不懂 iptables ,我自己用的是 OpenWrt ,是直接在防火墙设置里开启 MSS Clamping 就行了。
    beyondstars
        34
    beyondstars  
       2023-11-20 20:31:05 +08:00
    @me1onsoda 对于 IPv6 ,路由器遇到大于 MTU 的包会返回 ICMPv6 type 2 报文,发送方根据这个消息把 packets 拆小再发送。 参见 https://en.wikipedia.org/wiki/Path_MTU_Discovery
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2647 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 11:49 · PVG 19:49 · LAX 03:49 · JFK 06:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.