域名解析这个东西, 说直白一点, 它就是一种过程, 这个过程的负责人是DNS系统, 也就是那个叫Domain Name System的东西, 它要把我们这些人类能读懂的、像www.gname.xin这样让人看着顺眼的域名, 去翻译成机器能识别的那种IP地址。
你想想看, 当你在浏览器里输入了那个网址之后, DNS它就会在几十毫秒那么短的时间内把这个翻译的工作给做完, 翻译完了之后, 你的浏览器才能知道该去哪里, 从而向那个正确的服务器发起连接请求。
整个解析流程分为四个步骤。
1. 本地查询这个设备它会先去把这个本地的DNS缓存给查一下, 如果里头已经存在了有记录的话, 那么它就直接返回去好了, 根本就不需要再跑去上网。
2. 递归查询指的是: 在缓存没有命中数据的情况下, 设备会把请求发送给本地DNS服务器, 这个本地DNS服务器通常是由运营商或者路由器来提供的, 然后由它代为继续进行后面的查询操作。
3. 迭代查询: 本地的DNS会依次向根服务器发起询问, 接着向顶级域服务器进行询问什么是域名解析什么是域名解析,最后再向该域名的权威服务器去询问, 从而逐级获得结果, 最终得到IP地址, 其中顶级域比如的是 .xin , 而权威服务器则是依据 gname.xin 所配置的 NS 记录来进行的。
4. 返回与缓存: IP地址是从底层一层一层地传回来的。本地的DNS服务器会把这条记录存起来, 并且这个储存时间由TTL来决定。当设备获取到IP地址之后。它就会向服务器发起TCP或者HTTPS连接。这样一来, 页面就可以显示出来了。
有下面这些核心概念, 你必须得清楚明白。
根服务器: 在全球范围内总共有13组, 也就是从A组到M组,它们专门负责统一管理所有的顶级域名相关的事务。
TLD服务器: 每一个顶级域, 比如.com、.xin、.org这些, 都有各自对应的一组权威服务器。
权威服务器:由域名持有者或注册商配置,保存该域名最终的A/AAAA/CNAME/MX等资源记录。
TTL(生存时间): 这是每条DNS记录的缓存有效期。当这个时间过期之后, 客户端需要重新发起解析工作。如果在修改了记录之后, 要让全球范围内的生效通常需要等待TTL的时间到期。一般来说, 这个时间是24小时到48小时之间。
实际举一个例子来看, 在访问gname.xin这个地址的时候, DNS会依次地去查询。xin的顶级域名的服务器。然后再去查gname.xin这个域名的权威服务器。最后返回它绑定的那个IP地址。整个这个过程通常只需要耗费10到50毫秒的时间。
网站无法打开,提示DNS错误: 这多半是因为运营商的DNS出现了故障, 或者是本地的DNS缓存出了错。大家可以尝试将公共DNS换一换, 比方说114.114.114.114或者8.8.8.8, 也可以去把系统缓存给清掉。
修改DNS后未生效这个问题, 其实属于正常现象, 你需要等待旧的TTL过期之后才可以看到效果;如果遇到紧急的情况, 可以先缩短TTL的时间值, 然后再进行修改操作才对。
域名有A记录但仍无法访问: 这说明DNS解析这个动作本身是正常完成的, 但实际的问题出在后面, 因为与IP地址对应的那台主机可能没有运行起来, 或者是被防火墙给拦截了, 这时候你就需要去检查服务器方面的情况, 而不应该再去看DNS。

