Linux之DNS篇

Linux之DNS篇

DNS简介

  1. DNS是Domain Name System的缩写,中文名为“域名系统”。在互联网中起着非常重要的作用。
  2. 它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。自从有了DNS我们去访问网站时就不会去记哪些晦涩的IP,就像现在我们访问百度一般都是输入www.baidu.com或者直接搜索百度,应该没有人会通过百度的IP地址去访问吧!
  3. DNS使用的UDP的53端口号,当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
  4. DNS是工作在应用层的一个协议,用来管理域名和IP地址的映射关系的。

DNS域名解析

域名解析概述

域名解析就像我们初次去拜访一个人一样,我们要知道人家的门派号,然后根据地址去寻找。在Internet上只知道某台机器的域名还是不够的,还要有办法去找那台机器。寻找这台机器的任务由网上一种被称为域名服务器的设备来完成的,而完成这一任务的过程就称为域名解析。

域名解析过程

当一台机器a向其域名服务器A发出域名解析请求时,如果A可以解析,则将解析结果发给a,否则,,A将向其上级域名服务器B发出解析请求,如果B能解析,则将解析结果发给a,如果B无法解析,则将请求发个再上一级域名服务器C,如此下去,直至解析到为止。

DNS的工作过程

  1. 为了解析一个域名(www.baidu.com),应用程序会调用域名解析库函数,并将域名作为参数传入其中。

此解析库函数会提取本机所设置的上连DNS服务器地址,并向此地址发送一个域名解析请求。
上连DNS服务器接到域名解析请求后,在本机查询此域名,找到后将其对应的IP地址返回给解析库函数。
解析库函数接收到上连DNS服务器返回的信息后,将此信息返回给应用程序。

DNS查询之递归查询

这里我们以scs.bupt.deu.cn域名为例子

  1. 为了解析,浏览器会调用域名解析库函数,并将域名作为参数传入其中。
  2. 此解析库函数会提取本机所设置的上连DNS服务器地址,并向此地址发送一域名解析请求。
  3. 上连DNS服务器接到域名解析请求后,在本机查找此域名,但是若没找到对应信息。
  4. 这时上连的DNS服务器就会求助于根DNS服务器(root-server.net)
  5. 然后请求就会逐级转发,顺序是cn的DNS服务器——edu.cn的DNS服务器——bupt.edu.cn的DNS服务器。(就是逐渐缩小范围)
  6. 由于bupt.edu.cn一定是管理scs.bupt.edu.cn的资源记录的DNS服务器,于是,bupt.edu.cn的DNS服务器会将所查询域名对应的IP地址返回给上一级。
  7. 这个IP地址会按照逆序依次回传,顺序是edu.cn的DNS服务器——cn的DNS服务器——根DNS服务器。
  8. 最后根DNS服务器将这个信息返回给上连DNS服务器。
  9. 上连DNS服务器收到结果后,首先会将这个结果缓存到本机,同时,将其回传给用户浏览器。

这里有点很重要那就是上连的DNS服务器在收到结果后,不仅会把结果返回给调用者,还会自己缓存起来。

DNS查询之迭代查询

迭代查询的前四步与递归查询一样。(自我感觉:迭代查询就类似反向代理,都是用户访问资源,通过代理服务器转发到其他服务器)
上连DNS服务器解析不到就会将请求转发到根服务器,但是根服务器会将请求再返回给上连服务器,并告诉上连服务器可以去找cn服务器,然后cn服务器就会去找他的好盆友edu.cn,edu再会去找bupt.edu.cn的服务器,而bupt.edu.cn知道scs.bupt.edu.cn的资源,所以拿到资源之后就交给上连DNS服务器。上连服务器拿到之后首先进行缓存,然后再个到用户的浏览器。

DNS的伙伴之nslookup

说到nslookup可能有些小伙伴不太熟悉这是干嘛的,nslookup是name server lookup的缩写,nslookup是用来查询DNS的。如你想知道百度的IP地址就可以使用nslookup。

// 如果你的linux系统里面没有nslookup命令则需要安装bind-utils软件包,这个软件包含有我们管理DNS的一些列命令,如host、dig、nslookup等

