参考书籍《深入分析Java Web技术内幕》
DNS的工作职责
域名解析成IP(互联网都是通过URL来发布和请求资源的,而URL中的域名需要解析成IP地址才能与远程主机建立连接)
DNS的解析过程
用户输入www.abc.com。DNS解析过程分为如下10步骤。
本机完成:
第一步:浏览器检查缓存中有没有这个域名对应的IP地址,如果存在,解析过程结束。
浏览器缓存域名有大小和时间的限制,可以通过TTL(time to live)来设置。
第二步:浏览器缓存中没有,会去查找操作系统缓存中是否有这个域名对应的DNS解析结果。Windows是在hosts文件中。可以手动指定域名对应IP地址。linux是在etc/hosts中。
域名服务器:
第三步:网络配置中会存在“DNS服务器地址”这一项,这个地址就是解决本机无法解析时,操作系统就会把这个域名发送给这里设置的LDNS(本地区域名服务器)。这个DNS提供本地互联网接入的一个DNS解析服务,例如你是在学校接入互联网,那么DNS服务器肯定在学校。如果你是在小区接入,那么DNS就在供应商那边。
它们也会缓存域名解析结果,缓存时间受域名的失效时间控制,大约80%的域名解析到这边就完成了。LDNS承担主要解析工作
第四步:LDNS没有命中,直接到Root Server域名服务器请求解析。
第五步:根域名服务器返回给本地域名服务器一个所查询域的主域名服务器(gTLD Server),gTLD是国际顶级域名服务器,例如.com,.cn,.org等,全球只有13台。
第六步:LDNS向gTLD服务器发送请求。
第七步:gTLD收到请求会查找并返回此域名对应的Name Server域名服务器的地址,Name Server通常就是注册的域名服务器,例如你在某个域名服务提供商申请的域名,那么这个域名解析任务就由这个域名提供商的服务器来完成。
第八步:Name Server域名服务器会查询存储的域名和IP的映射关系表,在正常情况下都根据域名得到目标IP记录,连同一个TTL值返回给DNS Server服务器。
第九步:返回该域名对应的IP和TTL值,LDNS会缓存这个域名和IP的对应关系,缓存的时间由TTL控制。
第十步:将解析的结果返回给用户,用户根据TTL值缓存在本地系统中。