开启ipv6网速反而变慢了[ipv6开启好还是禁用好]

发现最近经常有人提到开启IPv6连接速度慢的问题。目前国内确实存在支持IPv6的服务器、CDN节点不够多,IPv6国际带宽比IPv4带宽小的问题,但也不至于会打开国

发现最近经常有人提到开启 IPv6 连接速度慢的问题。目前国内确实存在支持 IPv6 的服务器、CDN 节点不够多,IPv6 国际带宽比 IPv4 带宽小的问题,但也不至于会打开国内网站都卡。通常情况下遇到这个问题说明你到目标服务器的链路上存在 PMTU 黑洞。

开启ipv6网速反而变慢了[ipv6开启好还是禁用好]

关于 PMTU 黑洞
MTU (Maximum transmission unit) 是一条链路上可以通过的三层数据包的最大尺寸(包含 IP 包头)。以太网上默认的 MTU 是 1500 字节,但是你和目标服务器之间的路径上可能存在小于 MTU 1500 的链路。这条路径上最小的 MTU 值就是整条路径的 PMTU 值。路由器在转发包时,超过 MTU 大小的包会被分片( Fragmentation ),也就是一个大包会被分切为多个不超过 MTU 的小包进行传输,传输效率会下降。

终端设备在发包时,也可以设置 DF ( Don’t Fragment )标记来告诉路由器不要分片。这时中间路由器会丢掉超过 MTU 的包,回复一条 ICMP Fragmentation Needed 消息。发送者收到这个包后,下次就会发小一点的包,这个过程叫做 PMTU Discovery 。现实中可以看到 HTTPS ( TLS )的流量大都是带 DF 标记的。

然而,互联网上有大量的中间设备为了所谓的“安全”或者没有正确配置,不回应 ICMP Fragmentation Needed 包,这使得访问某些网站时如果某个包的大小超过了 PMTU,会被无声地丢弃,直到 TCP 协议发现超时丢包进行重传,这非常缓慢。遇到这种情况,我们可以说你和目标服务器的路径上存在 PMTU 黑洞。

此外,IPv6 不支持分片,换句话说可以理解为 IPv6 下所有的包都是带 DF 标记的。中间路由器在遇到包尺寸大于 MTU 的情况时,应该回应 ICMPv6 Packet Too Big 消息。同样的,由于种种原因,某些中间设备可能会直接丢包而不回应 ICMPv6 Packet Too Big 消息,直到 TCP 协议发现超时丢包进行重传。。。

为什么 IPv4 没有这个问题
其实 IPv4 也有这个问题,我不只一次见网友说自己搭的软路由访问某些网站非常慢,而换回硬路由就正常。这是因为多数家用路由器默认对 IPv4 下的 TCP 开启了 MSS (maximum segment size) Clamping (使用 OpenWRT 软路由的朋友们可以在防火墙设置中找到 MSS Clamping 开关)。MSS Clamping 是针对 PMTU 黑洞的 Workaround,简单来说就是 TCP 握手时有个 MSS 字段决定单个 TCP 包的最大尺寸。路由器可以通过嗅探 TCP 握手包,把 MSS 值改小,使最终的三层 IP 包的尺寸( MSS+TCP 头大小+IP 头大小)不超过某个特定的值。

总结
现在国内 ISP 一般都是通过 PPPoE 虚拟拨号建立 WAN 口连接的。Ethernet 的默认 MTU 是 1500,但是 PPPoE 隧道有 8 个 bytes 的开销,所以 PPPoE 虚连接的 MTU 就是 1500-8=1492,减掉 IPv4 包头( 20 字节)和 TCP 包头( 20 字节),可以得知 IPv4 下需要把 MSS 设为 1452 以下。

IPv6 的包头是 40 字节,所以 IPv6 下需要把 MSS 设为 1432 以下。

这时问题来了,目前很多光猫、家用路由器对 IPv6 的优化很差,不支持对 IPv6 下的 TCP 包进行 MSS Clamping,这就导致访问 IPv6 网站时,若路径中存在 PMTU 黑洞,则打开很慢。

我前段时间帮朋友配置 IPv6 时发现了很多光猫、家用路由器的固件问题,使得国内使用 IPv6 的体验不太理想。我打算抽空专门开一个帖子去讨论这些问题,声讨那些垃圾厂家。目前来看,要想在国内比较理想地体验 IPv6,你需要把光猫改为桥接模式,并使用 OpenWRT 或者 VyOS 这类对 IPv6 支持较好的软路由。

