我们知道互联网都是通过URL来发布和请求资源的,而URL中的域名需要解析成地址才能与远程主机建立连接,如何将域名解析成IP地址就是DNS的工作范畴;
当一个用户在浏览器中输入www.lagou.com时,DNS大概有这些步骤:
1.浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就将结束。
2.如果用户的浏览器缓存中没有,浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果。操作系统也有一个域名解析的过程,在Windows中可以
通过C:\\Windows\System32\drivers\etc\hosts 文件来设置,你可以将任何域名解析到任何能够访问的IP地址。如果你在这里指定了一个域名对应的IP地址,
那么浏览器会首先使用一个IP地址。
3.如果前面两个过程都无法解析,操作系统会把这个域名发送给这里设置的LDNS,也就是本地的域名服务器。这个DNS通常提供给你本地互联网接入的一个
DNS解析服务。在windows下通过ipconfig可以查询这个地址。
这个专门的域名解析服务器性能都会很好,它们一般都会缓存域名解析结果,当然缓存时间是受域名的失效时间控制的,一般缓存空间不是影响域名失效的主
要因素。大约百分之80的域名解析都到这里就已经完成了,所以LDNS主要承担域名的解析工作
4.如果LDNS仍然没有命中,就直接到Root Server域名服务器请求解析。
5.根域名服务器返回给本地域名服务器一个所查询的主域名服务器(gTLD Server)地址。gTLD是国际顶级域名服务器,如.com, .cn, corg
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值缓存在本地系统缓存中,域名解析过程结束