<服务>DNS服务
目录:
什么是DNS
首先DNS就是一个IP和域名的对应关系,我们日常上网的时候是通过域名进行访问,但是域名会被DNS解析为IP然后再对目标进行访问。
DNS服务器解析过程
- 输入域名后,把这个域名发送给DNS服务器;
- DNS把域名解析为IP地址然后进行返回给我们的主机;
- 主机对返回的IP进行访问,得到我们想要的网页。
网页请求过程
- 先查找hosts文件
- 查找本地DNS缓存
- 查找本地DNS服务器,如果Local DNS中有地址,返回给主机IP地址
- 查找DNS服务器,返回给本地DNS服务器IP地址
- 本地DNS服务器进行缓存然后返回给主机IP地址
- 主机获得IP地址然后进行目标IP访问
- 目标IP给返回内容,一般会有一个http的200代码
这也就解释了为什么集群中为什么会找到集群主机而不是远程的实际IP地址的主机。
DNS解析过程
以www.baidu.com为例
- 传入的时候www.baidu.com,其实是www.baidu.com.;
- 先去root(这个root zone就是'.')的zone找com类型的zone;
- 然后在com类型中需要baidu域名的zone;
- 找到baidu下www的二级域名获得IP。 这个过程是一个迭代查询
DNS解析顺序
DNS解析顺序在/etc/nsswitch.conf中记录 hosts: files dns 证明是先解析host文件,再解析DNS的,也可以通过改变这个顺序改变DNS的解析顺序。
查看IP和域名的命令
我们可以通过host或者dig命令查域名对应的IP地址
[root@why-1 named]# host www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 115.239.210.27
www.a.shifen.com has address 115.239.211.112
[root@why-1 named]# dig www.baidu.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6_8.3 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11864
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 5
;; QUESTION SECTION:
;www.baidu.com. IN A
;; ANSWER SECTION:
www.baidu.com. 1101 IN CNAME www.a.shifen.com.
www.a.shifen.com. 261 IN A 115.239.210.27
www.a.shifen.com. 261 IN A 115.239.211.112
;; AUTHORITY SECTION:
a.shifen.com. 261 IN NS ns3.a.shifen.com.
a.shifen.com. 261 IN NS ns4.a.shifen.com.
a.shifen.com. 261 IN NS ns5.a.shifen.com.
a.shifen.com. 261 IN NS ns2.a.shifen.com.
a.shifen.com. 261 IN NS ns1.a.shifen.com.
;; ADDITIONAL SECTION:
ns1.a.shifen.com. 261 IN A 61.135.165.224
ns2.a.shifen.com. 261 IN A 180.149.133.241
ns3.a.shifen.com. 261 IN A 61.135.162.215
ns4.a.shifen.com. 261 IN A 115.239.210.176
ns5.a.shifen.com. 261 IN A 119.75.222.17
;; Query time: 0 msec
;; SERVER: 10.202.72.118#53(10.202.72.118)
;; WHEN: Wed Nov 9 15:21:08 2016
;; MSG SIZE rcvd: 260
dig -trace可以追踪DNS解析过程
[root@why-1 named]# dig +trace www.baidu.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6_8.3 <<>> +trace www.baidu.com
;; global options: +cmd
. 254441 IN NS l.root-servers.net.
. 254441 IN NS i.root-servers.net.
. 254441 IN NS j.root-servers.net.
. 254441 IN NS k.root-servers.net.
. 254441 IN NS e.root-servers.net.
. 254441 IN NS g.root-servers.net.
. 254441 IN NS m.root-servers.net.
. 254441 IN NS a.root-servers.net.
. 254441 IN NS h.root-servers.net.
. 254441 IN NS d.root-servers.net.
. 254441 IN NS b.root-servers.net.
. 254441 IN NS c.root-servers.net.
. 254441 IN NS f.root-servers.net.
;; Received 492 bytes from 10.202.72.118#53(10.202.72.118) in 40 ms
com. 172800 IN NS m.gtld-servers.net.
com. 172800 IN NS j.gtld-servers.net.
com. 172800 IN NS l.gtld-servers.net.
com. 172800 IN NS k.gtld-servers.net.
com. 172800 IN NS h.gtld-servers.net.
com. 172800 IN NS f.gtld-servers.net.
com. 172800 IN NS i.gtld-servers.net.
com. 172800 IN NS e.gtld-servers.net.
com. 172800 IN NS b.gtld-servers.net.
com. 172800 IN NS a.gtld-servers.net.
com. 172800 IN NS c.gtld-servers.net.
com. 172800 IN NS g.gtld-servers.net.
com. 172800 IN NS d.gtld-servers.net.
;; Received 491 bytes from 202.12.27.33#53(202.12.27.33) in 1518 ms
baidu.com. 172800 IN NS dns.baidu.com.
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 ns7.baidu.com.
;; Received 201 bytes from 192.55.83.30#53(192.55.83.30) in 352 ms
www.baidu.com. 1200 IN CNAME www.a.shifen.com.
a.shifen.com. 1200 IN NS ns2.a.shifen.com.
a.shifen.com. 1200 IN NS ns4.a.shifen.com.
a.shifen.com. 1200 IN NS ns5.a.shifen.com.
a.shifen.com. 1200 IN NS ns1.a.shifen.com.
a.shifen.com. 1200 IN NS ns3.a.shifen.com.
;; Received 228 bytes from 220.181.38.10#53(220.181.38.10) in 17 ms
DNS记录的信息为资源记录(Resource Record)的格式来保存
资源记录属性:
NAME(主机名)
CLASS(类别,也可以是IN)
TYPE(资源记录类型)
RDATA(信息)
YPE可以有
A IPv4地址
AAAA IPv6地址
MX 邮件记录
CNAME 别名
PTR 指针(逆向解析)
SRV 服务器资源
dig还有一些其他的命令
查看域名的IPv4地址
[root@why-1 named]# dig -t a www.baidu.com
查看域名的邮件记录
[root@why-1 named]# dig -t mx baidu.com
逆向解析IP对应的域名
[root@why-1 named]# dig -x 10.202.72.118
在一个集群中DNS的更多作用还是来当主机名来使用,通过域名来展示集群的第几个节点,上边运行的服务是什么来使用。 一个集群的主机名,域名运用是十分重要的,对自动化运维提供了很大的帮助。