一、概念
DNS:根据域名查询IP地址,就像一个巨大的电话本
二、查询过程
dig 可以查看整个查询过程,会展示四段信息
dig www.jianshu.com
; <<>> DiG 9.10.6 <<>> www.jianshu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51370
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.jianshu.com. IN A
;; ANSWER SECTION:
www.jianshu.com. 30 IN CNAME www.jianshu.com.wswebpic.com.
www.jianshu.com.wswebpic.com. 30 IN A 114.236.90.115
www.jianshu.com.wswebpic.com. 30 IN A 61.147.227.44
;; Query time: 15 msec
;; SERVER: 223.5.5.5#53(223.5.5.5)
;; WHEN: Wed Jan 23 14:47:02 CST 2019
;; MSG SIZE rcvd: 104
第一段是查询参数与统计
第二段是查询内容,A是address的缩写
第三段DNS服务器的答复,A记录是用来指定域名对应的ip地址,CNAME记录是别名记录,允许多个名字映射到同一个域名。30指缓存时间,30秒内不用重新查询
- A记录把一个域名解析到一个IP地址,CNAME把域名解析到另一个域名,这个别名也要做A记录的。但是使用CNAME记录可以更方便的变更IP,比如一台服务器有100个网站,他们都做了别名,服务器变更IP时,只需要变更别名的A记录就好了。
第四段是DNS服务器的一些传输信息,本机DNS服务器是223.5.5.5
如果不想看到太多信息,可以用以下命令
dig +short www.jianshu.com
三、DNS服务器
比较有名的DNS服务器是
- Google的8.8.8.8
- 阿里云的114.114.114.114
- 阿里云的223.5.5.5
dig命令有个@参数,指定某个DNS服务器
dig @114.114.114.114 www.jianshu.com
四、域名分级查询
上面可以看出每个域名后面都多了个 .
域名www.jianshu.com 显示为www.jianshu.com.。这是因为每个域名尾部都有一个根域名.root,一般忽略不写。以下是域名层级结构
evernotecid://2CF3738D-BAB2-47DD-9C0D-169A9D334A90/appyinxiangcom/13231804/ENResource/p288
分级查询就是从根域名开始,依次查询每一级域名的NS记录(域名服务器记录),直到查到最终IP。
- 从根域名服务器查到顶级域名服务器的NS、A记录
- 从顶级域名服务器查到次级域名服务器的NS、A记录
- 从次级域名服务器查到主机名IP地址
目前世界上有13组根域名服务器
以下命令可以查看DNS整个分级查询的过程
dig +trace www.jianshu.com
第一段展示根域名的所有NS记录,也就是所有根域名服务器
第二段展示com域名的NS记录
第三段展示jianshu.com的NS记录
第四段展示www.jianshu.com主机名
以下命令可以单独查看每一级域名的NS记录
dig ns com
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。