小白提问,当使用 dig 命令查询已被 GFW 墙了的域名时,每次解析出来的 IP 都不一样。我将 DNS server 设置为 8.8.8.8 后,依然是如此。如果查询没有被墙的域名,那么每次的结果都是一样的。
我知道肯定是 GFW 做了某些手脚,但是不知道具体原理,有没有明白的 v 友说一说细节,想知道。
1
Puteulanus 2021-05-28 15:14:53 +08:00 1
可以开 wireshark 看一下,有可能会有两个 DNS 回复,先回来的是抢答的投毒回复
|
2
caola 2021-05-28 15:21:24 +08:00 1
多数是被抢答了
|
3
knightdf 2021-05-28 15:21:44 +08:00
还有可能是 DNS 轮询
|
4
henices 2021-05-28 15:23:31 +08:00
国内最大的分布式 入侵检测系统
|
5
tankren 2021-05-28 15:26:50 +08:00
ping 一下 8.8.8.8 看看是不是真的
|
7
ho121 2021-05-28 15:45:24 +08:00
利用 DNS 轮询做负载均衡
|
8
AllenHua 2021-05-28 15:59:55 +08:00 1
https://www.senrokumon.com/gfw-dns-hijacking/
dns 抢答 /劫持 dns 走 udp 协议,普通的 dns query 又是明文且不加密的,这样就很容易被蔷或者 isp 做手脚 |
9
zongren 2021-05-28 16:01:51 +08:00
本身就有多个 ip 啊
|
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 |
11
bear2000 OP @Greenm 我刚刚试了一下,确实是这样,这是为什么呢......dig 命令中的指定 server 没有任何作用吗?
|
14
Greatshu 2021-05-28 16:31:37 +08:00
普通 dns 请求是明文而且没有签名的,伪造不要太简单,大学时计算机网络有一个作业就是用 winpcap 实现 DNS 劫持
|