域名解析
域名系统(Domaon Name System)DNS来进行域名解析,也就是通过域名查询主机ip的操作。
首先浏览器会先检查缓存中有没有这个域名对应的解析过的 IP 地址。如果缓存中有,这个解析过程就将结束。域名的缓存时间限制可以通过
TTL
属性来设置(这个是浏览器行为,查的浏览器缓存,查看是否解析过该域名)如果浏览器缓存中没有,会检查操作系统中是否有这个域名对应的
DNS
解析结果,在 Windows 中可以通过C:\Windows\System32\drivers\etc\hosts
文件来设置,在 Linux 中这个配置文件是/etc/hosts
,修改这个文件同样可以配置域名解析的 IP 结果如果
hosts
文件中没有找到对应的条目,DNS 解析器会检查本地的 DNS 缓存如果以上步骤无法完成域名的解析,就会真正请求域名服务器来解析这个域名了。操作系统会先把域名发送给
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 记录:A代表Address,指定域名对应的 IP 地址(IPV4),同一主机名可以添加多个A记录,这样在访问时会进行DNS轮询,以此实现负载均衡
- AAAA记录:指定域名对应的 IP 地址(IPV6)
- MX 记录:表示的是Mail Exchage,将某个域名下的邮件服务器指向自己的邮件服务器
- CNAME 记录:表示Canonical Name,别名解析,将一个域名指向另一个域名,可以为一个域名设置一个或多个别名
- NS 记录:将子域名指向其他 DNS 解析服务器。
- TXT 记录:为某个主机名或域名设置说明
1 | 使用dig命令查询DNS |