欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

马哥 19_02 _DNS服务相关概念详解 有大用

image.png


全球的根服务器只有13台,

中国连根镜像都没有,地震导致到互联网出口总关出了问题,没有根镜像,导致,域名到期没法续费,被别人抢注了

互联网本身出故障,导致dns系统出故障也是很正常的现象,根是一定不能出问题的


image.png

ns.magedu.com 要存在,并且 www.magedu.com 这个主机要在线,别人才能访问,否则,只要有一环出问题,别人就不能访问

image.png


DNS 服务器的常见类型

一) dns的主从结构 (主从 主辅) 两种角色

    主dns服务器 数据修改(添加 删除)在这儿完成,  push(推送),推送很烦人,一般不允许推送 (好像这里不能push推送提示)

二) 辅助dns服务器 请求数据同步 pull(拉取) 拉取内容

                每隔一段时间请求主dns服务器,看数据有没有变化,有变化就把变化的内容请求过来,,没改的话就等待一次请求检查

         当主dns挂了,辅助dns 每隔一段时间检查一下,每隔一段时间再检查一下,如果有效期内,得不到主dns的答案,辅助dns 也会自杀挂掉

         因为主dns服务器一直不在线,辅助dns看主dns不管,它也不管了,所以它也挂,它不是顶上去的

         辅助dns请求看主dns有没有变化,靠比较版本号来实现的,(主dns一有变化,就让版本号加1),从dns看版本号不一样的话,就更新

             版本号称为序列号 1)serial number ,从dns 任何时候不手动改变序列号,只有主dns手动改变,所以从dns看版本号要小,就认为有数据更新了,        

             多长时间检查一次, 2) refresh: ( refresh time ) 更新时间,刷新时间,检查的时间周期,辅助dns每隔多久检查一次主dns 的版本号 

                                          3) retry: 检查不在的话,重试,重试应该小于refresh时间

                                          4) expire: 过期时间, 检查不在的话,检查了多少次之后的时间,认为主dns不在线,最终从dns认定主dns挂了,此时辅助dns也同时自杀                          

                                          5) nagative answer TTL : (nagative  消极的 )否定回答(dns服务器回答没有这个主机)的时长,也要定义在主从结构的配置信息当中(主从结构的时局里头)


因此主从服务器双方为了能够完成彼此间的同步,一般要定义上面五个属性

image.png



三) 缓存dns服务器 ,同一网内都访问 www.baidu.com ,有个服务器 只缓存 ip 与 FQDN,这也是一种服务器类型,叫缓存dns服务器

不提供任何权威答案


image.png



四)转发器,   还有一种dns服务器,不仅不提供权威答案,连缓存都不提供,就叫转发器,不缓存,只转发请求的.

(上面的缓存服务器有缓存功能的,如果把缓存功能去了,就成了转发器  , 只把解析的结果递归给最根初的客户端)

(在教室里不能上网,但是dns解析服务是能够进行的,所以客户端(不能上网)请求域名后,通过转发器(能连网)得到了ip地址,

有了ip地址,就算解析了,但是客户端由于不能上网,所以结果就是能解析主机名,但是不能上互联网)

image.png


 到于哪个主机做 dns 服务器,是由上级来决定的

image.png


dns 服务器中的 数据库中的每一个条目(比如  ftp, email 的,不包括www?为什么?),称为资源记录  (RR , resource record )


就像 # cat /etc/passwd         每一行都是一个用户

image.png


资源记录的定义格式            ( RRT  resource record type  ) 

TTL  600      (可以全局定义TTL)

NAME    TTL                      IN                                 RRT                                              VALUE  

名称       ttl值(可省略)         internet            resource record type(资源记录类型)        才是数据,是ip地址吧,或名称吧



例子 (定义的时候,在dns服务器当中,最后一个点必须写上)        (  正向解析 正向例子  )  ( IN要大写IN 不能小写  in)

www.magedu.com.            IN                A              1.1.1.1              



反向例子        (  反向解析 反向例子  )

1.1.1.1            IN                PTR              www.magedu.com.  




