DNS学习总结

来源:互联网 发布:什么叫it行业 编辑:程序博客网 时间:2024/06/07 20:49

Domain Name System

一个由分层的DNS服务器实现的分布式数据库

  • 根DNS服务器
  • 顶级DNS服务器(Top Level Domain)
  • 权威DNS服务器

一个使得主机能够查询分布式数据库的应用层协议
运行在UDP之上,53号端口

交互过程

根、TLD和权威DNS服务器都处在DNS服务器的层次中,还有一类称为本地DNS服务器,严格来说不处于该层次结构中.当主机发出DNS请求时,该请求被发往本地DNS服务器,它起着代理作用,并将请求发往DNS服务器层次结构中。

这里写图片描述

1.向本地DNS服务器发送查询报文,包含被转换的主机名gaia.cs.umass.edu

2.本地DNS服务器将该报文转发到根DNS服务器

3.根DNS服务器注意到edu前缀并向本地DNS服务器edu的TLD的IP列表地址

4.本地DNS服务器向TLD服务器之一发送查询报文,TLD服务器注意到umass.edu,并用其权威服务器地址dns.umass.edu进行响应

5.本地DNS服务器直接向权威服务器地址dns.umass.edu重发查询报文,权威服务器dns.umass.edu用gaia.cs.umass.edu进行响应

共4次查询4次响应

第1次查询是递归查询,该查询以dns.poly.edu名义进行

后面3个查询是迭代查询,所有的回答直接返回。

DNS缓存

DNS服务器收到回答时就将回答缓存在本地存储器上,有失效时间。一般发送请求时浏览器的DNS查找顺序是:浏览器缓存>系统缓存>路由器缓存>本地DNS服务器缓存>递归查询。
一般本地DNS服务器缓存可在ISP上,中间有路由器的话可能是路由器。

浏览器缓存

浏览器DNS缓存和DNS服务器的TTL(time to live)无关,每种浏览器都有固定的DNS缓存时间,Chrome为1min

系统缓存

dns查询命令:
- ipconfig /displaydns:查询所有DNS缓存
- nslookup -d www.baidu.com或者 nslookup www.baidu.com查询某URL的DNS信息。

ISP DNS缓存

有些ISP会忽略网站DNS提供的TTL,而自己设置1个较长的TTL,导致顶级DNS更新时,不能及时拿到新的IP地址。

DNS域名解析—负载均衡

在DNS系统中有1个重要的资源记录叫A记录,他将特定的域名映射到对应主机的IP地址上。将A记录填写到特定的DNS解析服务商的服务器上,过段时间别人就可以通过域名访问自己的网站了。这里若有多个服务器主机则DNS除了解析域名之外还需根据用户进行负载均衡:
这里写图片描述

可看出:上面的负载均衡节点是单点的,DNS服务器中配置了多条A记录,每次域名解析都会根据对应的负载均衡算法计算出对应的IP地址,但这是传统的做法,如果DNS服务器崩了那所有用户都不能访问网站了

下面是CDN的做法:

这里写图片描述

可看出所有请求被分配到不同的节点上,即使单点故障也可进行故障转移

负载均衡算法

DNS服务器可能位于任意位置,DNS会将域名解析为距离用户地理最近的服务器地址,这样便可以加速访问。

具体如何解析?

DNS查询顺序为:PC>浏览器缓存>系统缓存>路由器缓存>本地DNS服务器缓存>递归查询>迭代查询>返回给PC,其中迭代查询中将进行智能DNS解析,可用方式:
1. 将不同区域的IP地址存储在一张IP地址及其地理信息的映射表中,当有用户请求时,将其解析到最近的线路中。
2. 根据不同线路的繁忙程度解析到空闲的线路中。

原创粉丝点击