分类: LINUX
2009-05-17 13:23:49
内容提要
下面列出主配置文件 /etc/named.conf 由若干以分号结束的配置语句组成,配置语法如下:
[" "] [ ] {
;
;
;
};[" "] [ ] {
;
;
;
};[" "] [ ] {
;
;
;
};
named.conf 中使用的常用配置语句
acl | 定义访问控制列表,参考 一节的 ACL 部分 |
controls | 定义 rndc 命令使用的控制通道,若省略此句,则只允许经过 rndc.key 认证的 127.0.0.1 的 rndc 控制,参考 一节的 rndc 部分 |
include | 将其他文件包含到本配置文件当中 |
key | 定义用于 TSIG 的授权密钥 |
logging | 定义日志的记录规范,参考 一节的 “BIND 日志部分” |
options | 定义全局配置选项 |
trusted-keys | 为服务器定义 DNSSEC 加密密钥 |
server | 设置每个服务器的特有的选项 |
view | 定义域名空间的一个视图,参考 的 “View 语句部分” |
zone | 定义一个区声明 |
此文件可以使用三种风格的注释:
下面对常用的语句作进一步的说明。
include 语句的功能为:将指定的文件引入 named.conf 主配置文件。语法为:
include "path";
options 用于定义全局配置选项,语法为:
options {
配置子句;
配置子句;
};
下面列出一些常用的全局配置子句。
子句 | 说明 |
---|---|
directory “path” | 定义服务器区数据库文件的工作目录,配置文件中所有使用的相对路径,指的都是在这里配置的目录下。CentOS 默认为 /var/named |
notify yes/no | 若 named 是主服务器,当区数据库变化时将自动通知相应区的从服务器,默认为 yes。NOTIFY 协议在 RFC 1996中制定 |
transfer-format one-answer/many-anser | 设置从主服务器向从服务器复制数据的方式,使用在主域名服务器上,是否允许在一条消息中放入多条应答信息,默认值为 many-answer |
allow-query {IPaddrs/Networks/AclNames} | 指定哪些主机可以查询本服务器,默认允许所有主机的查询 |
blackhole {IPaddrs/Networks/AclNames} | 指定哪些主机不能查询本服务器 |
forwarders {IPaddrs} | 设置全局转发器,列出要用作转发器的服务器 IP 地址 |
forward only/first | 若值为 only,则服务器缓存数据并查询转发器,但从不查询其他的任何服务器,若转发器不能响应查询则查询失败;若值为 first,则在转发查询失败或没有查到结果时,会在本地发起正常查询。默认为 first |
listen-on {IPaddr} | 指定 named 监听的网络接口,默认监听所有网络接口 |
recursion yes/no | 是否使用递归式 DNS 服务器,默认为 yes |
max-cache-size size | 用于指定内存缓存大小的最大值,默认没有限制 |
recursive-clients number | 指定同时执行递归查询的最大值,默认为1000 |
zone 区声明是配置文件中最重要的部分。Zone 语句的格式为:
zone “zone-name” IN {
type 子句;
file 子句;
其他子句;
};
下面列出一些常用的 zone 配置子句。
子句 | 说明 |
---|---|
type master/slave/hint/forward | 说明一个区的类型。master:说明一个区为主域名服务器;slave说明一个区为辅助域名服务器;hint:说明一个区为根服务器的线索;forward:说明一个区为转发区 |
file “filename” | 说明一个区的域信息源数据库信息文件名 |
allow-query {IPaddrs/Networks/AclNames} | 指定哪些主机可以查询本 Zone,默认允许所有主机的查询 |
allow-transfer {IPaddrs} | 指定允许传输此区数据的从服务器,默认允许所有的传输请求 |
transfer-source {IPaddrs} | 当从服务器有多个 IP 地址时,指定由那个地址负责从主服务器传输数据 |
masters {IPaddrs} | 在从服务器的区声明中指定主服务器的 IP 地址 |
notify yes/no | 当主服务器区数据库变化时将自动通知相应区的从服务器,默认为 yes |
forwarders {IPaddrs} | 设置指定区的转发器,列出要用作转发器的服务器 IP 地址 |
forward only/first | 若值为 only,则服务器缓存数据并查询转发器,但从不查询其他的任何服务器,若转发器不能响应查询则查询失败;若值为 first,则在转发查询失败或没有查到结果时,会在本地发起正常查询。默认为 first |
一个域的
标准资源记录的基本格式是:
[name] [ttl] [class] type data
各个字段之间由空格或制表符分隔,字段可以包含如下的特殊字符:
name 字段说明资源记录引用的对象名,可以是一台单独的主机也可以是个域名。
举例来说,在 cnetos.org.cn 域中,相对域名 osmond 与全域名 osmond.cnetos.org.cn. 等效;而 osmond.cnetos.org.cn 由于没有以“.”结尾,被认为是一个相对域名,与其等效的全域名为 osmond.cnetos.org.cn.cnetos.org.cn.。因此在书写对象名时要特别小心。
ttl(time to live) 字段是一个寿命字段。它以秒为单位定义该资源记录中的信息存放在高速缓存中的时间长度。通常省略该字段,而使用位于文件开始处的 $TTL 语句所指定值。
class 字段用于指定网络类型,可选的值有:IN、CH 和 HS,其中 IN (Internet)是广泛使用的一种。虽然 IN 是该字段的默认值,但通常我们会显示地指出。
type 字段用于说明 RR 的类型。常用的 RR 类型如下:
类型 | 说明 | |
---|---|---|
区记录 | SOA (Start Of Authority) | SOA 记录标示一个授权区定义的开始。SOA 记录后的所有信息是控制这个区的 |
NS (Name Server) | 标识区的域名服务器以及授权子域 | |
基本记录 | A (Address) | 用于将主机名转换为 IP 地址,任何一个主机都只能有一个 A记录 |
PTR (PoinTeR) | 将地址转换为主机名 | |
MX (Mail eXchanger) | 邮件交换记录。控制邮件的路由 | |
安全记录 | KEY (Public Key) | 储存一个关于DNS 名称的公钥 |
NXT (Next) | 与 DNSSEC 一起使用,用于指出一个特定名称不在域中 | |
SIG (Signatrue) | 指出带签名和身份认证的区信息,细节见 RFC 2535 | |
可选记录 | CNAME (Canonical NAME) | 给定主机的别名,主机的规范名在A记录中给出 |
SRV (Services) | 指出知名网络服务的信息 | |
TXT (Text) | 注释或非关键的信息 |
data 字段的内容取决于 RR 的类型字段。
SOA RR 用于标示一个区的开始,其格式如下:
zone IN SOA Hostname Contact (
SerialNumber
Refresh
Retry
Expire
Minimum )
SOA 记录的数据说明
字段 | 说明 |
---|---|
Hostname | 存放本 Zone 的域名服务器的主机名 |
Contact | 管理域的管理员的邮件地址 |
SerialNumber | 本区配置数据的序列号,用于从服务器判断何时获取最新的区数据 |
Refresh | 辅助域名服务器多长时间更新数据库 |
Retry | 若辅助域名服务器更新数据失败,多长时间再试 |
Expire | 若辅助域名服务器无法从主服务器上更新数据,原有的数据何时失效 |
Minimum | 设置被缓存的否定回答的存活时间 |
例如:
astro.net. IN SOA centos.astro.net. root.centos.astro.net. (
2006063000 ;序列号
3H ;3小时后刷新
15M ;15分钟后重试
1W ;1星期后过期
1D ) ;否定缓存TTL为1天
NS RR 用于标识一个区的权威服务器(包括主服务器和从服务器),并将子域授权赋予其他服务器,其格式如下:
zone [ttl] IN NS hostname
例如:
astro.net. IN NS centos.astro.net. ;指定 astro.net. 的主服务器
astro.net. IN NS rhel.astro.net. ;指定 astro.net. 的从服务器
taurus.astro.net. IN NS ubuntu.taurus.astro.net. ;指定委派域 taurus.astro.net. 的主服务器
taurus.astro.net. IN NS dapper.taurus.astro.net. ;指定委派域 taurus.astro.net. 的从服务器
若上面的记录紧跟在 SOA 记录后,也可以写成如下的形式:
IN NS centos.astro.net. ;指定 astro.net. 的主服务器
IN NS rhel.astro.net. ;指定 astro.net. 的从服务器
taurus IN NS ubuntu.taurus.astro.net. ;指定委派域 taurus.astro.net. 的主服务器
taurus IN NS dapper.taurus.astro.net. ;指定委派域 taurus.astro.net. 的从服务器
A RR 是
PTR RR 提供了 IP 地址到主机名的映射。其格式为:
IPAddress [ttl] IN PTR hostname
例如:在 168.192.in-addr.arpa. 区中,前面的 centos.astro.net. 和 rhel.astro.net. 所对应的 PTR 记录为
251.0 IN PTR centos.astro.net.
252.0 IN PTR rhel.astro.net.
而在 0.168.192.in-addr.arpa. 区中,前面的 centos.astro.net. 和 rhel.astro.net. 所对应的 PTR 记录为
251 IN PTR centos.astro.net.
252 IN PTR rhel.astro.net.
在 1.168.192.in-addr.arpa. 区中,前面的 ubuntu.taurus.astro.net. 和 dapper.taurus.astro.net. 所对应的 PTR 记录为
251 IN PTR ubuntu.taurus.astro.net.
252 IN PTR dapper.taurus.astro.net.
MX RR 用于邮件系统实现邮件路由。有关电子邮件的更多介绍请参见 。 其格式为:
zone [ttl] IN MX preference host
其中 preference 是优先级字段,数值越小优先级越高。
例如:
astro.net. IN MX 5 centos.astro.net.
astro.net. IN MX 10 rhel.astro.net.
CNAME RR 用于设置主机的别名。 其格式为:
nikename [ttl] IN CNAME hostname
例如:
centos IN A 192.168.0.251
www IN CNAME centos
ftp IN CNAME centos
在区文件中还可以使用分析器指令,分析器指令可以为 RR 的输入提供方便。