DNS域名解析过程及如何进行优化

一个用户在地址栏输入例如www.baidu.com,DNS解析大概有10个过程:

DNS是Internet上作为域名和IP地址相互映射的一个分布式数据库,是用户更方便的访问Internet,而不用去记住那些IP地址

①浏览器先检查自身缓存中有没有这个域名对应的IP地址,如果有,解析结束。

②如果浏览器缓存中没有命中,浏览器会检查自身操作系统缓存中有没有相应的已经解析的过程。而且操作系统也有一个域名解析的过程。windows -> c盘 -> Windows -> System32 -> drivers -> etc -> hosts(如果在这里设置了一个域名对应的IP地址,那么浏览器就会首先使用这个IP地址,所以这种操作系统级别的域名解析通常会被黑客利用,通过修改你hosts文件里的内容把域名解析到他指定的ip地址上,造成所谓的域名劫持,所以将hosts文件设置成了只读模式,防止被恶意篡改。)

③如果还没有命中域名,这时才会真正的请求本地域名服务器(LDNS)来解析这个域名,这台服务一般在你城市的某个角落,距离不会很远,并且他的性能很好,一般都会缓存域名解析结果,大概80%的域名解析到这里都结束了。

④如果本地域名服务器还是没有命中,就直接跳到Root Server域名服务器请求解析

⑤Root Server服务器返回给LDNS一个所查询域的主域名服务器地址(gTLD Server)

⑥这时LDNS再发送请求给上一步返回的gTLD

⑦接受请求的gTLD查找并返回这个域名对应的Name Server的地址,这个Name Server就是网站注册的域名服务器

⑧Name Server根据映射关系表找到目标IP,返回给LDNS

⑨LDNS缓存这个域名和对应的IP

⑩LDNS把解析的结果返回给用户,用户根据TTL值(一条域名解析记录在DNS服务器的存留时间)缓存到本地系统缓存中,域名解析过程到此结束。

浏览器如何通过域名去查询URL对应的IP地址?

 

  1、浏览器缓存:浏览器会按照一定的频率缓存DNS记录。

 

  2、操作系统缓存:如果浏览器缓存中找不到需要的DNS记录,那就去操作系统中找。

 

  3、路由缓存:路由器也有DNS缓存。

 

  4、ISP的DNS服务器:ISP是互联网服务提供商(Internet Service Provider)的简称,ISP有专门的DNS服务器应对DNS查询请求。

 

  5、根服务器:ISP的DNS服务器还找不到的话,它就会向根服务器发出请求,进行递归查询(DNS服务器先问根域名服务器.com域名服务器的IP地址,然后再问.com域名服务器,依次类推)。

DNS优化与DNS负载均衡?

了解了DNS的过程,如果每次都经过这么多步骤,是否太耗时间?如何减少该过程的步骤呢? 
那就需要DNS优化了

DNS缓存

  DNS存在着多级缓存,从离浏览器的距离排序的话,有以下几种: 浏览器缓存,系统缓存,路由器缓存,IPS服务器缓存,根域名服务器缓存,顶级域名服务器缓存,主域名服务器缓存。

DNS负载均衡

  互联网用户巨大的今天,假如亿万请求请求的资源都位于同一台机器上面,那么这台机器随时可能会蹦掉。处理办法就是用DNS负载均衡技术,它的原理是在DNS服务器中为同一个主机名配置多个IP地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的。例如可以根据每台机器的负载量,该机器离用户地理位置的距离等等。  

大家耳熟能详的CDN(Content Delivery Network)就是利用DNS的重定向技术,DNS服务器会返回一个跟用户最接近的点的IP地址给用户,CDN节点的服务器负责响应用户的请求,提供所需的内容。

 

转载于:https://www.cnblogs.com/fanfan0916/p/9369913.html

DNS的查询过程      如查询过程的初始步骤所示,DNS 域名由本机的程序使用。该请求随后传送至 DNS 客户服务,以通过使用就地缓存的信息进行解析。如果可以解析查询的名称,则查询将被应答,并且此过程完成。其中,本地解析程序的缓存可从以下2个可能的来源获取名称  信息:      ● 如果主机文件就地配置,则来自该文件的任何主机名称到地址的映射都将在DNS 客户服务启动时预先加载到缓存中。      ● 从以前DNS查询应答的响应中获取的资源记录将被添加至缓存并保留一段时间。      如果此查询不匹配缓存中的项目,则解析过程继续进行,客户机查询 DNS 服务器来解析名称。      接下来查询 DNS 服务器,当本地的DNS不能就地解析查询时,可根据需要查询 DNS 服务器来解析名称。如图4-1所示,客户机将查询首选 DNS 服务器。在此过程中使用的实际服务器是从全局列表中选择的。当 DNS 服务器接收到查询时,首先检查它能否根据在服务器的就地配置区域中获取的资源记录信息作出权威性的应答。如果查询的名称与本地区域信息中的相应资源记录匹配,则服务器作出权威性的应答,并且使用该信息来解析查询的名称。      如果查询的名称没有区域信息,则服务器检查它能否通过本地缓存的先前查询信息来解析名称。如果从中发现匹配的信息,则服务器使用它应答查询。接着,如果首选服务器可使用来自其缓存的肯定匹配响应来应答发出请求的客户机,则此次查询完成。      如果查询名称在首选服务器中未发现来自缓存或区域信息的匹配应答,则查询过程可继续进行,使用递归来完全解析名称,包括来自其他 DNS 服务器的支持,以帮助解析名称。在默认情况下,DNS 客户服务要求服务器在返回应答前使用递归过程来代表客户机完全解析名称。在大多数情况下,DNS 服务器的默认配置支持递归过程,如图4-2所示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值