DNS: Internet’s Directory
关于DNS
互联网上几乎一切活动都以DNS
请求开始。DNS
(Domain Name System)是Internet
的目录。访问URL
时,设备所要做的第一件事就是询问目录,根据域名查出IP
地址。
查询过程
例如:访问www.baidu.com
- 首先检查本机
hosts
文件 - 向本地
DNS
服务器查找www.baidu.com
的IP - 根
DNS
服务器查询 - 告知本地
DNS
服务器去com域名服务器查询 - 向com域名服务器查询
- 告知本地
DNS
服务器去baidu.com
域名服务器查询 - 向
baidu.com
域名服务器查询 - 告知本地
DNS
服务器www.baidu.com
的IP
dig
解析域名
dig www.baidu.com
dig www.baidu.com @114.114.114.114
,查指定DNS服务器为114.114.114.114
dig www.baidu.com @114.114.114.114 ns
,查指定域名记录ns
简单解析域名
dig www.baidu.com
结果如下:
; <<>> DiG 9.10.6 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22401
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.baidu.com. IN A
;; ANSWER SECTION:
www.baidu.com. 255 IN CNAME www.a.shifen.com.
www.a.shifen.com. 172 IN CNAME www.wshifen.com.
www.wshifen.com. 293 IN A 103.235.46.39
;; Query time: 53 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Mar 19 19:06:52 CST 2019
;; MSG SIZE rcvd: 111
第一段是查询参数和统计
; <<>> DiG 9.10.6 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22303
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
第二段是查询内容,表示查询域名www.baidu.com
的A
记录,A
是address的缩写。
;; QUESTION SECTION:
;www.baidu.com. IN A
第三段是DNS服务器的答复,www.baidu.com
有两个CNAME
记录,一个A
记录,即一个IP地址。35是TTL值(Time to live 的缩写),表示缓存时间,即35秒之内不用重新查询
;; ANSWER SECTION:
www.baidu.com. 789 IN CNAME www.a.shifen.com.
www.a.shifen.com. 95 IN CNAME www.wshifen.com.
www.wshifen.com. 35 IN A 103.235.46.39
第四段是DNS服务器的一些传输信息
;; Query time: 53 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Mar 19 18:35:33 CST 2019
;; MSG SIZE rcvd: 111
查指定域名记录
dig www.baidu.com @114.114.114.114 ns
结果如下:
; <<>> DiG 9.10.6 <<>> www.baidu.com @114.114.114.114 ns
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13293
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.baidu.com. IN NS
;; ANSWER SECTION:
www.baidu.com. 30 IN CNAME www.a.shifen.com.
www.a.shifen.com. 30 IN CNAME www.wshifen.com.
;; AUTHORITY SECTION:
wshifen.com. 30 IN SOA ns1.wshifen.com. baidu_dns_master.baidu.com. 1903190001 60 30 2592000 3600
;; Query time: 225 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: Tue Mar 19 19:07:32 CST 2019
;; MSG SIZE rcvd: 152
第四段显示www.baidu.com
的NS
记录(Name Server的缩写),即哪些服务器负责管理www.baidu.com
的DNS记录
;; AUTHORITY SECTION:
wshifen.com. 62 IN SOA ns1.wshifen.com. baidu_dns_master.baidu.com. 1903190001 60 30 2592000 3600
域名层级结构
www.example.com.root
主机名.次级域名.顶级域名.根域名
分级查询
dig +trace www.baidu.com
第一段列出根域名.
的所有NS记录,即所有根域名服务器。根据内置的根域名服务器IP地址,DNS服务器向所有这些IP地址发出查询请求,询问www.baidu.com
的顶级域名服务器com.
的NS记录。最先回复的根域名服务器将被缓存,以后只向这台服务器发请求。
; <<>> DiG 9.10.6 <<>> +trace www.baidu.com
;; global options: +cmd
. 102290 IN NS a.root-servers.net.
. 102290 IN NS b.root-servers.net.
. 102290 IN NS c.root-servers.net.
. 102290 IN NS d.root-servers.net.
. 102290 IN NS e.root-servers.net.
. 102290 IN NS f.root-servers.net.
. 102290 IN NS g.root-servers.net.
. 102290 IN NS h.root-servers.net.
. 102290 IN NS i.root-servers.net.
接着是第二段
com. 172800 IN NS a.gtld-servers.net.
com. 172800 IN NS b.gtld-servers.net.
com. 172800 IN NS c.gtld-servers.net.
com. 172800 IN NS d.gtld-servers.net.
com. 172800 IN NS e.gtld-servers.net.
com. 172800 IN NS f.gtld-servers.net.
com. 172800 IN NS g.gtld-servers.net.
com. 172800 IN NS h.gtld-servers.net.
com. 172800 IN NS i.gtld-servers.net.
com. 172800 IN NS j.gtld-servers.net.
com. 172800 IN NS k.gtld-servers.net.
com. 172800 IN NS l.gtld-servers.net.
com. 172800 IN NS m.gtld-servers.net.
第二段显示显示.com域名的13条NS记录,同时返回的还有每一条记录对应的IP地址。
然后,DNS服务器向这些顶级域名服务器发出查询请求,询问www.baidu.com
的次级域名baidu.com
的NS记录。
baidu.com. 172800 IN NS ns2.baidu.com.
baidu.com. 172800 IN NS ns3.baidu.com.
baidu.com. 172800 IN NS ns4.baidu.com.
baidu.com. 172800 IN NS ns1.baidu.com.
baidu.com. 172800 IN NS ns7.baidu.com.
上面结果显示baidu.com
有五条NS记录。
然后,DNS服务器向上面这五台NS服务器查询www.baidu.com
的主机名。
www.baidu.com. 1200 IN CNAME www.a.shifen.com.
a.shifen.com. 1200 IN NS ns4.a.shifen.com.
a.shifen.com. 1200 IN NS ns3.a.shifen.com.
a.shifen.com. 1200 IN NS ns5.a.shifen.com.
a.shifen.com. 1200 IN NS ns2.a.shifen.com.
a.shifen.com. 1200 IN NS ns1.a.shifen.com.
;; Received 239 bytes from 112.80.248.64#53(ns3.baidu.com) in 16 ms
上面结果显示,最先返回结果的NS服务器是ns3.baidu.com
,IP地址为112.80.248.64
。
NS记录的查询
dig
命令可以单独查看每一级域名的NS记录,+short
参数可以显示简化的结果
dig ns com
dig ns example.com
dig +short ns com
dig +short ns example.com
常见域名记录类型
域名与IP之间的对应关系,称为记录。
A 主机记录,把一个域名解析成IP地址
CNAME 别名记录,把一个域名解析到另一个域名
NS 域名解析服务器记录
MX 邮件交换记录,返回接收电子邮件的服务器地址
PTR 指针记录,A记录的逆向记录,把IP解析成域名
TXT 为域名设置说明
一般来说,为了服务的安全可靠,至少应该有两条NS记录,而A记录和MX记录也可以有多条,这样就提供了服务的冗余性,防止出现单点失败。
CNAME记录主要用于域名的内部跳转,为服务器配置提供灵活性,用户感知不到。举例来说,www.baidu.com
这个域名就是一个CNAME记录。
;; ANSWER SECTION:
www.baidu.com. 430 IN CNAME www.a.shifen.com.
www.a.shifen.com. 231 IN CNAME www.wshifen.com.
www.wshifen.com. 286 IN A 103.235.46.39
上面结果显示,www.baidu.com
的CNAME记录指向www.wshifen.com
。也就是说,用户查询www.baidu.com
的时候,实际上返回的是www.wshifen.com
的IP地址。这样的好处是,变更服务器IP地址的时候,只要修改www.wshifen.com
这个域名就可以了,用户的www.baidu.com
域名不用修改。
由于CNAME
记录就是一个替换,所以域名一旦设置CNAME
记录以后,就不能再设置其他记录了(比如A
记录和MX
记录),这是为了防止产生冲突。举例来说,foo.com
指向bar.com
,而两个域名各有自己的MX
记录,如果两者不一致,就会产生问题。由于顶级域名通常要设置MX
记录,所以一般不允许用户对顶级域名设置CNAME
记录。
PTR
记录用于从IP地址反查域名。dig
命令的-x
参数用于查询PTR
记录。
$ dig -x 192.30.252.153
...
;; ANSWER SECTION:
153.252.30.192.in-addr.arpa. 2635 IN PTR lb-192-30-252-153-iad.github.com.
上面结果显示,192.30.252.153
这台服务器的域名是lb-192-30-252-153-iad.github.com
。
逆向查询的一个应用,是可以防止垃圾邮件,即验证发送邮件的IP地址,是否真的有它所声称的域名。
其他DNS工具
- host
- nslookup
参考:
http://www.ruanyifeng.com/blog/2016/06/dns.html
DNS: Internet’s Directory的更多相关文章
- Windows Server 2016-Active Directory复制概念(一)
停更十余天后,从今天开始继续为大家带来Windows Server 2016 Active Directory系列更新,本章为大家介绍有关Active Directory复制相关概念内容,有关Acti ...
- bind域名dns解析及主从服务的配置
bind域名dns解析及主从服务的配置 1.dns解析介绍 人们习惯记忆域名,但机器间互相只认IP地址,域名与IP地址之间是多对一的关系,一个ip地址不一定只对应一个域名,且一个域名只可以对应 ...
- SRV记录用来标识某台服务器使用了某个服务,常见于微软系统的目录管理——深入的话需要去折腾Azure Active Directory
SRV记录 SRV记录 什么情况下会用到SRV记录? [SRV记录用来标识某台服务器使用了某个服务,常见于微软系统的目录管理] SRV记录的添加方式 A.主机记录处格式为:服务的名字.协议的类型 例如 ...
- Active Directory域
引言 在 Microsoft® Windows® 2000 Server 操作系统的诸多增强功能中,Microsoft Active Directory™ 功能的引入意义最为重大,但也最常引起困惑.与 ...
- DNS资源记录的七类
在Microsoft产品系列中,ADDS是一个很出色的设计平台,说到AD,那么我们就不得不提起他的合作伙伴--DNS,相信大家都知道,DNS在AD中的重要地位,就如男人和女人一样,要想有所作为,他们2 ...
- linux dns子域授权 split分离解析 缓存dns服务器
DNS子域授权作用:适用于同一个DNS组织父/子域名的解析工作由不同的dns服务器负责父dns服务器应该有为子域名迭代的能力 上下级区域属于不同的机构管理:.cn与.Anonymous.cn.cn需要 ...
- Active Directory participation features and security extensions
Participation in the Active Directory Samba 3.0 series, as well as the OS since Windows 2000, is pos ...
- windows常用端口对应表
端口概念 在网络技术中,端口(Port)大致有两种意思:一是物理意义上的端口,比如,ADSL Modem.集线器.交换机.路由器用于连接其他网络设备的接口,如RJ-45端口.SC端口等等.二是逻辑意义 ...
- Windows操作系统上各种服务使用的端口号, 以及它们使用的协议的列表
Windows操作系统上各种服务使用的端口号, 以及它们使用的协议的列表 列表如下 Port Protocol Network Service System Service System Servic ...
随机推荐
- ubuntu 快捷键
gnome-terminal and xfce4-terminal: Ctrl+Shift+c (copy) and Ctrl+Shift+v (paste) xterm: Ctrl+Insert ( ...
- jquery cdn bootstrap静态资源库问题
使用微软静态资源库 <script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.min.js">&l ...
- less,more,view一个文件时中文可以正常显示,可是VI却显示乱码呢?
https://blog.csdn.net/konglongaa/article/details/80590470 登陆后输入export LC_ALL="zh_CN.GB2312" ...
- 19-02【mac电脑操作】最小化应用程序
最小化应用程序 windows下很简单,直接使用windows+M即可: mac电脑下,官方建议是:option+command+m+h.但实际使用的时候,这个快捷键并不好使: 解决方案:mac系统设 ...
- sqlserver2017 SSAS配置远程访问不成功的问题
sqlserver2017 SSAS通过IIS配置远程访问一直访问不成功的解决办法: 出现这个问题的原因从微软给出的更新包中说的就是: 从 SQL Server 2017 开始,Analysis Se ...
- js 加减乘除以及四舍五入 新写法
1 四舍五入 eg: (1.23).round() = 1.2 (1.2456).round(3) = 1.246 Number.prototype.round = function (count) ...
- 【CSS】Sticky Footer 布局
什么是 Sticky Footer 布局? Sticky Footer 布局是一种将 footer 吸附在底部的CSS布局. footer 可以是任意的元素,该布局会形成一种当内容不足,footer ...
- js实现一个简单的登录页面
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- python 13 常用模块 一
一.time模块 1.time.time()获取当前时间戳,返回长整型 2.time.localtime() 获取当地结构化时间,time.gmtime()获取格林尼治时间 一图需要传入匹配格式, ...
- Solved: RDP Disconnected – Error Code 2825 mremote