IPv6 导致对 Microsoft CDN 的 TCP SSL 请求失败(连接重置)

IPv6 导致对 Microsoft CDN 的 TCP SSL 请求失败(连接重置)

笔记:以下内容仅适用于启用 IPv6 的情况。如果我通过 Windows 中的控制面板/适配器设置禁用 IPv6,则一切正常。请参阅底部的最新更新。


  • Windows 10 桌面版
  • -> 有线以太网连接
  • -> 运行 OpenWRT (r49377) 的 Linksys EA3500 路由器
  • -> TWC 调制解调器设置为直通

从我的桌面向多个 Microsoft CDN 发出的 SSL TCP 请求失败,并出现连接重置错误。示例域:

https://go.microsoft.com
https://i.s-microsoft.com
https://c.s-microsoft.com
https://assets.onestore.ms

但是,其他 Microsoft 域名(如www.microsoft.com)可以正常工作。

Fiddler 捕获: https://gist.github.com/yo1dog/46d2604c9dc9c84b2de7225ebc25b263

Wireshark 捕获: http://yo1.dog/share/microsoftReset.pcapng

注意:Firefox 会自动重试 10 次,这就是为什么会有 10 次请求失败。

如您所见,服务器在握手期间终止了连接。从 fiddler 捕获中:HTTPS handshake to go.microsoft.com (for #1) failed. System.IO.IOException Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.我真的不知道如何读取 Wireshark 的内容,但它也显示了连接中断:[RST, ACK]

  • 我还没有发现其他网站或服务有这个问题。
  • 运行全新(1-2 周前)安装的 Windows 10 64 位。
  • 今天第一次注意到这个问题。我思考大约一周前我没有遇到这个问题。
  • 我没有对 Windows 防火墙或我能想到的任何代理设置进行任何更改。
  • 我没有对路由器或调制解调器做任何更改。
  • 通过 wifi 连接到同一路由器的任何移动设备都不会出现这个问题(我没有其他带有以太网端口的设备)。
  • 我尝试了不同的请求方法:Firefox、IE 和System.Net.WebClient.DownloadStringPowerShell。

如果我在浏览器中访问 microsoft.com,页面会变得乱糟糟的,因为大多数 CSS 和 JavaScript 都无法加载,因为它们是由 CDN 提供的。其他人也遇到这种情况了吗?

有什么想法/调试建议吗?


更新:一些请求现在按预期进行,但有些请求仍然失败。我猜这意味着 CDN 的一些代理服务器出现了问题。现在我将继续重试,希望我能得到一个好的服务器。


更新:3 天后,这个问题仍然存在。我还没看到其他人抱怨这个问题。我又开始想这个问题出在我这边,但我不知道是什么问题。


更新:我发现,当我在 Windows 控制面板/适配器设置中禁用 IPv6 时,一切都正常工作。为什么启用 IPv6 会导致与 Microsoft CDN 的 SSL 连接尝试失败?

相关内容