dig

dig(Domain Information Groper)域名记录搜索器,用来查询域名相关信息,属于域名服务器软件套件BIND的组成部分。

安装(Linux)

1
yum install bind-utils

安装(Windows)

1
2
3
4
5
6
7
8
1. 下载
    wget https://downloads.isc.org/isc/bind9/9.17.11/BIND9.17.11.x64.zip
2. 解压
    unzip BIND9.17.11.x64.zip
3. 安装依赖
    双击 vcredist_x64.exe //visual c++运行时库,Visual C++开发的Windows应用程序需要这个运行时库的支持才能在没有安装Visual C++的计算机上正常运行。
4. 安装dig
    将解压目录路径放入环境变量PATH中,或者将*.dll/dig.exe全部复制到C:\Windows\System32\。

帮助

1
dig -h

查询递归出口ip

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
双栈:
dig +short TXT whoami.ds.akahelp.net 
ipv4:
dig +short TXT whoami.ipv4.akahelp.net 
ipv6:
dig +short TXT whoami.ipv6.akahelp.net
输出:
dig +short TXT whoami.ds.akahelp.net 
"ns" "2001:db8::abcd"    //递归服务器出口ip
"ecs" "203.0.113.0/24/0" //递归服务器携带的ecs-ip(如果有)
"ip" "203.0.113.132"     //ecs-ip段中随机选取的一个ip(如果有)
原理:
此功能是akamai为方便用户定位dns相关问题(特别是cdn的geo优化功能),而通过授权服务器提供的一种定位手段。
dig--->CacheDns(cdns可选)--->ForwardDns(fdns可选)--->RecursiveDns(rdns)--->AuthorityDns(adns)(akahelp.net授权)
因为授权服务器可以获取到rdns的源ip及ecs-ip,可以方便的通过txt记录返回给用户,所以此功能可以方便的移植到任何授权服务器。
参考:
https://developer.akamai.com/blog/2018/05/10/introducing-new-whoami-tool-dns-resolver-information

获取localdns地址

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
dig //SERVER部分
; <<>> DiG 9.16.10 <<>>
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65300
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 7db719a2ac9f95c208b7bcbe607cf87560a084fa2504148c (good)
;; QUESTION SECTION:
;.                              IN      NS

;; ANSWER SECTION:
.                       220078  IN      NS      k.root-servers.net.
...

;; Query time: 16 msec
;; SERVER: 10.2.255.200#53(10.2.255.200)
;; WHEN: Mon Apr 19 11:26:45 中国标准时间 2021
;; MSG SIZE  rcvd: 267

指定支持的edns报文大小

1
dig @2.2.3.67 www.jd.com +bufsize=512

用数字表示请求类型

1
dig @2.2.3.67 www.jd.com -t TYPE257

使用tcp请求

1
dig +tcp @2.2.3.67 www.jd.com

使用授权递归,跳过缓存

1
dig +trace www.jd.com

携带ecs-ip

1
dig www.jd.com +subnet=1.1.1.1

打印发送的报文

1
dig +qr www.jd.com

指定源IP及端口

1
dig @2.2.3.69 www.jd.com -b 2.2.1.10#88

指定目的端口

1
dig www.jd.com @2.2.3.67 -p 54