这里我以Redhat8为例
[root@server ~]# yum -y install bind-utils

nslookup的两种模式

第一种交互模式

  • 在交互模式下,用户只需要执行一次nslookup,就可以向域名服务器进行请求查询

第二种非交互模式

  • 在非交互模式下,用户发起的查询请求是一次性的,下次查询需要再执行nslookup。
交互模式
[root@server ~]# nslookup   //这个尖括号表示进入了交互模式 
> 

// 此时的nslookup会连接到默认的域名服务器,就是/etc/resolv.conf中所配置的第一个DNS服务器地址。
// 若想自己指定一个DNS服务器地址,也可以只需要设置nslookup的第一个参数 "-",第二个参数则是要连接的DNS服务器的IP地址。

//  如连接到谷歌的DNS服务器。退出交互模式则可以使用ctrl+d
[root@server ~]# nslookup - 8.8.8.8
> 8.8.8.8
8.8.8.8.in-addr.arpa	name = dns.google.

Authoritative answers can be found from:
// 查询百度www.baidu.com域名IP地址
[root@server ~]# nslookup -www.baidu.com
*** Invalid option: www.baidu.com
> www.baidu.com
Server:		192.168.182.2
Address:	192.168.182.2#53

Non-authoritative answer:
Name:	www.baidu.com
Address: 36.152.44.95
www.baidu.com	canonical name = www.a.shifen.com.
非交互模式
// 在非交互模式下查询百度的IP
[root@server ~]# nslookup www.baidu.com
Server:		192.168.182.2
Address:	192.168.182.2#53

Non-authoritative answer:
Name:	www.baidu.com
Address: 36.152.44.95
www.baidu.com	canonical name = www.a.shifen.com.

[root@server ~]#

// 可以看到在非交互模式下完成查询之后会退回到shell状态,下次再需要查询就需要再次使用nslookup。

域名解析的缓存

通过上面的例子我们知道的nslookup,也提到了上连服务器的缓存。这里我们就来说一下
细心的朋友可能发现nslookup的输出内容中有一行Non-authoritative answer的字样,这个就是和缓存相关的。

[root@server ~]# nslookup www.baidu.com
Server:		192.168.182.2
Address:	192.168.182.2#53

Non-authoritative answer:
Name:	www.baidu.com
Address: 36.152.44.95
www.baidu.com	canonical name = www.a.shifen.com.

这里我们就来说一下关于DNS服务器的缓存

  • 每个DNS服务器都有一个高速缓存区,这里面存放着这台DNS服务器最近“路过”的域名–IP地址的映射关系,以及获得这些映射关系的查询出处。若下次再有人访问同一个域名,这台上连DNS服务器就不需要再发起递归或迭代查询了。
  • 现在又有一个问题那就是因为机器可能会出现故障,网站也会进行迁移,所以域名对应的IP地址会因此发生变化,这时就需要给DNS服务器的缓存设置一个期限,比如一天或几个小时。一旦超过期限DNS就不会信任这个域名,就会进行递归或迭代区查询。
  • 但是这样还是会有问题。假如我们12点整在DNS上缓存了www.baidu.com的域名解析,但是在12:03因为网站迁移修改了其对应的IP地址,这时正好有用户要访问,就会拿到已过期的IP地址
  • 之所以会出现Non-authoritative answer字样是因为DNS是从自己的缓存中提取的解析数据返回给用户的,给出这个字样是基于上面两个原因,Non-authoritative answer意思是非权威的。
授权与非授权

在DNS的世界里没有谁知道所有的答案,比如:用户要访问scs.butp.edu.cn这个IP地址,这里我们暂时将edu.cn称为A主机;bupt.edu.cn称为B主机。当用户访问时edu.cn的DNS服务器将butp.edu.cn的域名解析授权给B主机。只有B才会返回有关scs.butp.edu.cn域名解析,才是授权的;否则就是非授权。

一般情况下,一台DNS服务器从自身缓存中提取结果并返回给询问者,这个结果就是非授权的。

nslookup输出解析

// nslookup包含上下两个部分

  • 上半部分: DNS服务器的信息
  • 下半部分: 域名解析信息