附:在基于 Linux 的路由器启用MSS Clamping的命令:

自动MSS,假设PPPOE虚接口是pppoe0
iptables -t mangle -A POSTROUTING -p tcp –tcp-flags SYN,RST SYN -o pppoe0 -j TCPMSS –clamp-mss-to-pmtu
ip6tables -t mangle -A POSTROUTING -p tcp –tcp-flags SYN,RST SYN -o pppoe0 -j TCPMSS –clamp-mss-to-pmtu

手动指定MSS,假设PPPOE虚接口是pppoe0
$ iptables -t mangle -A POSTROUTING -p tcp –tcp-flags SYN,RST SYN -o pppoe0 -j TCPMSS –set-mss 1452
$ ip6tables -t mangle -A POSTROUTING -p tcp –tcp-flags SYN,RST SYN -o pppoe0 -j TCPMSS –set-mss 1432

RouterOS里设置MSS的命令。其中pppoe-out1是wan口,1420是要MSS值,请根据需要修改。

/ipv6 firewall mangle add chain=forward out-interface=pppoe-out1 protocol=tcp tcp-flags=syn action=change-mss new-mss=1420

UBNT Edgerouter 系列的MSS设置方法:

set firewall options mss-clamp6 interface-type pppoe
set firewall options mss-clamp6 mss 1420

(0) 打赏 开启ipv6网速反而变慢了[ipv6开启好还是禁用好]

01 Facebook(脸书-外国版的人人网) Facebook是美国的一个社会化网络站点,中文网名译为“脸谱网”,于2004年2月由马克·扎克伯格与他的哈佛大学室友创建,总部位于…

开启ipv6网速反而变慢了[ipv6开启好还是禁用好]

自古以来,中国人都是最为注重礼仪,重视感情的。所以,逢年过节,带着礼物走亲访友就成了一个不成文的习惯。而在这些礼物中,最为突出的就要属烟酒糖茶了。 不过,烟酒糖茶在这些年里也成为了…

开启ipv6网速反而变慢了[ipv6开启好还是禁用好]

过年在家的时候,发现电池鼓包了,上周刚去 Apple Store 换了电池,本文记录一下电池维修的过程。 背景介绍 我的电脑是 MacBook Pro 2018,是 18 年 7 …

开启ipv6网速反而变慢了[ipv6开启好还是禁用好]

如果你还不会用微信支付或支付宝支付,可能都会有人笑话你,移动支付时代,谁还不会用这个?可是,在使用微信支付的时候,也是会存在一些套路的,我们稍有不慎,就会被套路进去。 比方说:我们…

开启ipv6网速反而变慢了[ipv6开启好还是禁用好]

对于很多手游玩家来说,玩过的游戏千千万,但最爱的始终是那么几款。比如在B站UP主星球数据发布的2022年1月手游热度排行榜中,《王者荣耀》继续蝉联第一,凭借756977热度值登顶,…

开启ipv6网速反而变慢了[ipv6开启好还是禁用好]

大家都知道,芦荟胶是从天然芦荟里提取出来的,它不仅可以起到舒缓肌肤、镇静消炎的作用,还可以有效地消除痘印。除此之外,当我们不小心烫伤或者是划破伤口时,可以在伤口处抹上芦荟胶,也有着…

SEO专员 2022年2月25日 投稿 00

  • 代驾需要什么条件才可以加入(代驾需要什么条件一个月能拿多少钱) 投稿

    代驾需要什么条件才可以加入(代驾需要什么条件一个月能拿多少钱)

    代驾软件和代驾系统上市以来,陆续接到过很多客户的咨询,经常会问到“代驾公司怎么注册?需要什么条件?”,很多人都不了解开公司的一些流程,下面为您详细解答。 1、租凭办公场所种类 民宅…

    味道哥 2021年10月12日 00

  • seo优化 收费怎么做(seo优化 收费的3大价格解析) 投稿

    seo优化 收费怎么做(seo优化 收费的3大价格解析)

    SEO关键词优化一般都是依照关键词指数而收费的,关键词指数越高,价格越高。而且每个外包公司的服务、技术等都会存在差异,所以优化关键词预期作用也是不同的。 SEO关键词优化的价格是多…

    SEO专员 2022年10月23日 00

  • 本文内容由互联网用户自发贡献,该文观点仅代表作者本人。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 5733401@qq.com 举报,一经查实,本站将立刻删除。本文链接:https://fajihao.com/i/123454.html

    (0)
    星空的头像星空
    上一篇 2022-11-08
    下一篇 2022-11-08

    相关推荐