DNS域名解析,就是将URL地址解析成IP地址,这样才能在互联网中找到相应的主机,并建立连接,虽然我们平时上网的时候感觉不到DNS的存在,但是一旦DNS解析出错,那么对于互联网来说将是一场灾难,因为你就不能通过www.baidu.com来访问百度的主机了!
DNS域名解析过程
1.当我们在地址栏中输入www.baidu.com,并按下回车键后,首先浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,则这个解析过程结束。域名被缓存的时间限制可以通过TTL属性来设置,另外浏览器对于缓存的大小也是有限制的。这个TTL属性的设置应当合理,太长或者太短都不好,太长则可能在IP地址与域名之间的对应关系发生改变后,这段时间无法解析,访问网站,太短则解析的频率增多。
2.如果用户的浏览器中没有缓存的域名,浏览器则会查找操作系统的缓存中是否有这个域名对应的DNS解析结果。Windows系统可以查看C:\Windows\System32\drivers\etc\hosts文件。黑客经常修改这个文件导致域名解析到特定的IP地址上,导致域名被劫持,所以现在这个文件被设置成了只读的,防止被轻易修改。Linux系统中相对应的文件则是/etc/hosts。
3.如果上面俩个步骤不能解析,则进入第三步,在我们的网络配置中,有一个"DNS服务器地址"
这个DNS服务器(一般称之为Local DNS Server)就用于当前俩个步骤无法解析时,来解析IP地址。这个专门的域名解析器性能一般都很好,一般都会缓存域名解析结果,缓存时间依然受到TTL控制,绝大部分的域名解析在这里能够完成。
4.如果第三步任然没有解析成功,则直接到根域名服务器请求解析
5.根域名服务器返回给本地域名服务器一个所查询域的主域名服务器(gTLD Server)地址。gTLD是国际顶级域名服务器,如.com,.cn ,.org等,全球只有13台。
6.本地域名服务器(第三步的域名服务器)向第五步的gTLD服务器发送请求。
7.接受请求的gTLD服务器查找并返回此域名对应的Name Server域名服务器的地址,这个Name Server通常就是你注册的域名服务器,例如你在某个域名服务提供商申请的域名,那么这个域名解析任务就由这个域名提供商的服务器来完成。
8.Name Server域名服务器会查询存储的域名和IP的映射关系表,在正常情况下都根据域名得到目标IP记录,连同一个TTL值返回给DNS Server域名服务器。
9.返回该域名对应的IP和TTL值,Local DNS Server会缓存这个域名和IP的对应关系,由TTL的值控制缓存时间。
10.把解析的结果返回给用户,用户根据TTL值缓存在本地系统缓存中,域名解析结束。
大致就是以上这些步骤,实际解析可能更复杂。