<服务>DNS服务

时间:Nov. 9, 2016 分类:

目录:

什么是DNS

首先DNS就是一个IP和域名的对应关系,我们日常上网的时候是通过域名进行访问,但是域名会被DNS解析为IP然后再对目标进行访问。

DNS服务器解析过程

  1. 输入域名后,把这个域名发送给DNS服务器;
  2. DNS把域名解析为IP地址然后进行返回给我们的主机;
  3. 主机对返回的IP进行访问,得到我们想要的网页。

网页请求过程

  1. 先查找hosts文件
  2. 查找本地DNS缓存
  3. 查找本地DNS服务器,如果Local DNS中有地址,返回给主机IP地址
  4. 查找DNS服务器,返回给本地DNS服务器IP地址
  5. 本地DNS服务器进行缓存然后返回给主机IP地址
  6. 主机获得IP地址然后进行目标IP访问
  7. 目标IP给返回内容,一般会有一个http的200代码

这也就解释了为什么集群中为什么会找到集群主机而不是远程的实际IP地址的主机。

DNS解析过程

以www.baidu.com为例

  1. 传入的时候www.baidu.com,其实是www.baidu.com.;
  2. 先去root(这个root zone就是'.')的zone找com类型的zone;
  3. 然后在com类型中需要baidu域名的zone;
  4. 找到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的更多作用还是来当主机名来使用,通过域名来展示集群的第几个节点,上边运行的服务是什么来使用。 一个集群的主机名,域名运用是十分重要的,对自动化运维提供了很大的帮助。