[root@server ~]# nslookup www.baidu.com
Server:		192.168.182.2  // 表示我们本次DNS解析使用的DNS服务器名称,默认会使用系统中的/etc/resolv.conf文件中所配置的第一个DNS 服务器       
Address:	192.168.182.2#53   // 表示我们连接到的DNS服务器的具体IP地址和端口。这里的#53表示的是我们访问的DNS服务器的53端口号。53也是DNS Server服务器的端口号。                     

Non-authoritative answer:  //这个地方我们上面已经提到过了,由于时间差的原因不是最新的,表示非权威
Name:	www.baidu.com  
Address: 36.152.44.95  // 这个就是www.baidu.com所对应的IP地址
www.baidu.com	canonical name = www.a.shifen.com.  //canonical name这个就是我们常说的别名所以www.baidu.com的别名就是www.a.shifen.com

DNS协议之五元组

DNS世界里面的五元组分别是{DomainName、TimeToLive、Class、Type、Value}

  • DomainName(域名):指我们要查询的那个域名
  • TimeToLive(生存期限):表示此域名在各DNS服务器缓存中应保存的时长。
  • Class(类别):通常为IN,即Internet。另外还有CH(chaos)和HS(hesiod)两类,但目前几乎已经被淘汰了
  • Type(类型):指出这条记录的类型,包括8种,即SOA、A、MX、NS、CNAME、PTR、HINFO和TXT。
  • Value(值):针对不同类型,会有不同的值

DNS的八种类型

DNS的八种类型即Type的8个可选类型:

  • SOA:start of Authority,授权起始。
  • A:IP地址
  • MX:邮件交换
  • MS:域名服务器
  • CNAME:别名,也叫规范名
  • HINFO:主机描述信息,包括CPU和OS等信息
  • PTR:指针,用于反向解析
  • TXT:其他一些文本信息
类型SOA

SOA,即Start Of Authority,表示授权起始。

[root@server ~]# nslookup -type=soa baidu.com
Server:		192.168.182.2
Address:	192.168.182.2#53

Non-authoritative answer:
baidu.com
	origin = dns.baidu.com
	mail addr = sa.baidu.com
	serial = 2012145197
	refresh = 300
	retry = 300
	expire = 2592000
	minimum = 7200

Authoritative answers can be found from:
  • Mail:管理员邮箱地址。
  • Serial:版本序号,格式一般为年月日次。
  • Refresh Slave:表示Slave的DNS服务器多久向Master的DNS服务器要一次更新数据。
  • Retry:在发起Refresh时,如果Slave连接不到Master,那么间隔多久进行一次连接尝试。
  • Expire:在发起Refresh时,如果Slave始终无法连接到Master,那么多久后放弃尝试。
  • 即TTL,表示外部DNS服务器如果要缓存本DNS服务器的授权数据,那么保存时限是多久。
类型A

// A,表示从域名解析到IP地址。此处用来展示其对应的IP地址信息,俗称“A记录”。

[root@server ~]# nslookup -type=a baidu.com
Server:		192.168.182.2
Address:	192.168.182.2#53

Non-authoritative answer:
Name:	baidu.com
Address: 220.181.38.251
Name:	baidu.com
Address: 220.181.38.148
类型MX

// MX,是Mail eXchanger的缩写,即邮件交换。此类型和邮箱服务器设置有关,用来表示当前域名对应的邮箱服务器。当域名没有配置对应邮箱服务器,则MX为空

[root@server ~]# nslookup -type=mx baidu.com
Server:		192.168.182.2
Address:	192.168.182.2#53

Non-authoritative answer:
baidu.com	mail exchanger = 20 mx1.baidu.com.
baidu.com	mail exchanger = 20 jpmx.baidu.com.
baidu.com	mail exchanger = 20 mx50.baidu.com.
baidu.com	mail exchanger = 20 usmx01.baidu.com.
baidu.com	mail exchanger = 10 mx.maillb.baidu.com.
baidu.com	mail exchanger = 15 mx.n.shifen.com.

Authoritative answers can be found from:
类型NS

// NS,即Name Server,表示给定域名下所包含的DNS服务器信息。

