关于DNS

DNS

DNS是什么?

DNS是一个域名系统,它的作用是进行主机名和IP地址的转换。一方面,它是一个分层的DNS服务器实现的分布式数据库,另一方面,它是一个使得主机能够查询分布式数据库的应用层协议

一个具体实例,我们的客户端向Web服务器www.scuec.edu发送一个http请求,那么我们必须得知道这个域名的IP地址。DNS就是获取这个IP地址的过程。

除此之外DNS还提供了其他的服务:

  1. 主机别名:有着复杂主机名的主机可以拥有多个别名。
  2. 邮件服务器别名:一样的我们也希望邮件服务器也可以有多个名字
  3. 负载分配:DNS也可以在冗余的服务器之间进行负载分配。繁忙的站点均匀分布在多台服务器上。

DNS 工作机理

同样使用之前的那个实例,DNS会有如下操作:

  1. 同一台用户主机上运行着DNS应用的客户端;
  2. 浏览器从URI中提取主机名www.scuec.edu,并且将主机名传给DNS应用的客户端;
  3. DNS客户向DNS服务器发送一个包含主机名的请求;
  4. DNS客户收到回答报文,其中包含主机名的IP地址;
  5. 一旦浏览器接收到IP地址就会向对应IP地址的80端口的HTTP服务器发起TCP连接。

这是粗糙的大体过程,现在我们将注意力集中到主机名转换到IP地址也就是域名解析的过程。

为了处理拓展性问题,DNS使用了大量的DNS服务器,以层次(树形)结构组织。大致来说有三类DNS服务器:根服务器顶级域(TLD)DNS服务器(com DNS服务器、org DNS服务器、edu DNS服务器等等)、权威DNS服务器(facebook.com、amazon.com、pbs.org、nyu.edu等)。

而我们需要域名解析的时候,我们先向本地DNS服务器询问,本地DNS服务器会查询缓存,如果缓存可以直接命中就直接返回。没有的话本地DNS服务器会先去询问根服务器、再询问TLD服务器、再询问权威DNS服务器(这一过程是逐一迭代的)。接着再递归的返回查询结果给本地主机。这是一种递归+迭代的方式,理论上我们也可以选择全部递归的方式。

需要主要的是DNS域名解析的过程使用的是UDP,主要原因是DNS协议只需要一个请求和一个应答,不需要TCP复杂的三次握手四次挥手过程。‘

DNS 区域传送

指的是一台备用服务器使用来自主服务器的数据刷新自己的域(zone)数据库,目的是为了做冗余备份,防止主服务器出现故障时 dns 解析不可用。然而主服务器对来请求的备用服务器未作访问控制,验证身份就做出相应故而出现这个漏洞。

DNS 主从复制

就是将主DNS服务器的解析库复制传送至从DNS服务器,进而从服务器就可以进行正向、反向解析了。从服务器向主服务器查询更新数据,保证数据一致性,此为区域传送。也可以说,DNS区域传送,就是DNS主从复制的实现方法,DNS主从复制是DNS区域传送的表现形式。

posted @ 2022-08-17 20:49  Paranoid5  阅读(66)  评论(0编辑  收藏  举报