IPv6下,部分腾讯服务加载问题的原因及解决方法
ipv6吧
全部回复
仅看楼主
level 7
ドロドロ 楼主
原因:
·通过IPv6 DNS解析获得的GlobalSign OCSP证书服务器地址不可用
在访问GlobalSign的OCSP服务时,操作系统默认优先使用IPv6的DNS解析域名。由于GlobalSign的OCSP服务器并没有双栈,即使是IPv6的DNS,返回的也是IPv4的地址。
但有些时候,返回的地址并不可用。实际上,即使是使用IPv4的DNS,不同时候解析到的地址也不同。在基于DNS轮询的负载均衡下,这本是很常见的事,但通过实测发现,(*在我的网络环境下)除了首选地址外,其余的都几乎无法连通。
问题就出于IPv4的DNS解析得到的首选地址与IPv6 DNS所得到的不同,而当后者无法正常连通时,网站证书无法得到验证,因此一直处于“正在建立安全连接”的状态。
解决方法:
·使用运营提供的DNS
如果你自行修改过网络配置,使用了IPv6的公共DNS,请换回运营商提供的DNS。
实际上,在现阶段(19年9月),绝大部分情况下使用运营商的DNS才是最优的。现有的IPv6公共DNS连通性往往较差,这需要等到IPv6骨干网成熟后才能改善。这也是大型的云服务提供商一直没有推出IPv6公共DNS的原因。
·给IPv6配置IPv4的DNS
很遗憾的是,即使使用运营商提供的DNS,这个问题仍然有可能存在。
目前较完美的解决方法是通过IPv4映射地址,把现有的优质IPv4 DNS作为IPv6网络的首选DNS。
IPv4和IPv6的DNS,实际上只是使用的网络不同,其内容本身是没有区别的。IPv6的DNS能够返回IPv4的地址(A记录),同样IPv4的DNS也可以返回IPv6的地址(AAAA记录)。
具体操作在楼下贴出。
2019年09月18日 15点09分 1
level 7
ドロドロ 楼主
·Windows
Windows的设置方法相当简单,只需手动设置DNS为以下格式即可。
————————————————————
::ffff:119.29.29.29
::ffff:223.5.5.5
————————————————————
::ffff:1.2.3.4格式为IPv4映射地址,最后的部分可以改为你需要使用的IPv4 DNS。请注意冒号和点。
设置好后,IPv6会使用该IPv4的DNS进行域名解析。只要网站有提供IPv6访问,便会返回适当的地址,不会影响当前的IPv6网络。
目前发现的问题是,nslookup命令会出错:
但在后面加上服务器就可以正常解析:
Windows的IPv6网络访问是没有问题的。(上图Ping可以看出)
估计是在nslookup时,识别网络为IPv6,但是没有使用IPv4映射地址而是直接用了映射后的IPv4进行操作,所以出现这个错误。
如果有更多的类似情况,可能需要操作注册表。
·手机
没啥好说的,直接看图吧。
因为我路由器做了设置,所以这里显示自动,手动的设置是一样的。
建议IPv4和IPv6都设置上去。
2019年09月18日 15点09分 2
阿里已开通IPv6的DNS,2400:3200::1和2400:3200:baba::1
2020年04月11日 05点04分
level 7
ドロドロ 楼主
以上的操作虽然简单,但对每台设备都设置难免有点繁琐。或者家里来客人的时候,想必也懒得去说明。
最好的方法就是直接在路由器上设置。
每款路由器设置不同,有些可能不支持10进制的IPv4映射地址,甚至根本不能自定义。
如果路由器不支持10进制IPv4映射地址的话,可以把IPv4的部分改为16进制:
::ffff:119.29.29.29 → ::ffff:771d:1d1d
::ffff:223.5.5.5 → ::ffff:df05:0505
IPv4地址对应IPv6的最后两段,注意冒号。
具体转换请自行解决,这里发不出来。
这里只列出OpenWrt的设置方法
·OpenWrt
1.关闭OpenWrt的DNS服务
※如果你不想关闭,需要对/tmp/resolv.conf.auto进行操作,这里不赘述
进入DHCP和DNS的基本设置,把“本地域”清空(默认为“lan”)
进入DHCP和DNS的高级设置,把“DNS服务器端口”改为“0”(默认为53)
保存并应用
以上操作可以通过SSH使用uci命令完成
uci -q delete dhcp.@dnsmasq[0].domain
uci set dhcp.@dnsmasq[0].port="0"
uci commit dhcp
/etc/init.d/dnsmasq restart
2.LAN推送DNS
先进入“网络”--“接口”--找到“LAN”并编辑
拉到下面的“DHCP服务器”位置(上面的“自定义DNS”是不关事的)
在“高级设置”中,输入DHCP选项为
6,119.29.29.29,223.5.5.5
注意DNS地址前面有个“6,”,这是必须的,否则无法正常推送
在“IPv6设置”中,输入“广播的DNS服务器”为
::ffff:119.29.29.29
::ffff:223.5.5.5
保存并应用
同样可以在SSH里面操作
uci -q delete dhcp.lan.dhcp_option
uci -q delete dhcp.lan.dns
uci add_list dhcp.lan.dhcp_option="6,119.29.29.29,223.5.5.5"
uci add_list dhcp.lan.dns="::ffff:119.29.29.29"
uci add_list dhcp.lan.dns="::ffff:223.5.5.5"
uci commit dhcp
/etc/init.d/dnsmasq restart
/etc/init.d/odhcpd restart
2019年09月18日 16点09分 3
重要:请查看5楼补充内容。
2019年09月18日 18点09分
level 7
ドロドロ 楼主
其实IPv6访问IPv4映射地址是不通的。(至少目前来说)
这个操作实际上就是弄个不存在的DNS服务器上去,系统立刻发现不通就会转到IPv4解析,以达到强制使用v4DNS的目的。大多数系统不允许在IPv6的DNS服务器一栏输入IPv4地址,所以才需要用到IPv4映射地址。
因此,在对路由器进行设置的时候,一定不要留可用的v6DNS,否则优先级就会高于v4DNS,还是会用它来解析。
2019年09月18日 17点09分 4
level 7
ドロドロ 楼主
·OpenWrt补充
由于OpenWrt默认固定Dnsmasq的127.0.0.1#53作为DNS
修改后会导致路由器本身无法访问域名,需要手动指定外部DNS
rm /etc/resolv.conf
# 原本的/etc/resolv.conf为符号链接,指向Dnsmasq生成的/tmp/resolv.conf
# 手动指定时,需要把原来的符号链接删除后新建一个普通文件
vim /etc/resolv.conf
# 输入以下内容
nameserver 119.29.29.29
nameserver 223.5.5.5
保存,即时生效无需重启服务
2019年09月18日 18点09分 5
level 12
[酷]
2019年09月19日 16点09分 6
level 4
技术贴,马克一下
2019年09月26日 02点09分 7
level 1
mark
2019年09月30日 19点09分 8
level 1
给大佬膜拜
2019年10月16日 19点10分 9
level 1
厉害了,解决了困扰我很久的问题,感谢!
2019年11月23日 11点11分 10
level 1
但是这样打开网页会慢很多
2019年11月26日 06点11分 11
level 1
老哥,可以给个联系方式请教一下吗。想搞ipv6,移动的人不懂,自己不敢轻易下手
2020年02月10日 18点02分 12
私信你了
2020年02月12日 18点02分
@ドロドロ 看了下私信。没有呀老哥
2020年02月12日 19点02分
level 1
老哥,router下可以设置吗?
2020年02月18日 01点02分 13
要看路由器系统支不支持。详细设置方法每款都不同。
2020年02月18日 11点02分
level 1
我是小白,路由器把ipv6关了就没网了,但是ipv6腾讯视频不能加载图片,所以是不是这样弄的,会影响网速吗
2020年03月13日 10点03分 15
阿里已开通IPv6的DNS,2400:3200::1和2400:3200:baba::1
2020年03月14日 08点03分
level 1
确实好像发现了这个问题,在IPv6下,显示qq。com有些图片都看不了
切回纯IPv4了
2020年03月14日 05点03分 16
1 2 尾页