由于服务器IP地址不方便记忆,所以发明了域名,而域名只有解析成服务器的IP地址,才能和远程主机(如腾讯云服务器)进行连接,那么这就是DNS做的事情了。所以这篇
由于服务器IP地址不方便记忆,所以发明了域名,而域名只有解析成服务器的IP地址,才能和远程主机(如腾讯云服务器)进行连接,那么这就是DNS做的事情了。所以这篇文章将下NS如如何解析域名的。
DNS域名解析过程
下图所示为DNS域名解析的主要请求过程图:
比如:我在浏览器输入www.clips.xin,按回车,DNS解析过程将近10个步骤。下面看下具体的步骤
-
检查浏览器缓存中是否有这个域名对应解析过的IP地址,如果有就结束。缓存的时间可以通过 TTL 属性来设置。加入到缓存中是为了让浏览器访问更快。那么如何在浏览器查看缓存呢? 以chrome为例,在浏览器中输入:
chrome://net-internals/#events
-
,然后点击: chrome://net-export ,进入日志的记录。然后停止日志,会生成一个chrome-net-export-log.json 文件,打开它,输入域名会找到对应缓存地址。格式如:{"address_family":1,"addresses":["xxx.xx.xx.xx"],"expiration":"10575353","flags":4,"hostname":"www.clips.xin","network_changes":4,"ttl":600000},
-
如果浏览器缓存中没有,会查找操作系统缓存中是否有这个域名对应的dns解析记录,Windows在 hosts里面,早起hosts里面不用用户授权,黑客可以修改,将域名对应的IP修改到恶意的地址,不过后来变成只读了,防止被轻易地修改了。linux 这边在/etc/hosts里面。
-
如果1,2都没有,那么接下来会交给LDNS(Local dns server )来解析,一般你办宽带的时候,宽带商会给给你一个DNS的地址。windows下面可以通过ipconfig查看请求的dns服务器地址。可以通过
cat /etc/resolv.conf
-
查看,一般会缓存域名解析结果。所以其主要承担了80%的域名解析工作。
-
LDNS如果还是没有命中,直接到Root server 域名服务器请求解析,到gTLD server去查询,gTLD是国际顶级域名服务商,如.com,.cn等。
-
接受请求的gTLD服务器查找并返回域名对应的Name Server域名服务器的地址,这个Name Server通常是你注册的域名服务器。
-
Name Server 域名服务器会查询存储的域名和IP地址的映射,连同TLL值返给给DNS Server 域名服务器
-
对于返回的IP和TTL,Local DNS Server会缓存这个域名、IP地址和TTL
-
将解析的结果返回为用户,解析结束。
DNS解析记录介绍:
-
A表示:Address,指定域名对应的IP地址。
-
MX:mail exchange,邮件服务器地址
-
AAAA :ipv6,目前阿里云准备全名支持ipv6了
-
CNAME: 别名解析,
-
NS:指定DNS解析服务器
-
TXT记录:为主机名或域名设置说明