配置文件说明
类别:
主配置文件 named.conf 将所有区域数据文件绑定在一起
区域数据文件:
正向解析配置文件
方向解析配置文件
这里会引用挺多书上的术语,不明白的话可以回去参考DNS的概念
区域数据文件
区域数据文件中的大部分条目被称为DNS资源记录(DNS resource record)。DNS查询是不区分大小写的,因此在区域文件中可以使用大写,小写或者大小写混合来输入名称。
资源记录必须从第一行第一列开始。在DNS的RFC中,资源记录都是按照某种特定的顺序排列的。但这不是硬性的要求。一般来说区域数据文件中资源记录的顺序如下:
SOA记录
指明该区域的权威
NS记录
列出该区域的名称服务器
Other记录
有关该区域主中主机的数据
A
名称到地址的映射
PTR
地址到名称的映射
CNAME
规范名称(将别名映射到规范名称)
在这里,假设我们有一个域名 waiting4.com 映射到内网的 172.16.50.16
则存在两份配置文件分别是:
正向解析配置文件 waiting4.com.zone
反向解析配置文件 16.50.16.172.in-addr.arpa
TTL
在BIND 8.2之前,TTL是SOA记录中最后一个字段,但是在RFC 2308 将SOA的最后一个字段的意义修改为否定缓存TTL。 否定缓存TTL时指的远程名称服务器将区域的否定响应缓存多长时间。 否定响应是指的在所查询的特定域名活特定域名的数据类型不存在时做出的应答。
8.2之后,使用 $TTL 控制语句。 $TTL 语句可以用来指明在之后未声明的所有TTL的记录生存时间。
名称服务器会在查询响应中提供这个TTL,以便其他的服务器能够根据TTL所指定的时间来缓存数据。如果数据变动不频繁,可以考虑将TTL设置为比较长的时间。
在新版的BIND中第一行可以看到
SOA记录
在TTL末尾可以看到 TTL的下一行就是SOA记录。
SOA(start of authority,起始授权机构)资源记录。
SOA记录被用来指出哪个名称服务器是此区域数据的最佳信息来源。由于有该SOA记录,我们的名称服务器就能成为某个域名的权威名称服务器,
以下面一个正向解析文件为例:
第一个 @ 【同时 @可用于引用当前区域的名字】
名称,也就是你的域。比如这里我的域名为waiting4.com 那么这一份配置文件应该为如下内容
@ IN SOA ns1.waiting4 rname.invalid.(
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H) ;minimun
第二个@(跟在SOA后的)是 waiting4.com 的 primary 名称服务器的名称。rname.invalid. 是区域负责人的邮件地址。作为一个普通的名称服务器可以不使用这些地址,这是给负责人使用的,如果负责人对某块区域有疑问则会通过这个邮箱地址发邮件给管理员。
随后()括号内的内容大多数是给 slave 名称服务器使用的。这里在介绍slave服务器的时候详细介绍。
如果是一个反向解析区域数据文件的话:
第一个名称 waiting4.com 需要修改为 16.50.16.172.in-addr-arpa.
NS记录
每个区域数据文件中都需要增加一条NS(nameserver)资源记录。需要为区域的每个权威名称服务器都添加一条NS记录。
可以看到我这里的记录是用@来引用当前区域
如果需要手写的话
waiting4.com IN NS ns1.waiting4.com
waiting4.com IN NS ns2.waiting4.com
这个记录指明了 waiting4.com 区域有两个名称服务器。 分别运行在 ns1.waiting4.com 与 ns2.waiting4.com 两台主机上。
类似于SOA记录,NS记录也需写入正解与反解文件中。
A记录与CNAME记录
首先看一下我的
A记录代表 address,每条资源记录将一个名称映射成一个地址。
再看一下书上说的
wormhole.movie.edu 是一个多宿主机,他拥有两个与名称相互对应的地址,因此就有两条地址记录。与主机表查询不同的是,对于一个名称,DNS查询可以返回多个地址;如果查询者和名称服务器位于同一个网络,某些名称服务器会将离查询者最近的地址放在应答的最前面,以获得最好的性能。这个特性被称作地址排序(address sorting).
如果没有采用地址排序,那么这些地址就会在每次查询后被轮转(rotate),因此会导致后来的响应以不同的顺序列出这些地址。这种特性被称作轮询调度(round robin).
随后是CNAME(CANONICAL NAME),别名记录。
CNAME 资源记录是将别名映射到规范名称。
名称服务器处理 CNAME 记录的方式和主机表中处理别没的方式不同。当名称服务器查找一个名称却发现了一个CNAME记录时,它会使用规范名称代理原先的别名,然后查找这个新的名称。
例如:当服务器查找 wh.movie.edu 的时候,发现了指向 wormhole.movie.edu 的CNAME记录,他会接着找 wormhole.movie.edu,并且返回两个地址。
另外
PTR记录
PTR 记录是地址到名称的映射。应该出现在16.50.16.172.in-addr.arpa
比如我的
注意 需要指向规范名称 而不是 CNAME
16.50.16.172.in-addr.arpa IN PTR waiting4.com
书上的区域数据文件
环回地址
ROOT提示(Hint)数据
这里我就直接使用书上原文了,是root根服务器的地址!