DNS
DNS(Domain Name System)是域名系统的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,用于 TCP/IP 网络。
作用
在人类的世界里面我们最容易知道的也是最好记的就是名称,那么我们给每个主机一个名字我们就知道了是哪个,但是对于计算机来说,最容易记的是编号,有着层级结构的ip地址。为了满足两者的需求我们就有了DNS,也就是说我们可以更具主机名称查询到对应的ip,DNS就是一个分布式的数据库。
DNS域名解析的原理
DNS采用的是分布式的设计方案,它的域名空间使用的是树形的层次结构。
上图展示了 DNS 服务器的部分层次结构,从上到下依次为根域名服务器、顶级域名服务器和权威域名服务器。
除了上面的这些服务器外,还有一个不在这个结构里面但是很重要的本地服务器,一般来说,每一个ips都会有至少一个本地服务器,这个服务器的作用就是起到代理的作用,将dns请求发送到上面的三层机构中去寻找对应主机。
DNS查询过程
假设主机 A(IP 地址为 abc.xyz.edu) 想知道主机 B 的 IP 地址 (def.mn.edu),如下图所示,主机 A 首先向它的本地 DNS 服务器发送一个 DNS 查询报文。该查询报文含有被转换的主机名 def.mn.edu。本地 DNS 服务器将该报文转发到根 DNS 服务器,根 DNS 服务器注意到查询的 IP 地址前缀为 edu 后向本地 DNS 服务器返回负责 edu 的顶级域名服务器的 IP 地址列表。该本地 DNS 服务器则再次向这些 顶级域名服务器发送查询报文。该顶级域名服务器注意到 mn.edu 的前缀,并用权威域名服务器的 IP 地址进行响应。通常情况下,顶级域名服务器并不总是知道每台主机的权威 DNS 服务器的 IP 地址,
而只知道中间的某个服务器,该中间 DNS 服务器依次能找到用于相应主机的 IP 地址,我们假设中间经历了权威服务器 ① 和 ②,最后找到了负责 def.mn.edu 的权威 DNS 服务器 ③,之后,本地 DNS 服务器直接向该服务器发送查询报文从而获得主机 B 的IP 地址。