linux网络之你不了解的DNS篇

  • DNS简介
  • DNS域名解析
    • 域名解析概述
    • 域名解析过程
    • DNS的工作过程
  • DNS查询之递归查询
  • DNS查询之迭代查询
  • DNS的伙伴之nslookup
    • nslookup的两种模式
      • 交互模式
      • 非交互模式
    • 域名解析的缓存
      • 授权与非授权
  • nslookup输出解析
  • DNS协议之五元组
    • DNS的八种类型
      • 类型SOA
      • 类型A
      • 类型MX
      • 类型NS
      • 类型CNAME
      • 类型PTR
      • 类型HINFO
      • 类型TXT
  • nslookup交互模式
    • 进入调试模式,查看更多交互信息
    • 指定查询中默认的域名后缀
    • 在交互模式下设置type
  • DNS工具之dig
    • 给dig加个.
    • dig之批量查询

DNS简介

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

DNS域名解析

域名解析概述

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

域名解析过程

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

DNS的工作过程

  1. 为了解析一个域名(www.baidu.com),应用程序会调用域名解析库函数,并将域名作为参数传入其中。
  2. 此解析库函数会提取本机所设置的上连DNS服务器地址,并向此地址发送一个域名解析请求。
  3. 上连DNS服务器接到域名解析请求后,在本机查询此域名,找到后将其对应的IP地址返回给解析库函数。
  4. 解析库函数接收到上连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#53Non-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#53Non-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#53Non-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#53Non-authoritative answer:
baidu.comorigin = dns.baidu.commail addr = sa.baidu.comserial = 2012145197refresh = 300retry = 300expire = 2592000minimum = 7200Authoritative 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#53Non-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#53Non-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#53Non-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#53Non-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#53Non-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#53Set options:novc           nodebug     nod2search      recursetimeout = 0     retry = 3  port = 53  ndots = 1querytype = A        class = INsrchlist =

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

// 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 = INANSWERS:  //返回的信息->  www.baidu.cominternet address = 36.152.44.95ttl = 5AUTHORITY RECORDS:ADDITIONAL RECORDS:
------------
Non-authoritative answer:
Name:   www.baidu.com
Address: 36.152.44.95
------------QUESTIONS:www.baidu.com, type = AAAA, class = INANSWERS:->  www.baidu.comcanonical name = www.a.shifen.com.ttl = 5AUTHORITY 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#53Set options:novc           nodebug     nod2search      recursetimeout = 0     retry = 3  port = 53  ndots = 1querytype = A        class = INsrchlist =  //我们可以看到这个地方为空
> set domain=baidu.com  //设置默认域为百度
> set all //再次查询
Default server: 192.168.182.2
Address: 192.168.182.2#53Set options:novc           nodebug     nod2search      recursetimeout = 0     retry = 3  port = 53  ndots = 1querytype = A        class = INsrchlist = baidu.com  //变为百度
> image  //直接查询image
Server:     192.168.182.2
Address:    192.168.182.2#53Non-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#53Non-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: 日 2月 20 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: 日 2月 20 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: 日 2月 20 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: 日 2月 20 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: 日 2月 20 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: 日 2月 20 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: 日 2月 20 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: 日 2月 20 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: 日 2月 20 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

