Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
halczy
V2EX  ›  Linux

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

  •  
  •   halczy ·
    halczy · Jan 5, 2015 · 3003 views
    This topic created in 4172 days ago, the information mentioned may be changed or developed.

    想让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
    
    Supplement 1  ·  Jan 6, 2015
    终于用了一个比较粗暴的方法解决了. 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 replies    2015-01-06 16:54:14 +08:00
    zro
        1
    zro  
       Jan 6, 2015   ❤️ 1
    6to4的优先级比较低,试下用6in4吧
    aaaa007cn
        2
    aaaa007cn  
       Jan 6, 2015   ❤️ 1
    走 ipv4 查询 AAAA 记录当然会被抢答
    甚至你查询 NS 记录、MX 记录都一样会被抢答
    别指望 $ dig @74.82.42.42 youtube.com AAAA 会返回正确结果

    看 /etc/resolv.conf
    应该是先查询那两个 ipv6 的 dns 啊
    halczy
        3
    halczy  
    OP
       Jan 6, 2015
    @aaaa007cn

    刚刚解决了, 之前/etc/resolv.conf一直只有127.0.0.1
    efi
        4
    efi  
       Jan 6, 2015
    gai.conf
    latyas
        5
    latyas  
       Jan 6, 2015
    /etc/resolv.conf顺序解析
    datou
        6
    datou  
       Jan 6, 2015
    @zro he的tunnelbroke就是6in4
    zro
        7
    zro  
       Jan 6, 2015
    @datou 我知道,所以就奇怪楼主是怎么用HE的6to4的
    halczy
        8
    halczy  
    OP
       Jan 6, 2015 via iPhone
    @zro 我打错了,是6in 4
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3389 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 504ms · UTC 11:30 · PVG 19:30 · LAX 04:30 · JFK 07:30
    ♥ Do have faith in what you're doing.