资源记录类型:标识这条记录,在当前这个dns服务器内扮演了什么样的角色

,比如靠资源记录类型来标识谁是邮件服务器


        1)SOA ( Start Of Authority )(起始授权记录)( SOA 是资源记录类型 )(用于标明一个区域内部主从服务器之间如何同步数据以及启始授权对象是谁),一定要出现在数据类型的第一条,用于标明本区域内多个dns服务器彼此之间是如何完成数据同步的,......时间可以使用单位,比如M( minute 分钟),H( hour 小时),D( day 天),W( week 周) 默认单位是秒钟( Second ).......邮箱格式:  一般格式是 admin@magedu.com ,但是这里的邮箱地址是不能使用 艾特@符号的,因为 艾特@符号在资源记录文件中有特殊意义,@表示ZONE NAME (当前区域的区域名称),@是一个通配符,用来通配当前区域的名称,所以要写成 admin.magedu.com

                ZONE NAME                TTL                IN                SOA           (启始授权主机,一般来讲是主dns服务器地址,FADN,写其它的也行,这里没有特别重要的意义)  FQDN(启始授权主机,一般来说,是主dns,当然写成别的也行,因为它没有特别重要的意义)  ADMINISTRATOR_MAILBOX(管理员邮箱地址)  刚才所说的五个属性,小括号括起来,换行写(

                                                    Serial    number

                                                    refresh 

                                                    retry 

                                                    expire

                                                    na ttl  )

                    例子    magedu.com. (可以写成@)        600        IN   SOA     ns1.magedu.com. ( 注意这个点千万不能少 )  admin.magedu.com.  (

            2013040101      ; 分号表示注释信息 这里不是井号#表示注释 当然换行使用分号( ; )注释,同一行内注释比较麻烦  ( Serial    number 最长不能超过10位,就算是用 1 也可以 ,改一次变成2 )

            1H

            5M

            1W

            1D )

                    上面小括号里面的内容可以写在同一行里面,不用换行,不换行时,小括号其实都不用写,所以可以把小括号看作续行符,但是提倡换行的写法        查询时的返回结果一般都不换行

                  例子或者这样写   

                     magedu.com.    600        IN   SOA     ns1.magedu.com.  admin.magedu.com.  ( 2013040101  1H   5M   1W  1D )

                    例子或者这样写   

                     @   600        IN   SOA     ns1.magedu.com.  admin.magedu.com.  ( 2013040101  1H   5M   1W  1D )


         时间单位: M( minute 分钟),H( hour 小时),D( day 天),W( week 周) 默认单位是秒钟( Second )

         邮箱格式:    admin@magedu.com --写为 --> admin.magedu.com


        

        2) NS(Name Server):  ZONE NAME (区域名)   -->FQDN 还要加上IP记录, 一般用不上,因为上级给它了,但是有人查询的时候要用到它的IP地址,所以还要给它个A记录

                    例子 magedu.com         600     IN    NS    ns.magedu.com.

                            ns.magedu.com.    600     IN    A      1.1.1.1

                    例子 magedu.com         600     IN    NS    ns1.magedu.com.

                            ns1.magedu.com.    600     IN    A      1.1.1.1

                            magedu.com         600     IN    NS    ns2.magedu.com.

                            ns2.magedu.com.    600     IN    A      1.1.1.5

                谁是主,谁是从,是靠 ZONE 区域 内部来定义的,定义ZONE的时候来指明谁是主,谁是从

                     



        3) MX( Mail eXchanger)(邮件交换器):   ZONE NAME --> FQDN 可能有多个邮件服务器,有优先级的概念,同时要给A记录

                ZONE NAME         TTL            IN        MX    pri (priority优先级)        VALUE

                    优先级: 0-99    数字越小,级别越高

                例子  magedu.com       600     IN    MX       10         mail.magedu.com.

                         mail.magedu.com.    600     IN   A       1.1.1.3

                    

        4) A (address):        FQDN-->IPv4                (A是最常用的记录类型)

        5) AAAA ( 4 address )       FQDN-->IPv6      

        6) PTR(pointer 指针记录):        IP-->FQDN    ( 这个IP可以是 IPv4,IPv6 ,目前来讲是 IPv4 )

        7) CNAME ( canonical NAME 正式名称 ): FQDN-->FQDN   我们通常称CNAME是别名记录

                     例子:

                            www2.magedu.com.           (100(这里省了TTL))   IN            CNAME         www.magedu.com.  

                        上面表示  www2.magedu.com.    的 正式名称 是     www.magedu.com.  表示 www2.magedu.com.   是  www.magedu.com.  的别名 ,,,,,,,, 上面这条记录称为别名记录,用于标明一个FQDN的另一个名字是谁的

        8) TXT    

        9) CHAOS

        10) SRV



