V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
halczy
V2EX  ›  Linux

Linux 下如何优先使用 IPv6 DNS 呢?

  •  
  •   halczy ·
    halczy · 2015-01-05 23:17:36 +08:00 · 2326 次点击
    这是一个创建于 3411 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想让Ubuntu像Windows 8.1那样优先使用IPv6 DNS和优先查询AAAA记录. 但是发现Ubuntu还是会优先使用IPv4 DNS来查询.

    结果是被GFW抢答.
    $ dig @74.82.42.42 youtube.com AAAA

    ;; QUESTION SECTION:
    ;youtube.com. IN AAAA

    ;; ANSWER SECTION:
    youtube.com. 3556 IN A 37.61.54.158

    ;; Query time: 73 msec
    ;; SERVER: 74.82.42.42#53(74.82.42.42)

    正确的解析结果应该是:
    $ dig @74.82.42.42 youtube.com AAAA

    ;; QUESTION SECTION:
    ;youtube.com. IN AAAA

    ;; ANSWER SECTION:
    youtube.com. 10 IN AAAA 2607:f8b0:4001:c05::88

    ;; Query time: 33 msec
    ;; SERVER: 74.82.42.42#53(74.82.42.42)

    在网上查了半天都没有找到什么好方法. IPv6用的是HE的6to4, 想让Ubuntu先用IPv6来解析, 我现在的设置是
    /etc/gai.conf

    label ::1/128 0
    label ::/0 1
    #label 2002::/16 2
    label ::ffff:0:0/96 2
    label fec0::/10 3
    label fc00::/7 4
    label 2001:0::/32 5
    label ::/96 6

    precedence ::1/128 50
    precedence ::/0 40
    precedence 2002::/16 30
    precedence ::/96 20
    precedence ::ffff:0:0/96 10

    /etc/resolv.conf
    
    nameserver 2001:4860:4860::8844
    nameserver 2001:4860:4860::8888
    nameserver 209.244.0.3
    
    第 1 条附言  ·  2015-01-06 01:38:21 +08:00
    终于用了一个比较粗暴的方法解决了. GUI那个Network Manager好像有问题, 不认IPv6 DNS服务器, 导致所有流量都往IPv4 DNS跑了.

    在/etc/resolvconf/resolv.conf.d/head 这里写入想用的DNS.

    nameserver 2001:470:20::2
    nameserver 2620:0:ccc::2
    nameserver 2001:4860:4860::8888

    然后运行$ sudo resolvconf -u
    再 $cat /etc/resolv.conf 看看那些IPv6的DNS写进入没有.

    $ sudo service network-manager restart
    $ dig youtube.com

    看输出底部是不是
    ;; Query time: 289 msec
    ;; SERVER: 2001:470:20::2#53(2001:470:20::2)
    这样的, 如果是就OK了.

    现在应该能解析出来IPv6地址了.
    8 条回复    2015-01-06 16:54:14 +08:00
    zro
        1
    zro  
       2015-01-06 00:32:37 +08:00   ❤️ 1
    6to4的优先级比较低,试下用6in4吧
    aaaa007cn
        2
    aaaa007cn  
       2015-01-06 01:34:58 +08:00   ❤️ 1
    走 ipv4 查询 AAAA 记录当然会被抢答
    甚至你查询 NS 记录、MX 记录都一样会被抢答
    别指望 $ dig @74.82.42.42 youtube.com AAAA 会返回正确结果

    看 /etc/resolv.conf
    应该是先查询那两个 ipv6 的 dns 啊
    halczy
        3
    halczy  
    OP
       2015-01-06 01:39:48 +08:00
    @aaaa007cn

    刚刚解决了, 之前/etc/resolv.conf一直只有127.0.0.1
    efi
        4
    efi  
       2015-01-06 02:15:42 +08:00
    gai.conf
    latyas
        5
    latyas  
       2015-01-06 02:39:39 +08:00
    /etc/resolv.conf顺序解析
    datou
        6
    datou  
       2015-01-06 16:31:03 +08:00
    @zro he的tunnelbroke就是6in4
    zro
        7
    zro  
       2015-01-06 16:50:16 +08:00
    @datou 我知道,所以就奇怪楼主是怎么用HE的6to4的
    halczy
        8
    halczy  
    OP
       2015-01-06 16:54:14 +08:00 via iPhone
    @zro 我打错了,是6in 4
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5640 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 09:03 · PVG 17:03 · LAX 02:03 · JFK 05:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.