一个应用程序(比如浏览器)在访问双栈的网络的域名时,走 IPv4 网络还是 IPv6 网络是由什么决定的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
7DLNU56W
V2EX    互联网

一个应用程序(比如浏览器)在访问双栈的网络的域名时,走 IPv4 网络还是 IPv6 网络是由什么决定的?

  •  
  •   7DLNU56W 2021-02-15 00:11:42 +08:00 2227 次点击
    这是一个创建于 1704 天前的主题,其中的信息可能已经有所发展或是发生改变。

    假设一个计算机是 IPv4 和 IPv6 双栈的,通常的话,访问 IPv4 地址就走 IPv4 的网络,访问 IPv6 地址就走 IPv6 的网络。但如果访问的不是 IP 地址,而是一个域名,该由什么决定到底访问 IPv4 地址还是访问 IPv6 地址呢?

    是这个应用程序本身决定的还是有操作系统或者是网络配置决定的呢,会不会一个域名配置了 AAAA 记录,没有配置 A 记录,但应用程序就要求只能用 IPv4 地址?

    如果这个域名既配置了 A 记录又配置了 AAAA 记录,那是用 IPv4 地址还是用 IPv6 地址呢?

    第 1 条附言    2021-02-15 01:44:26 +08:00
    除了走 v4 还是 v6 以外,还要 DNS 应该用 v4 的 DNS 还是 V6 的 DNS 是怎么确定的?
    第 2 条附言    2021-02-15 13:31:17 +08:00
    经过进一步查询相关资料,结局了部分问题(为啥我发帖的时候查了好半天也没找到?):
    当某个域名解析结果出来后,如果既有 A 记录又有 AAAA 记录,那么究竟走 IPv4 还是 IPv6 是由一个注册表项决定的:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\ 名称为 DisabledComponents

    但一个域名究竟是使用 IPv6 的 DNS 服务器进行解析还是使用 IPv4 的 DNS 服务器进行解析不知道是由什么决定的,但经过测试,似乎只要是配置了 IPV6 的 DNS 就会用 IPv6 的 DNS 解析,而且解析无返回结果的话,直接返回无解析记录,而不是换用 IPv4 的 DNS 。这个大家知道有什么调整的方法么?比如调整为优先使用 IPV4 DNS,或者优先使用 IPv6 DNS 但当无返回结果时,换用 IPv4 DNS 再次解析。
    3 条回复    2021-02-15 02:45:24 +08:00
    avrillavigne
        1
    avrillavigne  
       2021-02-15 00:47:01 +08:00
    wwqgtxx
        2
    wwqgtxx  
       2021-02-15 00:47:20 +08:00 via iPhone
    根据程序使用的 net 库决定,比如 golang 标准库是同时访问 AAAA 和 A 记录的地址(既 v4/v6 之间并发,v4/v6 组内顺序访问),然后选择第一个连上的地址
    raptium
        3
    raptium  
       2021-02-15 02:45:24 +08:00 via iPhone
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1135 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 17:43 PVG 01:43 LAX 10:43 JFK 13:43
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86