开启 ipv6 之后,仍然想优先用 ipv4 的 dns 怎么办? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
phpfpm
V2EX    宽带症候群

开启 ipv6 之后,仍然想优先用 ipv4 的 dns 怎么办?

  •  
  •   phpfpm 2022 年 3 月 26 日 7565 次点击
    这是一个创建于 1395 天前的主题,其中的信息可能已经有所发展或是发生改变。

    网络拓扑 /ipv6 开启方式:

    1. TL-R483G ,选择复用 ipv4 拨号,开启前缀授权;
    2. LAN 侧,用 SLAAC 的 DHCP 方式分发 DHCPIP
    3. 客户端:macos 15 ,在 test-ipv6 网站上 10 分满分通过
    4. ipv4 的 lan 侧,设置旁路网关( DNS 和 gateway 都是 192.168.0.2 )
    5. 在旁路网关上有一些自定义解析(类似 test.com)

    遇到的问题

    在成功获取 ipv6 ip 的机器上执行 dig

    $ dig test.com ;; SERVER: 2409:8a00: ... (反正是没结果) $dig -4 test.com ;; SERVER: 192.168.0.2#53(192.168.0.2) 结果正常 

    想问的问题

    1. ipv4 和 ipv6dns 选路的问题,我该在哪层处理?

    A 操作系统:修改配置

    B 网关层:好像也干不了啥

    C 路由器层(提供 DHCP 服务的)

    12 条回复    2022-03-27 13:51:38 +08:00
    jacyl4
        1
    jacyl4  
       2022 年 3 月 26 日
    建一个 dns 服务器,提供双栈优选或者 ipv4 解析优先功能。
    Kiriya
        2
    Kiriya  
       2022 年 3 月 26 日
    装个 adguardhome (在操作系统或软路由) 然后设置只解析 IPV4
    JensenQian
        3
    JensenQian  
       2022 年 3 月 26 日
    windows 下 netsh 可以改 v4 优先的,不过我电脑一般都是把 v6 关了的
    JensenQian
        4
    JensenQian  
       2022 年 3 月 26 日
    @JensenQian #3 不好意思,看错了,我以为是设备上访问网站 v4 优先,dns 的话路由器上 smartdns 里面有个双栈 ip 优选功能,可能适合楼主
    phpfpm
        5
    phpfpm  
    OP
       2022 年 3 月 26 日
    @Kiriya emm 但是对于 v6 还是有需求的
    phpfpm
        6
    phpfpm  
    OP
       2022 年 3 月 26 日
    @JensenQian 但是有个问题诶

    我的 ipv6 的 dns 是 0.1 分配的,v4 的 dns 也是 0.1 分配的( dns0.2 ,网关 0.2 )
    那么 0.1 在做 ipv6 slaac 的时候应该分配的 ipv6 的 dns (我这边看是 2409 开头的公网地址)

    就是说我建好 dns 之后,至少应该 listen 一个 v6 的端口,地址是一个静态地址还是内网可达的一台机器?
    yaott2020
        7
    yaott2020  
       2022 年 3 月 26 日 via Android
    mosdns 可以优先 v4
    Hconk
        8
    Hconk  
       2022 年 3 月 26 日 via iPhone
    我在 windows 上是通过改注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\ ,加一个 DWORD 类型的 DisabledComponents ,值为十进制 32 。优先使用 ipv4 。
    Linux 有也可以配置 https://xmsg.org/wordpress/2020/03/在 linux 中设置优先使用 ipv4 而不是 ipv6 转 / 。
    macOS 没找到,应该可以在路由加个 smartdns 服务,配置双栈优选功能来实现。
    jim9606
        9
    jim9606  
       2022 年 3 月 26 日   1
    我建议的做法是,主路由(也就是发送 RA 的路由)配置禁用 DHCPv6 (有状态和无状态都禁用),配置发送的 RA 不包含 RDNNS option ( RA option 25 ,RFC5006 ),或者将这个选项覆写为旁路由地址。Openwrt 支持这些配置。

    Android 据说仅支持 RA option 25 ,macos 和 win 仅支持 DHCPv6 DNS option ,所以理论上只要禁用 DHCPv6 就够了。

    需要注意,DNS 服务器是 v4 还是 v6 并不影响 DNS 响应本身是否包含 AAAA 记录( IPv6 记录)
    phpfpm
        10
    phpfpm  
    OP
       2022 年 3 月 27 日
    @jim9606 感谢详细解答,我一点点理解一下

    1 RA 是指?分配 ip(v4/v6)的 DHCP 服务吗?
    2 dhcp v6 也可以支持 AAA 记录,这个我理解了
    phpfpm
        11
    phpfpm  
    OP
       2022 年 3 月 27 日
    @jim9606

    单开一个楼说下我的进展。

    1. 主路由( pppoe 拨号)保持自动获取 ipv6 地址+运营商的 dns

    2. 主路由的 lan 侧:

    启用 ipv6 ,采取 EUI-64 的分配方式,ip 地址前缀取从 wan1 口获取的地址前缀(自动配置的)


    3. SLAAC 设置

    DNS 配置方式选择 DHCPv6 (还有 RDNSS 备选,我没用)

    首选 DNS 服务器选择旁路由的 v6 的地址


    4 旁路由( N1 ,openwrt )

    接口新建一个 lanv6 ,选择 dhcp 客户端,防火墙区域选择 lan

    这样就得到了步骤 3 需要的内网的 dns 地址了

    5 设备效果

    macos 重启设备之后会,dig/dig -6 都返回 N1 的 v6 地址做的 dns 解析的 A v4 地址

    网络管理看到了有两个 dns ,分别是 0.2 和 0.2 的 LANv6 端口的地址

    windows 重启之后 nslookup 的 server 会命中 N1 的 v6 地址


    test-ipv6 10 分满分通过


    6 总结

    slaac 也可以通告一个 v6 的 dns ,只需要让旁路由获取 v6 的地址即可
    jim9606
        12
    jim9606  
       2022 年 3 月 27 日
    @phpfpm
    1. RA=Router Advertisement (路由通告),这是所有 IPv6 设备必须支持的功能,不管何种地址分配方式均需要 RA ,用来通告可用前缀和网关链路地址,Android 还会通过 RA 获取 DNS 服务器,好像 macos 和 windows 都不会通过 RA 获取 DNS 服务器。
    2. DNS 响应是否包含 A 记录 /AAAA 记录与 DNS 服务器 IP 是 IPv4 还是 IPv6 无关,也就是说,DNS 服务器地址是从何种方式获得跟 DNS 响应没有任何关系。

    实际上我非常怀疑所谓 DNS 双选的意义,因为它是通过不返回 A 记录或者不返回 AAAA 记录实现的。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1297 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 23:53 PVG 07:53 LAX 15:53 JFK 18:53
    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