谈一谈域名解析
域名解析
- 首先浏览器会先检查缓存中有没有这个域名对应的解析过的 IP 地址。如果缓存中有,这个解析过程就将结束。域名的缓存时间限制可以通过TTL属性来设置。
- 如果浏览器缓存中没有,会检查操作系统中是否有这个域名对应的DNS解析结果,在 Windows 中可以通过C:\Windows\System32\drivers\etc\hosts文件来设置,在 Linux 中这个配置文件是/etc/hosts,修改这个文件同样可以配置域名解析的 IP 结果。
- 如果以上步骤无法完成域名的解析,就会真正请求域名服务器来解析这个域名了。操作系统会先把域名发送给Local DNS Server,也就是本地区的域名服务器。例如你在学校接入校园网,那么本地域名服务器肯定在你的学校,如果你是在一个小区接入互联网,那这个Local DNS Server就是提供给你接入互联网的应用提供商(电信、移动或联通),通常会在城市里的某个角落,不会很远。
- 如果Local DNS Server仍然没有命中,就直接到ROOT DNS Server(根域名服务器)请求解析。
- 根域名服务器会返回给本地域名服务器一个所查询域名的gLTD Server(主域名服务器)地址,gLTD是国际顶级域名服务器,如.com、.cn等。
- Local DNS Server(本地域名服务器)会再向刚才返回的gTLD Server发送请求。
- 接受请求的gTLD Server查找并返回此域名对应的Name Server域名服务器的地址,这个Name Server通常就是你注册的域名服务提供商(例如阿里云-万网)。
- Name Server再查询存储的域名和 IP 的映射关系表,正常情况下,域名得到 IP 记录,连同一个TTL值返回给Local DNS Server(本地域名服务器)。
- Local DNS Server会缓存这个域名和 IP 的对应关系,缓存时间由TTL值控制,最后把解析的结果返回给用户
域名解析方式
域名解析记录主要分为 A 记录、AAAA记录、MX 记录、CNAME 记录、NS 记录和 TXT 记录。
- A 记录:指定域名对应的 IP 地址(IPV4)
- AAAA记录:指定域名对应的 IP 地址(IPV6)
- MX 记录:将域名指向邮件服务器。
- CNAME 记录:将一个域名指向另一个域名。
- NS 记录:将子域名指向其他 DNS 解析服务器。
- TXT 记录:为某个主机名或域名设置说明