前面我们自己配置了一个zone区域数据文件,但是里面的记录不是太清楚,这章我们来研究下这些记录的所用和区域数据文件的格式

1)DNS常用记录类型

区域解析库文件:每个域名都有一个自己的区域解析库文件(zone文件),由一条条资源记录来定义具体指向

SOA记录:起始授权记录,一个区域解析库只能有一个SOA记录,而且必须为第一条。打个比方,建了个海岛,需要对外宣布世界上多了一个海岛,这个事情就是SOA在做    

NS记录:域名服务记录,一个区域解析库可以有多个NS记录,其中一个为主服务器。结合上面的例子,NS记录可以理解为用来宣布岛主是谁

A记录:地址记录,从域名解析为IP的记录

AAAA:IPv6的地址记录

PRT:反向解析记录,从IP解析为域名

MX:邮件交换记录。我们平时发邮件都是直接发到qq.com、163.com等域名上,但是这些域名肯定是有多台服务器的,MX记录就是指明了哪个服务器会负责邮件。MX服务可以存在多个,由优先级来区分先后,0-99,数字越小优先级越高

CNAME记录:给一个地址设置一个别名

在DNS服务器中每个域都要通过zone文件保存信息,文件语法格式是标准化的,一个典型配置如下:

$TTL    1D
@    IN    SOA    @ repo.com(
                  2        ;
             604800        ; 
              86400        ; 
            2419200        ; 
             604800 )      ; 
           IN  NS  ns
ns         IN  A   192.168.56.6
www        IN  A   192.168.56.6

1,首先在区域解析库zone文件的开头定义SOA记录,定义格式:

@    IN    SOA    @ repo.com(
                  2        ; #serial序列号,标识是第几个版本
             604800        ; #refresh刷新时间
              86400        ; #retry重试时间
            2419200        ; #expire过期时间
             604800 )      ;#否定回答时间

2,定义当前区域的NS记录,定义格式示例:

         IN  NS  ns              #NS记录
ns IN A 192.168.56.6 #NS记录所引用的A记录

3,MX记录定义格式示例(多了一个优先级):

@  IN MX 10 mx1.repo.com
@  IN MX 20 mx1.repo.com

4,A记录记录定义格式示例:

www        IN  A   192.168.56.6   #FQDN自动补齐:在区域数据文件中,没有使用点号"."结尾的,在实际使用的时候都会自动补上域名,使其变为 FQDN。例如:上面文件中的 www,会自动补全为 www.repo.com.

5,PTR记录(IP反过来写,加特定后缀):

6.56.168.192.in-addr.arpa  IN PTR  www.repo.com.

6,CNAME记录定义格式示例:

web.repo.com  IN CNAME www.repo.com

 

2)两种不同写法的zone区域数据文件:

FQDN的写法:

$TTL 600
@               IN  SOA     master.abc.com. woodie.abc.com. ( 2017022802 3H 15M 1W 1D )
@               IN  NS      master.abc.com.
master.abc.com. IN  A       192.168.80.110
@               IN  MX  10  www.abc.com.
www.abc.com.    IN  A       192.168.80.121
bbs.abc.com.    IN  CNAME   www.abc.com.
ftp.abc.com.    IN  CNAME   www.abc.com.
linux.abc.com.  IN  CNAME   www.abc.com.
slave.abc.com.  IN  A       192.168.80.120
122.abc.com.    IN  A       192.168.80.122

简写:

$TTL 600
@               IN  SOA     master.abc.com. woodie.abc.com.( 2017022802 3H 15M 1W 1D )
@               IN  NS      master
master          IN  A       192.168.80.110
@               IN  MX  10  www
www             IN  A       192.168.80.121
bbs             IN  CNAME   www
ftp             IN  CNAME   www
linux           IN  CNAME   www
slave           IN  A       192.168.80.120
122             IN  A       192.168.80.122

简写不太容易看明白,而FQDN的写法,又太啰嗦,而且要注意.(点号),所以我个人偏好喜欢这样的写法。

$TTL 600
@               IN  SOA     master.abc.com. woodie.abc.com.( 2017022802 3H 15M 1W 1D )
@               IN  NS      master.abc.com.
master          IN  A       192.168.80.110
@               IN  MX  10  www.abc.com.
www             IN  A       192.168.80.121
bbs             IN  CNAME   www.abc.com.
ftp             IN  CNAME   www.abc.com.
linux           IN  CNAME   www.abc.com.
slave           IN  A       192.168.80.120
122             IN  A       192.168.80.122

其中soa记录的字段解释:

master.abc.com. woodie.abc.com. :这里是SOA的固定格式,这里有两部分内容,中间用空格隔开,前半部分:Zone的主 DNS 服务器的主机名,后半部分:管理Zone的负责人的电子邮件地址。在该电子邮件名称中使用英文句点 (.) 代替“at”符号 (@)。
$TTL  指令:该zone的缓存时间
serial:数值Serial代表这个Zone的序列号,序号越大表明资料越新,主要用在 master / slave 同步使用,每次Zone文件更新,都需要修改Serial数值。RFC1912 2.2建议的格式为YYYYMMDDnn 其中nn为修订号,,但序号的最大值不能大于2的32次方,即4294967296
refresh:数值Refresh设置Slave DNS多长时间与Master Server进行Serial核对。目前Bind的notify参数可设置每次Master DNS更新都会主动通知Slave DNS更新,Refresh参数主要用于notify参数关闭时;
retry:数值Retry设置当Slave DNS试图获取Master DNS Serial时,如果Master DNS未响应,多长时间重新进行检查;
expire:如果master/slave在1周内都链接失败,slave将不再尝试链接master,但注意,此时slave还会继续提供解析服务,只是数据不在更新。
Minimum:在 8.2版本之前,由于没有独立的 $TTL 指令,所以通过 SOA 最后一个字段来实现。但由于 BIND 8.2 后出现了 $TTL  指令,该部分功能就不再由 SOA 的最后一个字段来负责,由 $TTL 全权负责,SOA 的最后一个字段专门负责 negative answer ttl(negative caching)

名字解释:

经常提到RR是什么意思呢?RR是Resource Record的缩写,包括A, NS, SOA, CNAME, MX.

注:

1,TTL可以从全局继承,不用每个记录都定义具体的TTL

2,@符号可以表示当前区域的名称,所以真需要写@的时候由.来代替。如最后一行“www   IN  A  192.168.56.6” 代表www.repo.com是解析到192.168.56.6这个地址的

3,  相邻的两个记录,如果NAME相同那么后面一条的NAME可以省略,如:

www                  IN A 192.168.56.6
                     IN A 192.168.56.7  #没写name
bbs                  IN A 192.168.56.100

4, 对于正向区域来说,如果MX、NS等类型的记录VALUE为一个FQDN,那么此FQDN应该有一个A记录,例如上面的NS记录:

 

posted on 2021-01-12 10:34  EZgod  阅读(2461)  评论(0编辑  收藏  举报