具体现象是设置了 ONT (光猫)为桥接,家用路由器(刷了自定义固件,如 OpenWRT, Tomato 等)上拨号得到公网 IP 并使用
HE.NET 的 6in4 隧道,家用路由器里的设备可以获取到 IPv6 地址并 ping 通
ipv6.google.com ,但是浏览器访问却像卡住一样,等几十分钟都没办法打开网页。
许多类似的情况:
https://www.chiphell.com/thread-1722770-1-1.htmlhttps://www.v2ex.com/t/366940https://www.v2ex.com/t/362099#r_4379391@
sengxian @
Sjmr进一步测试
1、正如 @
Sjmr 说的,ONT 调试日志里打印一堆
kernel: ^[[0;33;41m[ERROR pktrunner] add_fwd_commands,519: Unable to determine if the flow is routed/bridged (519)^[[0m
2、确认与隧道 MTU 无关,从 1280 修改到默认 1480 都无效。
3、更为奇特的是,用
http://test-ipv6.com 测试,居然网络得分是 10/10,也就是 IPv6 是通的,点击“测试数据”“技术信息”,里面的“ IPv6 大封包测试”,浏览器居然可以访问里面的 URL ;可是“其他 IPv6 网站”测试,除了少数网站可以测试通过(但是响应速度极慢),列表中的多数都测试是无法访问(一直是等待响应状态)。
之前一直不怀疑 ONT 的原因是,已经设置成桥接了,并且 6in4 是打包 IPv6 数据包到 IPv4 中,只要 v4 通,v6 就应该通的,并且还确实 ping 通了。但这样测试下来,现在只能怀疑 ONT 有问题了。
正好手头有几个 ONT,换来测试,发现问题果然是在 ONT 上。
出问题的:悦 me TEWA-600 (千兆 LAN 口,电信定制界面固件);
没问题的:中兴 F460 (百兆 LAN 口,电信定制界面固件)、华为 HG8245H (用 HG8245C2 改,千兆 LAN 口,非电信定制界面固件)。
结论:某些 ONT 应该使用了不标准的(或者未经充分测试的)实现,导致 6in4 出这样问题。解决办法:换!
延伸探讨:到底是 ONT 里的软件没写好,还是和硬件也有关系?换句话说,厂家如果更新固件,是否能解决?相应的,悦 me 也有华为、中兴产的(看起来都是电信定制的软件界面,和其他厂家的一样),是否就没这个问题(因为手头没有找到足够的设备,无法验证)?
这些出问题的 ONT,设置界面都提供了 IPv6 选项(当然,没出问题的,也有 IPv6 选项),难道用原生的就没问题?所以厂家没充分测试?
桥接下,直接 PPPoE 下,还能影响应用层面的数据传递,底层原因究竟是什么?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/389690
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.