我们都知道互联网都是通过URL来发布和请求资源的,而URL中的域名需要解析成IP才能与远程主机建立连接,那么如何将域名解析成IP呢?下面就介绍一下DNS域名解析的过程。
如我们在浏览器中输入www.google.com时,DNS解析过程如下:
- 浏览器会检查缓存中有没有域名对应的解析过得IP地址,如果缓存中有,这个解析过程就将结束。
- 如果用户的浏览器缓存中没有,浏览器会查找操作系统缓存中是否有这个域名解析的DNS结果。在Windows中可以通过C:\Windows\System32\drivers\etc\hosts文件来设置,你可以将任何域名解析到任何能够访问的IP地址。
- 在我们的网络配置中都会有“DNS服务器地址”这一项,对于以上两个步骤无法解析的域名,操作系统会把这个域名发送给配置中设置的LDNS,也就是本地区的域名服务器。这个DNS通常是提供给你本地互联网介入的一个DNS解析服务,Windows下可以通过ipconfig/all查询这个地址:
以太网适配器 以太网:
连接特定的 DNS 后缀 . . . . . . . : tendawifi.com
描述. . . . . . . . . . . . . . . : Killer E2200 Gigabit Ethernet Controller
物理地址. . . . . . . . . . . . . : 40-8D-5C-13-57-F7
DHCP 已启用 . . . . . . . . . . . : 是
自动配置已启用. . . . . . . . . . : 是
本地链接 IPv6 地址. . . . . . . . : fe80::8178:d3b:39b5:6812%5(首选)
IPv4 地址 . . . . . . . . . . . . : 192.168.0.130(首选)
子网掩码 . . . . . . . . . . . . : 255.255.255.0
获得租约的时间 . . . . . . . . . : 2018年6月5日 19:01:42
租约过期的时间 . . . . . . . . . : 2018年6月8日 17:51:14
默认网关. . . . . . . . . . . . . : 192.168.0.1
DHCP 服务器 . . . . . . . . . . . : 192.168.0.1
DHCPv6 IAID . . . . . . . . . . . : 272665948
DHCPv6 客户端 DUID . . . . . . . : 00-01-00-01-22-64-8C-64-40-8D-5C-13-57-F7
DNS 服务器 . . . . . . . . . . . : 192.168.0.1
TCPIP 上的 NetBIOS . . . . . . . : 已启用
- 如果LDNS仍然没有命中,就直接到Root Server域名服务器请求解析。
- 根域名服务器返回给本地域名服务器一个所查询域的主域名服务器(gTLD Server)地址。 gTLD是国际顶级域名服务器,如.com/、.cn、.org等。
- 本地域名服务器(Local DNS Server)再向上一步返回的gTLD服务器发送请求
- 接受请求的gTLD服务器查找并返回此域名对应的Name Server域名服务器的地址,这个Name Server通常就是你注册的域名服务器,例如你在某个域名服务提供商申请的域名,那么这个域名解析任务就由这个域名提供商的服务器来完成。
- Name Server域名服务器会查询存储的域名和IP的映射关系表,在正常情况下都根据域名得到目标IP记录,连同一个TTL值返回给DNS Server服务器。
- 返回该域名对应的IP和TTL值,Local DNS Server会缓存这个域名和IP的对应关系,缓存的时间由TTL控制。
-
把解析的结果返回给用户,用户根据TTL值缓存在本地系统缓存中,域名解析过程结束。
实际的DNS解析过程,可能不止这10个步骤,如Name Server也可能有多级,或者有一个GTM来负载均衡控制,这都有可能影响域名解析的过程。
前面我们简单的介绍了一下域名解析的过程,下面我们讲一下域名解析的方式,主要分为5种:
- A记录,A代表Address,用来指定域名对应的IP地址,如将item.taobao.com指定到115.238.23.xxx, A记录可以将多个域名解析到一个IP地址,但是不能将一个域名解析到多个IP地址。目前我们的weikayun.com使用的就是使用了这种域名解析方式。
- MX记录,表示Mail Exchange,就是可以将某个域名下的邮件服务器指向自己的Mail Server, 如taobao.com域名的A记录IP地址为115.238.23.xxx,如果将MX记录设置为115.238.23.xxx,即xxx@taobao.com的邮件路由,DNS会将邮件发送到115.238.23.xxx所在的服务器,而正常web请求的话仍然解析到A记录的IP地址。
- CNAME记录,全程是Canonical Name(别名解析)。所谓的别名解析就是可以为一个域名设置一个或者多个别名。如将taobao.com解析到xxx.net,将srcfan.com也解析到xxx.net,这个xxx.net分别是taobao.com和srcfan.com的别名。
- NS记录,为某个域名指定DNS解析服务器,也就是这个域名有指定IP地址的DNS服务器去解析。
- TXT记录,为某个主机或域名设置说明,如可以为xxx.net设置TXT记录为“xxx的博客”这样的说明。