文章目录
- 1. DNS作用
- 2 DNS 三个组成部分:
- 2.1 客户端
- 2.2Local DNS
- 2.3 权威域 DNS 服务器
- 3 工作过程
1. DNS作用
DNS 分为 Client 和 Server,Client 扮演发问的角色,也就是问 Server 一个 Domain Name,而 Server 必须要回答此 Domain Name 的真正 IP 地址,DNS 是怎么来作名称解析的?
2 DNS 三个组成部分:
2.1 客户端
客户端:也就是真正的用户使用终端,对于终端用户而言,复杂的 IP 地址是很难记忆的,因此采用 DNS 解析,可以只需要记住简单好用的域名即可。另外,当应用的 IP 地址调整的时候,客户端也无需知道新的 IP 地址,只需要访问统一的域名。
2.2Local DNS
Local DNS: Local DNS 通常是预先在客户端配置好的 DNS 服务器地址,或者是在用户用
ADSL 等网络服务,通过 DHCP 协议分配的 DNS 服务器地址。Local DNS 是直接面向客户端提
供 DNS 解析服务的。
2.3 权威域 DNS 服务器
权威域 DNS 服务器:权威域 DNS 服务器上配置的域名和 IP 地址的对应关系,提供给 LocalDNS 或者客户端直接查询。当应用的 IP 地址调整的时候,只需要在权威域 DNS 服务器上更改域名和 IP 地址的对应,则所有的客户端或者 Local DNS 查询时就会得到新的对应记录。DNS 服务器会根据不同的授权区(Zone),记录所属该网域下的各名称资料,这个资料包括网域下的次网域名称及主机名称。
3 工作过程
在每一个 Local DNS 服务器中都有一个快取缓存区(Cache),这个快取缓存区的主要目的是将该 Local DNS 服务器所查询出来的名称及相对的 IP 地址记录在快取缓存区中,这样当下一次还有另外一个客户端到 Local DNS 服务器上去查询相同的名称时,服务器就不用在到权威域名服务器上去寻找,而直接可以从缓存区中找到该笔名称记录,传回给客户端,加速客户端对名称查询的速度。例如:当 DNS 客户端向指定的 Local DNS 服务器查询互联网上的某一台主机名称,Local DNS服务器会在缓存中找寻用户所指定的名称如果找到该笔名称记录后,则会直接将所对应到的域名和 IP 地址对应记录传回给客户端 ,如果 Local DNS 服务器在本地缓存中找不到对应记录的时候,则会向权威域名服务器查询所要的名称。
我们举例说明,假设我们要查询互联网上的一个名称为 www.adntech.com,以下为名称
解析过程的每一步骤。
- 在 DNS 的客户端浏览器的地址栏中输入 http://www.adntech.com,则在客户端浏览器本地的 DNS
客户端首先向本机已经配置或者分配好的 DNS 服务器发起 www.adntech.com的域名解析请求,这里客户端配置的 DNS 服务器我们通常称为 Local DNS 服务器。 - 而 Local DNS 服务器先查询是否在本地的缓存中有有效的 www.adntech.com 的
DNS记录,如果发现有在有效期之内的对应 DNS 记录,则直接返回给 Local DNS 解析的结果。 - 查询后如果发现本地缓存中没有这条记录,则直接从本机预先配置好的根 DNS 服务器 IP 地址列表中向某一台根 DNS
服务器发起请求,查询 www.adntech.com。 - 在根 DNS 服务器中,记录了每个顶级域分别是由哪些 DNS 服务器负责,所以它会向发起请求的 Local DNS 服务器返回.com
域的权威 DNS 服务器记录。 - Local DNS 再向.com 的权威 DNS 服务器发起 www.adntech.com 的域名解析请求,在.com 权威 DNS
服务器向 Local DNS 返回 adntech.com 的权威域名服务器记录对应的 IP 地 址。 - Local DNS 再向 adntech.com 的权威域名服务器发起 www.adntech.com 的域名解析请求。这时
adntech.com 的权威域名服务器向 Local DNS 返回 www.adntech.com 域名所对应的IP 地址。 - 客户端的本地 DNS 客户端将解析结果返回给浏览器,则浏览器向 www.adntech.com对应的 IP 地址的 80 端口发起 HTTP GET 指令,Web 服务器则返回相应的请求内容
每一个域名解析记录都有对应的 TTL 值,根据这个 TTL 值所定义的时间,客户端和 LocalDNS 都将会在本地缓存解析得到的结果直到 TTL 值到达,然后再发起新的 DNS 查询请求。对于客户端而言,在 TTL 的有效时间内,如果浏览器或者本机的其他应用程序需要访问这个域名的时候,都无需再进行查询动作,而直接从本地缓存内取得解析结果然后连接对应的 IP地址。对于 Local DNS 而言,在 TTL 有效时间内,任何一个客户端请求,都将直接返回本地缓存的记录,在超过缓存时间后,则重复进行前面的动作,解析域名所对应的 IP 地址。