互联网都是通过URL来发布和请求资源的,而URL(Uniform Resource Locator)中的域名需要解析成IP地址才能与远程主机建立连接,如何将域名解析成IP地址就属于DNS解析的工作范畴.在平常上网的时候,可能感觉不到DNS解析,但是一旦DNS解析出错,可能会导致非常严重的互联网灾难.
DNS域名解析过程:
DNS域名解析过程:
当用户在浏览器中输入www.baidu.com时,DNS解析将会有10个步骤.
第一步:浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就将结束.
第二步:如果用户的浏览器中没有,浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果.
操作系统有一个域名解析的过程,在windows中可以通过C:WindowsSystem32driversetchosts文件来设置,你可以将任意域名解析到任何能够访问的IP地址.如果你这里指定了一个域名对应的IP地址,那么浏览器会首先使用这个IP地址.当解析到这个配置文件中的某个域名时,操作系统会在缓存中缓存这个解析结果,缓存的时间同样是受这个域名的时效时间和缓存的空间大小控制的.
第三步:在我们的网络配置中都会有"DNS服务器地址"这一项,这个地址就用于解决前面所说的如果两个过程无法解析时要怎么办,操作系统会把这个域名发送给这里设置的LDNS,也就是本地区的域名服务器.
例如:如果你是在学校连入互联网,你用的就是学校的DNS服务器.可以通过ipconfig这个命令查看DNS地址.
第四步:如果LDNS仍然没有命中,就直接到Root Server(根服务器)域名服务器请求解析.
第五步:根域名服务器返回给本地域名服务器一个所查询域的主域名服务器(gTLD server) 地址.gTLD是国际顶级域名服务器,如com,cn,org等.
第六步:本地域名服务器(Local DNS Server)再向上一步返回的gTLD(通用顶级域)服务器发送请求.
第七步:接受请求的gTLD服务器查找并返回此域名对应的Name server域名服务器的地址,这个Name Server通常就是你注册的域名服务器.
第八步:NameServer域名服务器会查询存储的域名和IP的映射关系表,在正常情况下都根据域名得到目标IP记录,连同一个TTL值返回给DNSserver域名服务器.
第九步:返回该域名对应的IP和TTL的值,LocalDNS Server会缓存这个域名和IP对应关系,缓存时间由TTL值控制.
第十步:把解析的结果返回给用户,用户根据TTL值缓存到本地系统缓存中,域名解析过程结束.
跟踪域名解析过程
在linux和windows下都可以通过nslookup命令来查询域名的解析结果.