DNS入门

1、概念

DNS:根据域名查询IP地址,就像一个巨大的电话本ios

2、查询过程

dig 能够查看整个查询过程,会展现四段信息web

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服务器

若是不想看到太多信息,能够用如下命令app

dig +short www.jianshu.com

3、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

4、域名分级查询

上面能够看出每一个域名后面都多了个 .
域名www.jianshu.com 显示为www.jianshu.com.。这是由于每一个域名尾部都有一个根域名.root,通常忽略不写。如下是域名层级结构
evernotecid://2CF3738D-BAB2-47DD-9C0D-169A9D334A90/appyinxiangcom/13231804/ENResource/p288
clipboard.pngspa

分级查询就是从根域名开始,依次查询每一级域名的NS记录(域名服务器记录),直到查到最终IP。code

  1. 从根域名服务器查到顶级域名服务器的NS、A记录
  2. 从顶级域名服务器查到次级域名服务器的NS、A记录
  3. 从次级域名服务器查到主机名IP地址

目前世界上有13组根域名服务器blog

如下命令能够查看DNS整个分级查询的过程

dig +trace www.jianshu.com

clipboard.png
第一段展现根域名的全部NS记录,也就是全部根域名服务器

clipboard.png
第二段展现com域名的NS记录

clipboard.png
第三段展现jianshu.com的NS记录

clipboard.png
第四段展现www.jianshu.com主机名

如下命令能够单独查看每一级域名的NS记录

dig ns com

图片描述

参考文献
  1. 超清晰的DNS原理入门指南
  2. A记录和CNAME记录的区别
相关文章
相关标签/搜索