[root@server ~]# nslookup -type=ns baidu.com
Server:		192.168.182.2
Address:	192.168.182.2#53

Non-authoritative answer:
baidu.com	nameserver = ns4.baidu.com.
baidu.com	nameserver = ns3.baidu.com.
baidu.com	nameserver = ns2.baidu.com.
baidu.com	nameserver = ns7.baidu.com.
baidu.com	nameserver = dns.baidu.com.

Authoritative answers can be found from:
类型CNAME

// CNAME,即Canonical Name,也叫别名。如www.baidu.com就是www.a.shifen.com的别名

[root@server ~]# nslookup -type=cname www.baidu.com
Server:		192.168.182.2
Address:	192.168.182.2#53

Non-authoritative answer:
www.baidu.com	canonical name = www.a.shifen.com.

Authoritative answers can be found from:
类型PTR

// PTR,即指针,用来表示反解信息,即从IP地址查询其对应域名的映射关系。

[root@server ~]# nslookup -type=ptr www.baidu.com
Server:		192.168.182.2
Address:	192.168.182.2#53

Non-authoritative answer:
www.baidu.com	canonical name = www.a.shifen.com.

Authoritative answers can be found from:
类型HINFO

// HINFO,会包含CPU和OS等信息。

类型TXT

// TXT,即文本信息,表示有关此域名的一些信息。

nslookup交互模式

查看当前DNS的配置

[root@server ~]# nslookup 
> set all
Default server: 192.168.182.2
Address: 192.168.182.2#53

Set options:
  novc			nodebug		nod2
  search		recurse
  timeout = 0		retry = 3	port = 53	ndots = 1
  querytype = A       	class = IN
  srchlist = 

进入调试模式,查看更多交互信息

// set d2是高级调试模式,会输出更多的信息

> set debug  //进入调试模式
> www.baidu.com
Server:		192.168.182.2
Address:	192.168.182.2#53

------------
    QUESTIONS:  //发出的查询请求
	www.baidu.com, type = A, class = IN
    ANSWERS:  //返回的信息
    ->  www.baidu.com
	internet address = 36.152.44.95
	ttl = 5
    AUTHORITY RECORDS:
    ADDITIONAL RECORDS:
------------
Non-authoritative answer:
Name:	www.baidu.com
Address: 36.152.44.95
------------
    QUESTIONS:
	www.baidu.com, type = AAAA, class = IN
    ANSWERS:
    ->  www.baidu.com
	canonical name = www.a.shifen.com.
	ttl = 5
    AUTHORITY RECORDS:
    ADDITIONAL RECORDS:
------------
www.baidu.com	canonical name = www.a.shifen.com.

指定查询中默认的域名后缀

设置默认的域后缀,可以为我们的查询带来便捷

// 首先进行查询
[root@server ~]# nslookup 
> set all
Default server: 192.168.182.2
Address: 192.168.182.2#53

Set options:
  novc			nodebug		nod2
  search		recurse
  timeout = 0		retry = 3	port = 53	ndots = 1
  querytype = A       	class = IN
  srchlist =  //我们可以看到这个地方为空
> set domain=baidu.com  //设置默认域为百度
> set all //再次查询
Default server: 192.168.182.2
Address: 192.168.182.2#53

Set options:
  novc			nodebug		nod2
  search		recurse
  timeout = 0		retry = 3	port = 53	ndots = 1
  querytype = A       	class = IN
  srchlist = baidu.com  //变为百度
> image  //直接查询image
Server:		192.168.182.2
Address:	192.168.182.2#53

Non-authoritative answer:
image.baidu.com	canonical name = image.n.shifen.com.
Name:	image.n.shifen.com
Address: 36.152.44.79

在交互模式下设置type

通过set querytype=[value],我们可以更改信息查询的类型。
默认情况下,nslookup是查询域名所对应的A记录,而当你想查询其对应的MX记录等信息时,就需要更改查询的类型了。
目前常用的type值如下:

  • A:查看主机的IPv4地址
  • AAAA:查看主机的IPv6地址
  • ANY:查看关于主机域的所有信息
  • CNAME:查找与别名对应的正式名字
  • HINFO:查找主机的CPU与操作系统类型
  • MINFO:查找邮箱信息
  • MX:查找邮件交换信息
  • NS:查找主机域的域名服务器
  • PTR:查找与给定IP地址匹配的主机名
  • RP:查找域负责人记录
  • SOA:查找域内的SOA地址
  • UINFO:查找用户信息
    // 例如,针对MX类型的查询结果
