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节点的服务器负责响应用户的请求,提供所需的内容。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注