DNS服务相关概念

DNS服务相关概念


DNS:域名解析 Domain Name Service(域名服务器)


 一、一些基础概念

域名:www.baidu.com (主机名) = FQDN: Full Qualified Domain Name(完全限定域名)

magedu.com  .com 都是域名,在.com下包含了magedu.com这个域,.com下同样有很多域IBM.com Goolge.com 、……同样在magedu.com这个域名下包含了许多主机,比如:wwwftpmail等,正式这些主机揉合起来的一个范围就叫一个域。

 

DNS的作用:名称解析 Name reaolving 也叫名称转换(背后有查询的过程,依赖的是数据库)

就是将FQDN---->IP 的过程(但是这个转换的过程是双向的)

例如:

172.25.254.1         www.magedu.com

172.25.254.2         mail.magedu.com

 

要完成名称解析的机制有很多,因此为了有一个统一的的框架就出现了nsswitchnsswitch就是实现为多种需要实现名称解析的机制提供明名称解析的平台,它只是提供平台,并不负责实际上的名称解析。

nsswitch

files  dns /etc/nsswitch.conf  里有这一行

files:指的就是/etc/hosts这个文件

dns :指的就是dns服务,也就是查询/etc/resolv.conf这个文件 

运作原理:当我们去访问一个主机名的时候,主机名没法真正建立联系,这个时候它会调用一个库文件完成从主机名到IP地址的转换,这个完成机制在我们本机叫做【stab resolver :名称解析器】这个名称解析器会通过某个库调来完成,首先去找/etc/nsswitchhosts这一行的配置,根据filesdns的先后次序,谁在前面先去查询哪个文件,从里面查一查是否有我们访问的主机名或者域名对应的IP地址,如果有就解析成功。

举例说明:

当我们ping www.magedu.com 的时候,很显然这是一个主机名没有办法直接建立联系,我们要将他转换成IP地址,ping命令就会借助本地的stub resolver 来完成名称解析。Stub resolver 第一步:去/etc/nsswitch.conf 文件中的hosts这一行,看hosts: files dns中的filesdns谁在前面,默认是files。第二步:去/etc/hosts文件里找有没有主机名www.magedu.com对应的IP地址,如果没有就去找dns来解析,即就是在/etc/resolv.conf这个文件中查找。

 

二、DNS解析的一个发展过程:

1.在最早的时候解析只会去查询/etc/hosts文件.

/etc/hosts文件里的内容

IPPADDRIP地址)  FQDN(主机名)  Alilases(别名)

172.25.01            www.magedu.com    magedu.com

 发展,随着主机名的增加形成DNS server服务器

最终形成DNS分布式数据库

在这告诉大家一点:

一个IP可以对应多个FQDN

一个FQDN也可以对应多个IP,但是你每次访问的时候只是返回一个IP,这样用来做负载均衡。

(这里还是有一点不太理解)


三、Dns服务器相关概念详解

全球有13台 服务器  (根服务器 )

a~m.root-server.net 

1.DNS服务器常见的几种类型

(1).DNS服务器:进行数据修改

(2)辅助DNS服务器:向主DNS服务器请求数据同步

运作原理:

数据修改在主服务器上,辅助DNS服务器请求数据同步,辅助服务器会定期向主服务器发出请求,同步数据,辅助服务器去检查主服务器的数据是否有修改,即就是比较两个数据文件的版本号即可。版本号不同即数据不同。而且若辅助DNS服务器在定期向主DNS服务器发出请求,在规定时间内没有得到答复,那么辅助DNS服务器就认为DNS服务器挂掉了,那么辅助DNS服务器也会自行挂掉。

 

2.五种属性信息

【主从服务器为了完成对彼此之间的同步,要定义以下五种信息】

(1)版本号、序列号:seried number 【一般的服务器有数据变动,会将版本号加1

(2)检查时间周期:refresh time 【定义每隔多久,辅助DNS服务器去检查一次主DNS服务器的版本号】

(3)重试时间:retry time 【辅助DNS服务器向主DNS服务器发送请求,并没有得到主DNS服务器的回应】

(4)过期时间:expire time 【多久主DNS服务器没有回复辅助DNS服务器,辅助DNS就会认为主DNS挂掉了】

(5) Nagative answer TTL:【该服务器下没有某个主机名,缓存时间】

 

缓存DNS服务器:不提供任何权威答案,只是负责缓存的。

转发器:不缓存,只转发请求


 四、DNS工作原理

两种查询方式:

递归:请求者只发出一次请求就能得到答案。

迭代:请求者要最终发出多次请求才能得到最终答案。

举例说明:AB1+1等于几?B说我不知道C知道,BC,C将结果给BB然后将结果给A。  这个过程A只发送一次请求给B,无论如何B会给A答案,这就是递归。

AB1+1等于几?,B说我不知道C知道,然后A再来找CC把答案给A。这个过程A发送了两次或者多次请求,这就是迭代。


如上图所示:

结合着这张图我们来分析一下DNS的工作模式:

