DNS的查询过程

1.DNS(Domain Name System)叫域名系统,由于IP地址不方便记忆,所以产生了一种可以 有效管理主机名和 IP 地址之间对应关系的系统,即 DNS 系统。

在一个本地计算机上,它可以是一个 hosts 文件,在互联网中它就是 DNS 系统。

2.域名的分层

3.DNS 的查询

DNS 的查询有两种方式。一般两种方式都会用到。递归查询是用在本地机查询本地 DNS 服务器的过程,迭代查询是本地 DNS 服务器在互联网上查找目标机的过程。

想象一个树状图,一个主机访问另一台主机,就像是蚂蚁从一个叶子访问到另一个叶子的位置。
比如小蚂蚁 a 从某个叶子上开始,想找 Z 的地址,来到叶子根部的 b 蚂蚁(DNS服务器)处,b 蚂蚁说,“你等着,我帮你打听”。
b 蚂蚁就问到了根服务器 C 蚂蚁,C 说你去问问 D 蚂蚁吧,就给了 b 蚂蚁 D 蚂蚁的地址,b 去问了 D,D 正好知道 Z 蚂蚁的地址,于是给了 b 蚂蚁。自此,终于找到了目标地址。b 最终将信息返回给 a。解析就此结束。

这个过程中:

  • a -> b 这个链路就是递归查询,因为 b 帮助了 a 进行查询

  • b => C, b => D,这个就是迭代查询,因为 C 没有帮 b 去查,而是直接给了他一个地址去让它再去打听

  • 主机到本地 DNS 服务器的查询就属于递归查询。

  • 本地 DNS 服务器向根服务器的查询就是迭代查询。

4.除了用浏览器,我们也可以通过命令行的方式查询某个网址的IP。比如使用nslookup命令。下图是通过nslookup命令向阿里的公共DNS服务器223.5.5.5查询www.weibo.com的IP地址。可以看到最后的查询结果是121.194.0.221


从上面的叙述和命令使用,可以得知从域名到IP参与者有:DNS客户端(浏览器或者nslookup命令);DNS服务器(本地DNS服务器或者阿里的公共服务器)。其实,这里还隐藏了另外一个参与者:名字服务器(name server)。一共有三个参与者:DNS客户端( domain name systemclient)、DNS服务器(domain name system server)、名字服务器(name server)。

5.可以使用nslookup 命令查询一个区域(zone)或者主机的名字服务器(name server),如下图所示。其中,-qt=ns 指明要查询的类型是名字服务器(name server);223.5.5.5则是阿里的公共DNS服务器。

nslookup -qt=ns  com 223.5.5.5

 

   参考:

https://blog.csdn.net/luotuo44/article/details/45545059

https://www.jianshu.com/p/6ed368751fb2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值