DNS系列—dig命令的使用
如何安装dig
dig是bind下面常见的工具,在linux系统上经常回用的一个dns解析的命令。
CentOS上安装dig的命令:
yum install bind-utils
Ubuntu上安装dig的命令:
apt-get install dnsutils
dig常见用法
dig的基本语法
dig @server name type
server: 指定的DNS查询服务器,如果没有指定的话,使用默认的dns解析服务器,服务器地址存放在/etc/resolv.conf中。
name:需要查找资源的值。
type:记录类型。比如A、ANY、MX等
简单dig查询域名
dig www.baidu.com
查询结果:
; <<>> DiG 9.10.6 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2361
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 5
;; QUESTION SECTION:
;www.baidu.com. IN A
;; ANSWER SECTION:
www.baidu.com. 600 IN CNAME www.a.shifen.com.
www.a.shifen.com. 600 IN A 182.61.200.6
www.a.shifen.com. 600 IN A 182.61.200.7
;; AUTHORITY SECTION:
a.shifen.com. 70 IN NS ns1.a.shifen.com.
a.shifen.com. 70 IN NS ns2.a.shifen.com.
a.shifen.com. 70 IN NS ns5.a.shifen.com.
a.shifen.com. 70 IN NS ns3.a.shifen.com.
a.shifen.com. 70 IN NS ns4.a.shifen.com.
;; ADDITIONAL SECTION:
ns1.a.shifen.com. 213 IN A 61.135.165.224
ns2.a.shifen.com. 103 IN A 220.181.33.32
ns3.a.shifen.com. 132 IN A 112.80.255.253
ns4.a.shifen.com. 102 IN A 14.215.177.229
ns5.a.shifen.com. 428 IN A 180.76.76.95
;; Query time: 4 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: Wed Nov 25 22:33:42 CST 2020
;; MSG SIZE rcvd: 260
结果详细说明:
; <<>> DiG 9.10.6 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2361
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 5
这一段是头dig命令的头部信息
第一行:是dig的版本和本次查询的域名。
第二行:+cmd是指dig处于命令模式。
opcode:QUERY是指本次是请求类型操作。
status:Rcode,NOERROR表示本次查询结果正常返回。
id:DNS的transfer id
flags:响应的flag中的字段值。
QUERY:本次请求个数。
ANSWER:资源响应的数量。
AUTHORITY:来自权威的响应的数量。
ADDITIONAL:附加响应数量
;; QUESTION SECTION:
;www.baidu.com. IN A
IN是指class的值,指互联网的意思,它的值就是IN了。
A是值本次查询是一次A记录查询
;; ANSWER SECTION:
www.baidu.com. 600 IN CNAME www.a.shifen.com.
www.a.shifen.com. 600 IN A 182.61.200.6
www.a.shifen.com. 600 IN A 182.61.200.7
DNS服务返回的响应内容和头部的ANSWER个数一样。
;; AUTHORITY SECTION:
a.shifen.com. 70 IN NS ns1.a.shifen.com.
a.shifen.com. 70 IN NS ns2.a.shifen.com.
a.shifen.com. 70 IN NS ns5.a.shifen.com.
a.shifen.com. 70 IN NS ns3.a.shifen.com.
a.shifen.com. 70 IN NS ns4.a.shifen.com.
我们配置的DNS服务器实际上是一个递归DNS解析服务器,但是DNS应答的结果实际上是请求域名的权威域名给出的,因此这里递归DNS服务器给出本次结果的权威域名服务器列表。
;; ADDITIONAL SECTION:
ns1.a.shifen.com. 213 IN A 61.135.165.224
ns2.a.shifen.com. 103 IN A 220.181.33.32
ns3.a.shifen.com. 132 IN A 112.80.255.253
ns4.a.shifen.com. 102 IN A 14.215.177.229
ns5.a.shifen.com. 428 IN A 180.76.76.95
附加信息情况,这个是附加了刚才权威列表中权威DNS服务的域名对应的A记录。
;; Query time: 4 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: Wed Nov 25 22:33:42 CST 2020
;; MSG SIZE rcvd: 260
给出本次解析时长;负责本次解析的DNS服务IP地址#端口;本次解析的时间;本次解析返回结果的大小。
指定DNS服务器查询
不想使用本地的/etc/resolv.conf中的DNS服务器的话,可以指定一个自己的目标DNS服务器。比如我指定114.114.114.114作为我本次DNS查询的解析服务器。
dig @114.114.114.114 www.baidu.com
反查IP对应域名
查询IP对应的域名叫做DNS的反向查询,也是我们通常说的PTR记录查询。dig命令的反向查询方式如下。
dig -x 202.108.22.220
使用命令-x就可以了。