St1(主机)要访问www(主机),首先st1找到ns1DNS服务器),ns1首先在本地ibm域寻找www【即就是在服务器上寻找是否有以www命名的主机,若有的话找出其对应的IP】,如果没有,然后ns1向根域所在的DNS服务器发送请求,询问www在哪,根域DNS服务器在数据库中查找之后会告诉ns1.com这个域,ns1ns2.com所在的DNS服务器)发送请求,问www在哪,ns2说在nagedu这个域,ns1又向ns3发送请求,ns3告诉ns1wwwIP,然后ns1再告诉st1,这样就ns1就完成了对www的解析。同时ns1会将www对应的IP在本地DNS缓存服务器中缓存起来,当st2再查询www的时候ns1就会直接告诉st2.这个时候ns1就不用去找根服务器了,根服务器就会很闲,压力就减小了,ns1的反应速度也快了,宽带也就节约出来了,这就是缓存的意义。

客户端st1是以递归的方式发送请求,服务器ns1是以迭代的方式发送请求。

问题一:

注意一个问题:ns1st2发送请求后直接返回结果了,那万一magedu服务器上www的主机地址改了,从1.1.1.1---1.1.1.2,那么st1查询完之后就改为1.1.1.2了,那么st2从本地ns1缓存中得到的是错误的结果,所以ns1虽然可以从缓存中给出答案,但是这个答案并非是最终答案,这是非权威答案,只有magedu返回的答案才是权威的答案(因为www的上一级是magedu),其它服务器给出的答案都是非权威答案,非权威答案都有可能过期,可能是错误的。所以这个缓存是有时间的,但是缓存多少时间呢?这个只有magedu最清楚,所以在mageduns1wwwIP时就给了一个TTL值,就是缓存的时间,超出magdu给的缓存时间之后就重新发出请求。

 

总体的查询过程:外部主机来查询ns内部主机

                Ns内部主机来查询ns外部主机

                Ns内部主机来查询ns内部主机

DNS就是通过这种分布式机制将查询的要求转移给层层的区域,给一个更小的管理机构,使得每一个区域的管理只需要一个独立的DNS服务器即可。

 

如前面的图所示,根服务器会有一个数据库,这个数据库中记录着所属的三个区域以及三个区域里的ns服务器,以及每个服务器对应的IP,然后ns1发出请求询问wwwIP的时候,根服务器向其返回的是ns2IP,然后ns1再去找ns2ns2服务器同样有一个数据库记录着.com这个域下的所属域以及所属域对应的ns服务器,以及每个服务器对应的IP。依次类推最终找到wwwIP。所以说是多个主机之间进行通信的,而且是IP之间进行通信的。这些数据库叫授权数据库,里面有各区域的ns服务器以及其IP 

总结:

查询有两种方式:

(1)递归:查询者发送一次请求

(2)迭代:查询者发送多次请求

解析有两种方式:

正向:FQDN----IP

反向:IP-------FQDN

互联网的查询是两段式:从客户端查起的时候是递归,从DNS服务器查询的时候是迭代的。

DNS分布式数据库:

上级只知道其直接下级的位置

下级默认情况下只知道根的位置(若想让下级知道上级必须手动配置)

 

DNS服务器:

接受本地客户端请求(递归的)

外部客户端请求:(也就是在寻找我们当前服务器所在域内的主机的IP)即就是请求权威答案。

肯定答案:TTL

否定答案:TTL(本地没有这个主机,服务器会告诉请求者没有该主机,并返回TTL值)

外部客户端请求:非权威答案,不给帮忙。

为了安全,.根,.com不给任何人递归,ns服务器只给自己内部的主机进行递归查询。

 

DNS服务器上的数据库中的每一个条目称作一个资源记录(Resource Record RR

资源记录的格式:

NAME(名称)     TTL值      IN(表示internet上面的资源记录)    RRT(资源记录类型)    VALUE(数据)

 

www.magedu.com    TTL值     IN    A       1.1.1.1

 

资源记录类型:

SOA (start of Authority) :起始授权记录,用于表明一个区域内部主从服务器之间如何进行同步数据,以及起始授权对象是谁

ZONE NAME   TTL  IN   SOA  FQDN(起始授权主机:一般是主DNS服务器地址)  ADMINI STRATOR_LBOX 邮箱

五种属性信息  版本号 、refresh time retry time expire time nagative answer TTL 

时间单位:M(分钟)、H(小时)、D(天)、w(周)、默认单位是秒

邮箱格式:[email protected]  ------>admin.magedu.com

举例:

   Magedu.com.  600   IN  SOA  ns1.magedu.com   admin.magedu.com 

2013040101  1H   5M  1W  1D 

 

MXMail Server)邮件服务器:

ZONENAME --->FQDN 

ZONE NAME    TTL    IN   pri(优先级)   VALUE

优先级是数字越小级别越高。(当我们有多台邮件服务器的时候找优先级较高的那台服务器进行邮件转发)万一这台邮件服务器比较忙,那么就找次之。

 

NSNAME SERVER ):ZONE NAME(区域名称)--->FQDN

Magedu.com.      600   IN   NS   na.magedu.com

Na.magedu.com    600   IN   A     1.1.1.2

 

A(address):     FQDN--->IPV4  (主机名到IP地址【IPV4的】)

AAAA :      FQDN--->IPV6  (主机名到IP地址【IPV6的】)

PTRpoint):IP--->FQDN IP到主机名)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章