域: Domain 站在dns的角度,域是一个逻辑概念,

区域: Zone  站在dns的角度,区域是一个物理概念,



正向和反向用的不是同一个数据库文件,而且它们走的不是同一条路


image.png

域和区域之间没有必然的包含关系

域来自于上级的区域文件

但是就某一个域来讲,区域要比域小一点,但是一个域,它的授权是来自于上级的

而且正向区域的授权和反向区域的授权是分开进行的

事实上都是区域在工作,所以我们说 域是逻辑概念,区域是物理概念 

image.png

image.png

image.png


正向区域的名称与域名是相同的,反向区域的名称是与域名是不相同的,

反向区域的域名是网段地址而且要反过来写  (例如 192.168.0.0/24 的反向区域的域名是 0.168.192.in-addr.apra. )

第一条记录 必须是 SOA类型,通常第二条记录是ns, 

接下来,正向的都是A记录,反向的都是PTR记录 

正向的文件里面还可以有CNAME记录,反向的文件里面也可以有CNAME记录



.com

magedu.com.            IN            NS            ns.magedu.com.

ns.magedu.com.        IN            A              192.168.0.10



magedu.com.            192.168.0.0/24


www           192.168.0.1

mail            192.168.0.2            MX


建立两个区域文件

正向区域文件

magedu.com.                           IN                    SOA

上面一行可以简写为@ 即下面这一行,为什么写成艾特就可以了呢,是因为在某个配置文件中定义的

        @                         IN                    SOA     

www.magedu.com.                  IN              A            192.168.0.1   

上面一行可以简写为下面一行,但是简写时 www后面千万不能加点 .     上面一行全写时一定得加点  

        www          IN              A            192.168.0.1 



反向区域文件        

0.168.192.in-addr.apra.            IN            SOA


1.0.168.192.in-addr.apra.            IN        PTR        www.magedu.com.       (坚决不能简写    因为简写补的区域名,如果写成www的话就是 www.0.168.192.in-addr.apra.    自然是不对的)

下面一行是简写

        1          IN        PTR        www.magedu.com.   



zone的区域文件就是资源记录的集合,第一条必须得是SOA

两个文件里面SOA的格式,除了区域名称之外,其它都可以是相同的

MX记录只能定义在正向区域文件当中,不需要定义在反向当中

ns记录 正向 反向都可以定义

A记录只能定义在正向

PTR记录只能定义在反向    


比如1小时刷新一次,但是5分钟后,主dns变化了,就会通知从dns,

数据传送的过程,叫区域传送


image.png


区域传送的类型:

        完全区域传送: axfr  ( all transfer )   完全的把数据传送过去

        增量区域传送: ixfr  ( increment transfer )    只传改变的内容


image.png


image.png


一个从dns可以是另一个从的主dns (另一个从dns从这个从dns上取数据)


传送数据的区域类型:

    主区域: master

    从区域: slave

    提示区域: hint        (自己找不着的,都要到根那边去找)(所以hint就是定义根在什么地方的)

    转发区域: forward     (直接定义 magedu.com   com 在哪些ip地址上,不需要从根上面找了)


image.png



.com.

magedu.com.

在网上的话,要拿钱买域名, magedu.com.  是由 .com.  分配的,所以 要跟 .com. 拿钱买















普通分类: