Bind9 zone 文件格式化说明

; zone file fragment for mytest.cn
    ;$TTL 600
    $ORIGIN mytest.cn.
    ; SOA record
    ; owner-name ttl class rr      name-server      email-addr  (sn ref ret ex min)
    @                 IN   SOA     ns1.mytest.cn.   root.mytest.cn. (
                        2017031088 ; sn = serial number
                        3600       ; ref = refresh = 20m
                        180        ; uret = update retry = 1m
                        1209600    ; ex = expiry = 2w
                        10800      ; nx = nxdomain ttl = 3h
                        )
    ; type syntax
    ; host ttl class type data
    ; NS records
    @  86400  IN  NS  ns1.mytest.cn.
    @  86400  IN  NS  ns2.mytest.cn.
    ; A records
    ns1  600  IN  A  10.10.8.1
    ns2  600  IN  A  10.10.8.2
SOA 记录说明
owner-name
    当前域,通常用 @ 来表示
TTL
    标准的TTL值,范围 0 ~ 2147483647。  
    Note:Bind9 开始这里不再适用。
rr
    resource record 资源记录
name-server
    当前域的主DNS
email-addr
    负责此区域的人员的电子邮件地址,因为@在这里有特殊意义,所以用.替代。
sn
    序列号 – Serial,每次变更区域内容时数值+1,以通知slave同步数据。
    值范围1 ~ 4294967295,最大增量 2147483647
ref
    更新频率 – Refresh,slave主动向master更新。
    建议 1200 ~ 43200 秒
ret
    重试时间 – Retry,当slave同步数据失败,多少时间内会再次重试同步。
    典型值为180(3分钟)至900(15分钟)或更高。
ex
    失效时间(Expire),一直尝试的失败时间,持续到这个设定值,指示区域数据不再具有权威性。
    建议 1209600 ~ 2419200 秒 (2-4 weeks)
nx / min
    bind9开始将此值重新定义为负缓存时间。任何解析器都可以缓存 NAME ERROR = NXDOMAIN 结果的时间。允许的最大值是 3 hours (10800 seconds). 
    Note:Bind4 ~ 8版本中,这里为 min,用于保存未指定显式TTL的区域中的任何RR的默认TTL值。而Bind9开始使用$TTL指令定义默认的TTL值。

TTL

TTL(Time-To-Live/生存时间),是一个域名解析记录在 DNS服务器 中的存留时间。各地的DNS服务器在接受到解析请求后,会向域名指定的NS服务器发出解析请求从而获得解析记录;在获得这个记录之后,记录会在DNS服务器中保存一段时间,在这段时间内若再次接到解析请求,DNS服务器将直接返回刚才获得的记录;而这个记录在DNS服务器上保留的时间,就是TTL值。

TTL 设置的应用

  1. 增大TTL值,加速域名解析时间
    一般情况下,域名记录是很少更改的,几个月甚至在几年内都不会有变化。我们可以增大域名记录的TTL值让记录在各地DNS服务器中缓存的时间加长,这样在更长的一段时间内,我们访问这个网站时,本地ISP的DNS服务器就不需要向域名的NS服务器发出解析请求,而直接从缓存中返回域名解析记录。
    TTL值设置成过大的值可能会有不必要的麻烦,但当要更换空间的时候,旧记录需要要等很久才能被更新。

  2. 减小TTL值,加速域名解析生效时间
    更换空间时有DNS记录更改的问题,由于缓存问题,更改的域名记录在有的地方已经生效了,但在有的地方可能等上一两天甚至更久才生效。导致有的地方可能访问到了新服务器,有的地方访问到了旧服务器。
    如果TTL设置非常小(例如1秒),那么就意味着几乎每次用户的解析,递归服务器都需要向DNSLA进行解析请求,这样所耗费的时间就会增加很多,而且权威服务器的解析因为要判断用户的来源进行智能解析,比起来直接使用缓存回答耗费的时间会更长,而且失败率也会更高,因此这对用户的访问体验和解析稳定性都有损害。

TTL 推荐设置

IP经常变动 动态 IP 宕机检测 服务器架构 TTL 建议值
不使用 单服务器 600
使用 多服务器 180
不使用 单服务器 300
不限 不限 120
使用 大型商业网站 60
不使用 热备,容灾,IP固定 3600

上述表格只是一个参考设置,DNSPOD上默认的解析TTL值是600,我觉得比较合适.

下面是阿里的解析

  • BIND软件中的区域文件是由named.conf文档指定的,RHEL6中,如果没有安装chroot组件包的话。named.conf默认存放位置在/etc/目录下。而named.conf默认指定的区域文件就在/var/named/目录下。下面先来看下一个基本的正向解析区域文档。@INSOAkutea.net.root.kutea.net.(1999051401;Serial3600;Refresh300;Retry3600000;Expire3600);Minimum(@这符号
  • BIND软件中的区域文件是由named.conf文档指定的,RHEL6中,如果没有安装chroot组件包的话。named.conf默认存放位置在/etc/目录下。而named.conf默认指定的区域文件就在/var/named/目录下。下面先来看下一个基本的正向解析区域文档。

    @ IN SOA kutea.net. root.kutea.net. (
    1999051401 ; Serial
    3600 ; Refresh
    300 ; Retry
    3600000 ; Expire
    3600 ) ; Minimum

    (@ 这符号是缩写,表示 named.conf 中这个 zone 文档所对应的区域,SOA 后面的两个是该zone文件中的参数,是指定这个zone文件是在哪部主机(kutea.net)定义的,以及这个zone文件的负
    责人(root)既是(root.kutea.net),亦可以看成是 [email protected] )

    (Serial 代表这个zone 文件的版本,每当zone 文件内容有变动,name server 管理者就应该增加这个号码,因为slave 会将这个号码与其copy 的那份比对以便决定是否要再copy 一次(即进
    行zone 传输))

    (Refresh Slave server 每隔这段时间(秒),就会检查Master server 上的serial number。不过这里会发生一个问题就是,在master server 在update data 完成到slave server 来检查时再update 可能还有好一段时间,因此这段期间master/slave DNS server间zone files 就可能出现不一致。所以在Bind较新的版本中便加入"notify"功能,使用者在"named.conf" 设定中在需要的zone 中加入"notify"的设定,则master server在update 完成某个zone file 的data 后便会主动发个讯息(NOTIFY),借以通知该其它的slave servers,因此如果slave servers 也有支援这个"notify"功能时,接下来slave servers 马上就可以做zone 传输来更新数据)

    zone "kutea.net" IN {
    type master;
    file "kutea.db";
    notify yes;
    also-notify { 192.168.0.15; }; //指定slave server的IP地址
    };

    (Retry 当从服务器无法和主站进行串行检查时,要每隔几秒再试一次)

    (Expire 当时间超过Expire 所定的秒数而slave server 都无法和master 取得连络,那么slave 会删除自己的这份copy)

    (Minimum 代表这个zone 文件中所有record 的内定的TTL 值,也就是其它的DNS server cache 这个record时,最长不应该超过这个时间)

    NS :
    IN NS ns1.kutea.net. (name server, 用来指定操作的DNS服务器主机名称,NS记录是不允许用主机IP地址来表示的。有过域名注册和使用域名的朋友或许知道 域名商要求你指定你域名解释的NS服务器时,你用服务器IP地址来替换,就会报错。就是这个原因了。NS记录其本身就不允许用IP地址来制定)

    A 和 AAAA :
    A记录 address,即主机记录。(就是将一个域名对应IP地址的记录。)
    例如下面的IPv4和IPv6指定A记录的格式是:
    www IN A 122.128.109.86
    mail IN AAAA CDCD:910A:2222:5498:8475:1FF1:3900:2027

    PTR (其中这个记录是出现在反向解析zone文件中):
    Pointer , 定义某一 IP 地址对应的 domain name ,就是将 IP 地址转换成主机的FQDN
    86 IN PTR www.kutea.net. (注意别名记录后面有个小数点)

    CNAME :
    Canonical name , 可为同一部主机设定许多别名,例如cdn.kutea.net的别名可为www.kutea.net和ftp.kutea.net 因此所设定的别名都会连到同一台服务器上。

    MX :
    mail exchanger,设定区域中担任邮件服务器的主机,所有要送往那部机器的mail 都要经过mail exchanger 转送。注意 而数字则是该主机邮件传递时的优先次序,此值越低表示有越高的邮件处理优先权。
    mail IN MX 3 ns.kutea.net.

    来总结下,以上就是DNS服务器之BIND软件中的zone文档诠释。其中应该注意的是,上文提到的PTR记录出现在反向区域文档中。SOA授权的一些参数在正向反向都存在的,MX(邮件交换)记录中的邮件级别值越低就有越高的邮件处理优先权。关于MX记录更多的详细内容可以点击这里进行查阅。

你可能感兴趣的:(CDN)