birdkyle79
V2EX  ›  DNS

为什么每次 DNS 查询的结果都不一样

  •  
  •   birdkyle79 · May 28, 2021 · 2252 views
    This topic created in 1843 days ago, the information mentioned may be changed or developed.

    小白提问,当使用 dig 命令查询已被 GFW 墙了的域名时,每次解析出来的 IP 都不一样。我将 DNS server 设置为 8.8.8.8 后,依然是如此。如果查询没有被墙的域名,那么每次的结果都是一样的。

    我知道肯定是 GFW 做了某些手脚,但是不知道具体原理,有没有明白的 v 友说一说细节,想知道。

    截屏 2021-05-28 15.00.05.png

    15 replies    2021-05-29 02:14:41 +08:00
    Puteulanus
        1
    Puteulanus  
       May 28, 2021   ❤️ 1
    可以开 wireshark 看一下,有可能会有两个 DNS 回复,先回来的是抢答的投毒回复
    caola
        2
    caola  
       May 28, 2021   ❤️ 1
    多数是被抢答了
    knightdf
        3
    knightdf  
       May 28, 2021
    还有可能是 DNS 轮询
    henices
        4
    henices  
       May 28, 2021
    国内最大的分布式 入侵检测系统
    tankren
        5
    tankren  
       May 28, 2021
    ping 一下 8.8.8.8 看看是不是真的
    birdkyle79
        6
    birdkyle79  
    OP
       May 28, 2021
    @tankren “是不是真的”指什么东西?我能够 ping 通 8.8.8.8
    ho121
        7
    ho121  
       May 28, 2021
    利用 DNS 轮询做负载均衡
    AllenHua
        8
    AllenHua  
       May 28, 2021   ❤️ 1
    https://www.senrokumon.com/gfw-dns-hijacking/

    dns 抢答 /劫持 dns 走 udp 协议,普通的 dns query 又是明文且不加密的,这样就很容易被蔷或者 isp 做手脚
    zongren
        9
    zongren  
       May 28, 2021
    本身就有多个 ip 啊
    Greenm
        10
    Greenm  
       May 28, 2021   ❤️ 2
    冷知识,你随便指定一个国外的 IP 去查询被墙的域名,不管它开没开 53 端口,甚至存不存在,也会有返回结果哦。

    如:


    $ dig google.com @111.111.11.1

    ; <<>> DiG 9.10.6 <<>> google.com @111.111.11.1
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36728
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

    ;; QUESTION SECTION:
    ;google.com. IN A

    ;; ANSWER SECTION:
    google.com. 60 IN A 46.82.174.69

    ;; Query time: 21 msec
    ;; SERVER: 111.111.11.1#53(111.111.11.1)
    ;; WHEN: Fri May 28 16:11:23 CST 2021
    ;; MSG SIZE rcvd: 54
    birdkyle79
        11
    birdkyle79  
    OP
       May 28, 2021
    @Greenm 我刚刚试了一下,确实是这样,这是为什么呢......dig 命令中的指定 server 没有任何作用吗?
    birdkyle79
        12
    birdkyle79  
    OP
       May 28, 2021
    @zongren 你的意思是有几十个 ip ?我查了几十次,每次结果都不一样,这不太可能吧
    birdkyle79
        13
    birdkyle79  
    OP
       May 28, 2021
    @AllenHua 原来是抢答造成的,懂了
    Greatshu
        14
    Greatshu  
       May 28, 2021
    普通 dns 请求是明文而且没有签名的,伪造不要太简单,大学时计算机网络有一个作业就是用 winpcap 实现 DNS 劫持
    LGA1150
        15
    LGA1150  
       May 29, 2021 via Android
    @Greenm 可以利用这个实现反射攻击
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   963 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 22:59 · PVG 06:59 · LAX 15:59 · JFK 18:59
    ♥ Do have faith in what you're doing.