// 其他的类型的查询同下
[root@server ~]# nslookup 
> set type=mx
> baidu.com
Server:		192.168.182.2
Address:	192.168.182.2#53

Non-authoritative answer:
baidu.com	mail exchanger = 20 mx50.baidu.com.
baidu.com	mail exchanger = 20 usmx01.baidu.com.
baidu.com	mail exchanger = 10 mx.maillb.baidu.com.
baidu.com	mail exchanger = 15 mx.n.shifen.com.
baidu.com	mail exchanger = 20 mx1.baidu.com.
baidu.com	mail exchanger = 20 jpmx.baidu.com.

Authoritative answers can be found from:

DNS工具之dig

[root@server ~]# dig 

; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>>
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55326
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;.				IN	NS

;; ANSWER SECTION:
.			5	IN	NS	i.root-servers.net.
.			5	IN	NS	d.root-servers.net.
.			5	IN	NS	a.root-servers.net.
.			5	IN	NS	f.root-servers.net.
.			5	IN	NS	j.root-servers.net.
.			5	IN	NS	l.root-servers.net.
.			5	IN	NS	c.root-servers.net.
.			5	IN	NS	e.root-servers.net.
.			5	IN	NS	k.root-servers.net.
.			5	IN	NS	b.root-servers.net.
.			5	IN	NS	m.root-servers.net.
.			5	IN	NS	h.root-servers.net.
.			5	IN	NS	g.root-servers.net.

;; Query time: 12 msec
;; SERVER: 192.168.182.2#53(192.168.182.2)
;; WHEN: 日 220 21:25:31 CST 2022
;; MSG SIZE  rcvd: 228

// 可以看出直接使用dig命令,dig会向上连DNS服务器查询"."(根域) 的NS记录。

给dig加个.

[root@server ~]# dig .

; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> .
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29023
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;.				IN	A

;; ANSWER SECTION:
.			5	IN	A	120.232.65.146
.			5	IN	A	120.232.65.174
.			5	IN	A	112.53.42.28
.			5	IN	A	112.53.42.46

;; Query time: 8 msec
;; SERVER: 192.168.182.2#53(192.168.182.2)
;; WHEN: 日 220 21:27:30 CST 2022
;; MSG SIZE  rcvd: 81

// 可以看出,这次输出的是根域的A记录,这个例子中展示了13个根域之一的a.root-server.net.的五元组信息。
// 查询百度域名
[root@server ~]# dig @8.8.8.8 www.baidu.com A  //命令格式为dig@dnsserver name querytype

; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> @8.8.8.8 www.baidu.com A
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55039
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.baidu.com.			IN	A

;; ANSWER SECTION:
www.baidu.com.		311	IN	CNAME	www.a.shifen.com.
www.a.shifen.com.	295	IN	CNAME	www.wshifen.com.
www.wshifen.com.	73	IN	A	103.235.46.39

;; Query time: 71 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: 日 220 21:31:05 CST 2022
;; MSG SIZE  rcvd: 111

dig之批量查询

// dig可以从文件里面读取

[root@server ~]# cat test.txt 
www.baidu.com
nginx.org
// -f参数开始批量查询,-t指定查询类型
[root@server ~]# dig -f test.txt -t A

; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23201
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.baidu.com.			IN	A

;; ANSWER SECTION:
www.baidu.com.		5	IN	A	36.152.44.95

;; Query time: 99 msec
;; SERVER: 192.168.182.2#53(192.168.182.2)
;; WHEN: 日 220 21:36:42 CST 2022
;; MSG SIZE  rcvd: 47

; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> nginx.org
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55661
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;nginx.org.			IN	A

;; ANSWER SECTION:
nginx.org.		5	IN	A	3.125.197.172
nginx.org.		5	IN	A	52.58.199.22

