DNS域名解析步骤
下面就还以www.baidu,com这个网址来分析一下dns的解析过程。
第一步:
当浏览器拿到输入的www.baidu.com后,首先会去浏览器的dns缓存中去查询是否有对应记录,如果查询到记录就可以直接返回ip地址,完成解析。
第二步:
如果浏览器没有缓存,那就再去查询操作系统的缓存,同样的,如果查询到记录就可以直接返回ip地址,完成解析。
第三步:
如果操作系统也没有缓存,那就再去查看本地host文件,Windows下host文件一般位于 “C:\Windows\System32\drivers\etc”。
第四步:
如果本地host文件也没有相应记录,那就需要求助于本地DNS服务器了,所以应该要知道本地dns的ip地址。
本地dns服务器ip地址一般是由本地网络服务商如移动、电信提供,一般是通过DHCP自动分配,当然你也可以自己手动配置。目前用的比较多的是谷歌提供的公用dns 8.8.8.8和国内的公用dns 114.114.114.114及阿里的223.5.5.5。
第五步:
找到本地dns后,它也会先去查询一遍它自己的缓存,如果有记录就返回,如果没有记录,它将开始要去我们前面提到的根域名服务器查询了。注意由于根域名服务器ip地址一般都是固定的,所以本地dns服务器一般都内置了根域名服务器ip地址。
目前全球一共有13个根域名服务器(这里并不是指13台服务器,是指13个ip地址,按字母a-m编号),为了能更高效完成全球所有域名的解析请求,根域名服务器本身并不会直接去解析域名,而是会把不同的解析请求分配给下面的其他服务器去完成
第六步
当根域名接收到本地dns的解析请求后,发现是后缀是.com,于是就把负责.com的顶级域名服务器ip地址返给本地dns。
第七步
本地dns拿着返回的ip地址再去找到对应的顶级域名服务器,顶级域名又把负责该域名的权威服务器ip返回去。
第八步
本地dns又拿着ip去找对应的权威服务器,权威服务器最终把对应的主机ip的解析记录(俗称A记录)返回给本地dns。
第九步
本地dns会将解析后的ip地址信息进行缓存,缓存好将A记录信息返回给客户端。
第十步
客户端收到本地dns响应的A记录信息,
会将A记录缓存到本地,然后使用解析后的ip地址访问www.baidu.com。
至此就完成了域名解析的全过程。