V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bear2000
V2EX  ›  DNS

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

  •  
  •   bear2000 · 2021-05-28 15:02:35 +08:00 · 1025 次点击
    这是一个创建于 1035 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    截屏 2021-05-28 15.00.05.png

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

    dns 抢答 /劫持 dns 走 udp 协议,普通的 dns query 又是明文且不加密的,这样就很容易被蔷或者 isp 做手脚
    zongren
        9
    zongren  
       2021-05-28 16:01:51 +08:00
    本身就有多个 ip 啊
    Greenm
        10
    Greenm  
       2021-05-28 16:13:13 +08:00   ❤️ 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
    bear2000
        11
    bear2000  
    OP
       2021-05-28 16:20:57 +08:00
    @Greenm 我刚刚试了一下,确实是这样,这是为什么呢......dig 命令中的指定 server 没有任何作用吗?
    bear2000
        12
    bear2000  
    OP
       2021-05-28 16:23:16 +08:00
    @zongren 你的意思是有几十个 ip ?我查了几十次,每次结果都不一样,这不太可能吧
    bear2000
        13
    bear2000  
    OP
       2021-05-28 16:25:01 +08:00
    @AllenHua 原来是抢答造成的,懂了
    Greatshu
        14
    Greatshu  
       2021-05-28 16:31:37 +08:00
    普通 dns 请求是明文而且没有签名的,伪造不要太简单,大学时计算机网络有一个作业就是用 winpcap 实现 DNS 劫持
    LGA1150
        15
    LGA1150  
       2021-05-29 02:14:41 +08:00 via Android
    @Greenm 可以利用这个实现反射攻击
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3314 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 13:20 · PVG 21:20 · LAX 06:20 · JFK 09:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.