linux网络之哪些你不了解的DNS篇相关推荐

  1. Linux网络配置:设置IP地址、网关DNS、主机名

    查看网络信息 1.ifconfig eth0 2.ifconfig -a 3.ip add 设置主机名需改配置文件: /etc/hosts /etc/sysconfig/network vim /et ...

  2. Linux网络编程--进程间通信(一)

    进程间通信简介(摘自<Linux网络编程>p85) AT&T 在 UNIX System V 中引入了几种新的进程通讯方式,即消息队列( MessageQueues),信号量( s ...

  3. Linux io模型及函数调用,Linux 网络编程的5种IO模型:信号驱动IO模型

    Linux 网络编程的5种IO模型:信号驱动IO模型 背景 这一讲我们来看 信号驱动IO 模型. 介绍 情景引入: 在信号驱动IO模型中,当用户线程发起一个IO请求操作,会给对应的socket注册一个 ...

  4. linux网络驱动架构,Linux网络体系架构和网卡驱动设计

    Linux网络体系架构 1.Linux的协议栈层次 2.Linux的网络子系统架构 Linux的协议栈层次 Linux的优点之一在于它丰富而稳定的网络协议栈.其范围从协议无关层(例如通用socket层 ...

  5. Linux网络编程实例分析

    最近由于工作原因需要温习一下Linux网络编程的部分基础知识,因此对之前写的Socket网络通信的代码进行了进一步优化和拓展,在不关闭一次Socket连接的基础上,对服务端加入循环读写的功能,同时加入 ...

  6. Linux网络编程必看书籍推荐

    首先要说讲述计算机网络和TCP/IP的书很多. 先要学习网络知识才谈得上编程 讲述计算机网络的最经典的当属Andrew S.Tanenbaum的<计算机网络>第五版,这本书难易适中. &l ...

  7. Linux网络包接收过程的监控与调优

    Linux内核对网络包的接收过程大致可以分为接收到RingBuffer.硬中断处理.ksoftirqd软中断处理几个过程.其中在ksoftirqd软中断处理中,把数据包从RingBuffer中摘下来, ...

  8. linux网络命名空间详解,『中级篇』 Linux网络命名空间(25)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『中级篇』 Linux网络命名空间(25) docker底层技术,非常重要的关于namespace,network的names ...

  9. Linux网络服务-Web Service之【HTTP协议简介】(一)

    一.什么是HTTP? 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是互联网上应用最为广泛的一种网络协议.设计HTTP最初的目的是为了提供一种发布和接收 ...

  10. Linux网络服务基础

    Linux网络服务基础<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /& ...

最新文章

  1. 【JOURNAL】恭喜发财
  2. 关于字符编码 转自廖雪峰的官方网站,至今看到最清晰的讲解
  3. 遇java.lang.OutOfMemoryError: PermGen space之解决方案
  4. 爱思唯尔云论坛:疫情挑战下的大数据与人工智能研究
  5. linux下devel包的作用
  6. 再好的代码没有电也跑不了
  7. 【零基础】计算机网络技术
  8. 英特尔CEO称他们相信到2030年,芯片将占到汽车成本20%
  9. SQL中DB2数据库修改某字段长度或类型
  10. shell中数组的使用
  11. history。go(-1)
  12. ftp服务器登录没有文件,登录ftp服务器文件显示不出
  13. ITIL 4学习和实践导读
  14. MkDocs项目文档生成器(一)
  15. 浅谈NLM非局部均值滤波
  16. AI学习之路(14): 张量的平方计算
  17. 基于java+SpringBoot+HTML+Mysql音乐网站
  18. RTX腾讯通对话框字体 错乱修复 ,如发出去 是躺着的字
  19. 利用conda创建、激活和删除新环境。
  20. 银联在线支付接入总结

热门文章

  1. 《对比Excel,轻松学习Python数据分析》读书笔记------数据可视化
  2. ISP封了80和8080端口
  3. 苹果手机网页选择框 下拉框点击放大处理
  4. SPI驱动之南瑞NRSEC3000加密芯片驱动开发总结
  5. foxmail连接163邮箱服务器,Foxmail怎么接收163邮箱? foxmail添加163邮箱的方法
  6. 多看电纸书如何安装第三方软件(如微信读书、梅糖桌面、Eink桌面等)
  7. 中国5G基站将带动155GWh以上锂电池需求
  8. 分位数回归(Quantile Regression)
  9. 解决企业繁杂表单问题,还得看天翎表单引擎
  10. 纯CSS制作简单几何图形