;; Query time: 10 msec
;; SERVER: 192.168.182.2#53(192.168.182.2)
;; WHEN: 日 220 21:36:42 CST 2022
;; MSG SIZE  rcvd: 59
化繁为简之-q
// -q可以显示的设置你要查询的域名
[root@server ~]# dig -q www.baidu.com -t a

; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> -q www.baidu.com -t a
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5094
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.baidu.com.			IN	A

;; ANSWER SECTION:
www.baidu.com.		5	IN	A	36.152.44.95

;; Query time: 130 msec
;; SERVER: 192.168.182.2#53(192.168.182.2)
;; WHEN: 日 220 21:41:34 CST 2022
;; MSG SIZE  rcvd: 47
-x 选项反向解析,可以用来查询IP与域名的映射关系
[root@server ~]# dig -x 192.168.182.2

; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> -x 192.168.182.2
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5717
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;2.182.168.192.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
2.182.168.192.in-addr.arpa. 5	IN	PTR	192.168.182.2.

;; Query time: 4 msec
;; SERVER: 192.168.182.2#53(192.168.182.2)
;; WHEN: 日 220 21:43:28 CST 2022
;; MSG SIZE  rcvd: 71

// 这个IP对应的根域服务器即他本身192.168.182.2.
// 使用tcp查询,大家都知道DNS在查询过程中交互默认使用的是UDP协议。下面就介绍一下使用TCP查询
[root@server ~]# dig +tcp @8.8.8.8 www.baidu.com

; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> +tcp @8.8.8.8 www.baidu.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26088
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.baidu.com.			IN	A

;; ANSWER SECTION:
www.baidu.com.		338	IN	CNAME	www.a.shifen.com.
www.a.shifen.com.	64	IN	CNAME	www.wshifen.com.
www.wshifen.com.	36	IN	A	103.235.46.39

;; Query time: 62 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: 日 220 21:49:43 CST 2022
;; MSG SIZE  rcvd: 111
默认追加域
[root@server ~]# dig +domain=baidu.com image

; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> +domain=baidu.com image
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2163
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;image.baidu.com.		IN	A

;; ANSWER SECTION:
image.baidu.com.	5	IN	CNAME	image.n.shifen.com.
image.n.shifen.com.	5	IN	A	36.152.44.79

;; Query time: 9 msec
;; SERVER: 192.168.182.2#53(192.168.182.2)
;; WHEN: 日 220 21:52:10 CST 2022
;; MSG SIZE  rcvd: 78
// 跟踪dig查询的全过程
[root@server ~]# dig +trace baidu.com

; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> +trace baidu.com
;; global options: +cmd
.			5	IN	NS	l.root-servers.net.
.			5	IN	NS	j.root-servers.net.
.			5	IN	NS	e.root-servers.net.
.			5	IN	NS	f.root-servers.net.
.			5	IN	NS	g.root-servers.net.
.			5	IN	NS	b.root-servers.net.
.			5	IN	NS	d.root-servers.net.
.			5	IN	NS	c.root-servers.net.
.			5	IN	NS	k.root-servers.net.
.			5	IN	NS	h.root-servers.net.
.			5	IN	NS	m.root-servers.net.
.			5	IN	NS	a.root-servers.net.
.			5	IN	NS	i.root-servers.net.
;; Received 228 bytes from 192.168.182.2#53(192.168.182.2) in 8 ms
// 从本地DNS查找到根域DNS列表
com.			172800	IN	NS	a.gtld-servers.net.
com.			172800	IN	NS	b.gtld-servers.net.
com.			172800	IN	NS	c.gtld-servers.net.
com.			172800	IN	NS	d.gtld-servers.net.
com.			172800	IN	NS	e.gtld-servers.net.
com.			172800	IN	NS	f.gtld-servers.net.
com.			172800	IN	NS	g.gtld-servers.net.
com.			172800	IN	NS	h.gtld-servers.net.
com.			172800	IN	NS	i.gtld-servers.net.
com.			172800	IN	NS	j.gtld-servers.net.
com.			172800	IN	NS	k.gtld-servers.net.
com.			172800	IN	NS	l.gtld-servers.net.
com.			172800	IN	NS	m.gtld-servers.net.
com.			86400	IN	DS	30909 8 2 E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766
com.			86400	IN	RRSIG	DS 8 1 86400 20220305050000 20220220040000 9799 . LdN/Onsd57kvdpc4HkYoOOWx7sg4md/53ekEfa+6NPc691WbBl2f/7o0 G2PWqXdylNqOTwLOEx3mKtA2qf+Obpw7hBeSbdy1LhycEj7jBvIrt5wL llxTxESvdQnEPIr+BnPvuUskDPNDBYNBwqdj6KqAu4a3X3WXB8j7j2u4 yaYiqjw6jV7x8oUJt4yauxPbAM8EaQl2bAGpmYrXLspNfW1lkUHuEtD3 TEKbX3+UujUbCsfgPPXcG5Nv8P/2KCwHQ2Bx5VaPqlFSH2Np5TaXPzZq zKG330EuDMlBmk5cLfnrBcb9UpR2pbv5/OTVZpAWko6zLu+VNJtTPeX3 zqZPyA==
;; Received 1169 bytes from 198.97.190.53#53(h.root-servers.net) in 338 ms
// 选择了192.168.97.190这台根域DNS来查询com.
baidu.com.		172800	IN	NS	ns2.baidu.com.
baidu.com.		172800	IN	NS	ns3.baidu.com.
baidu.com.		172800	IN	NS	ns4.baidu.com.
baidu.com.		172800	IN	NS	ns1.baidu.com.
baidu.com.		172800	IN	NS	ns7.baidu.com.
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 - CK0Q1GIN43N1ARRC9OSM6QPQR81H5M9A NS SOA RRSIG DNSKEY NSEC3PARAM
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 8 2 86400 20220224052340 20220217041340 38535 com. ivdQrmBnvn7gs2WZgZ64PCW1hPXqzYUiH+XGIcfo58UXGM4mDEXdtUH6 pHfbOdBbLlfurs3/HflIjmO+H6JV9mR4kA3Pcvrv4SaJUcMAMqdpwKxM gPjGYS+gBaMgqaKoafTAoP9w52zCfAd91VyZ7PWixuCVESMvyrCWMexb pmxP4IWF5qtkd3OsJtQi0nQ81F+ochOo/kFHZ/j8TiLFpA==
HPVU6NQB275TGI2CDHPDMVDOJC9LNG86.com. 86400 IN NSEC3 1 1 0 - HPVV8SARM2LDLRBTVC5EP1CUB1EF7LOP NS DS RRSIG
HPVU6NQB275TGI2CDHPDMVDOJC9LNG86.com. 86400 IN RRSIG NSEC3 8 2 86400 20220225053142 20220218042142 38535 com. AkfTaYJ5ecY+W0S2tBCxW5VMTfFUvB0Jpxvo8iJNyduduxzBkMqrOICX x+ua0m+nMJPzK9HIU8mdanVvz2pbVISL05OFhT+kQ91rpiJnABVh7RE5 wr4ARrnAwUEMjB8e59Nb0l5kjqMPL2K5FEl/VaqUs3QGushxjwMtAPzs Tmj3OV69DGPJK6dFlKfRlW2Wvx9FK8fhM/euKUKy6TXmVA==
;; Received 813 bytes from 192.12.94.30#53(e.gtld-servers.net) in 193 ms
// 选择192.168.12.94这台域DNS服务器来查找baidu.com的DNS列表
baidu.com.		600	IN	A	220.181.38.251
baidu.com.		600	IN	A	220.181.38.148
baidu.com.		86400	IN	NS	dns.baidu.com.
baidu.com.		86400	IN	NS	ns3.baidu.com.
baidu.com.		86400	IN	NS	ns4.baidu.com.
baidu.com.		86400	IN	NS	ns7.baidu.com.
baidu.com.		86400	IN	NS	ns2.baidu.com.
;; Received 296 bytes from 220.181.33.31#53(ns2.baidu.com) in 43 ms
//最终找到
// 精简查询
[root@server ~]# dig +nocmd +nocomment +nostat www.baidu.com
;www.baidu.com.			IN	A
www.baidu.com.		5	IN	A	36.152.44.95
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值