免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1633 | 回复: 0
打印 上一主题 下一主题

BIND 9 配置语法简介 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-17 13:23 |只看该作者 |倒序浏览
BIND 9 配置语法
内容提要
掌握 BIND 的主配置文件的语法
掌握 BIND 的区数据库配置文件的语法
熟悉各种配置子句的使用
bind 的 主配置文件
下面列出主配置文件 /etc/named.conf 由若干以分号结束的配置语句组成,配置语法如下:
[""] [] {
     ;
     ;
     ;
};
[""] [] {
     ;
     ;
     ;
};
[""] [] {
     ;
     ;
     ;
};
named.conf 中使用的常用配置语句
acl
定义访问控制列表,参考
BIND 9 控制
一节的 ACL 部分
controls
定义 rndc 命令使用的控制通道,若省略此句,则只允许经过 rndc.key 认证的 127.0.0.1 的 rndc
控制,参考
BIND 9 控制
一节的 rndc 部分
include
将其他文件包含到本配置文件当中
key
定义用于 TSIG 的授权密钥
logging
定义日志的记录规范,参考
BIND 9 控制
一节的 “BIND 日志部分”
options
定义全局配置选项
trusted-keys
为服务器定义 DNSSEC 加密密钥
server
设置每个服务器的特有的选项
view
定义域名空间的一个视图,参考 BIND 9
的高级配置 的 “View 语句部分”
zone
定义一个区声明
此文件可以使用三种风格的注释:

    /* C 语言风格的注释 */
    // C++ 语言风格的注释
    # Shell 语言风格的注释

下面对常用的语句作进一步的说明。
include
include 语句的功能为:将指定的文件引入 named.conf 主配置文件。语法为:
include "path";

    建议使用绝对路径
    若使用相对路径,则相对于 directory 选项指定的目录

options
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  “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
DNS 区数据库
一个域的 DNS
区数据库是由这个域的主域名服务器的管理员所维护的文本文件的集合。这些文件经常被称为区文件,区文件定义了一个区的域名信息。CentOS 默认将区文件存放在
/var/named 目录下。
每个区文件都是由若干个资源记录(RR,resource records)和分析器指令所组成。
资源记录简介
标准资源记录的基本格式是:
[name]        [ttl]        [class]        type        data
各个字段之间由空格或制表符分隔,字段可以包含如下的特殊字符:

    ; — 引出注释
    @ — 表示当前域
    () — 允许数据跨行,通常用于 SOA 记录
    * — 仅用于 name 字段的通配符

name 字段
name 字段说明资源记录引用的对象名,可以是一台单独的主机也可以是个域名。

    对象名可以是相对域名或全域名,全域名应该以“.”结束
    若出现 name 字段,则必须出现在第一个字段
    若几条连续的 RR 记录涉及同一个对象名,则第一条 RR 记录后的 RR 记录可以省略对象名

关于相对域名和全域名:
举例来说,在 cnetos.org.cn 域中,相对域名 osmond 与全域名
osmond.cnetos.org.cn. 等效;而 osmond.cnetos.org.cn
由于没有以“.”结尾,被认为是一个相对域名,与其等效的全域名为
osmond.cnetos.org.cn.cnetos.org.cn.。因此在书写对象名时要特别小心。
ttl 字段
ttl(time to live)
字段是一个寿命字段。它以秒为单位定义该资源记录中的信息存放在高速缓存中的时间长度。通常省略该字段,而使用位于文件开始处的 $TTL 语句所指定值。
class 字段
class 字段用于指定网络类型,可选的值有:IN、CH 和 HS,其中 IN (Internet)是广泛使用的一种。虽然 IN
是该字段的默认值,但通常我们会显示地指出。
type 字段
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)
注释或非关键的信息
关于RR 的书写顺序

    SOA RR 应该放在最前面
    通常 NS RR 紧跟在 SOA RR 之后
    其他记录的顺序无关紧要

data 字段
data 字段的内容取决于 RR 的类型字段。
常用的资源记录
SOA 资源记录
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天

    对 Contact 来说,因为“@”在文件中有特殊含义,所以邮件地址 root@centos.astro.net 写为
    root.centos.astro.net.
    对 SerialNumber 来说,它可以是 32 位的任何整数,每当更新区文件时都应该增加此序列号的值,否则 named
    将不会把区的更新数据传送到从服务器
    缓存时间字段 Refresh、Retry、Expire、Minimum 可以使用时间单位字符 m、h、d、w
    分别表示分钟、小时、天、星期。
    各个缓存时间字段的经验值为

      Refresh — 1 到 6 小时
      Retry — 20 到 60 分钟
      Expire — 1 周 到 1 月
      Minimum — 1 到 3 小时

    Minimum 设置被缓存的否定回答的存活时间,而肯定回答(即真实记录)的默认值是在区文件开始处用 $TTL
    语句设置的。

NS 资源记录
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 资源记录
A RR 是 DNS 数据库的核心,它提供了主机名到 IP
地址的映射。其格式为:
hostname       [ttl]      IN    A      IPAddress
对于 astro.net 区来说, 例如:
centos          IN    A      192.168.0.251
rhel            IN    A      192.168.0.252
ubuntu.taurus   IN    A      192.168.1.251
dapper.taurus   IN    A      192.168.1.252
也可以写成如下的形式
centos.astro.net.          IN    A      192.168.0.251
rhel.astro.net.            IN    A      192.168.0.252
ubuntu.taurus.astro.net.   IN    A      192.168.1.251
dapper.taurus.astro.net.   IN    A      192.168.1.252
对于有多个网络接口的计算机来说,可以使用多条 A RR 分别设置每个网络接口上的主机名与 IP
地址的映射。当然多个 IP 地址也可以关联同一个主机名。类似地,也可以使用多条 PTR RR 分别设置每个网络接口上的 IP 地址与主机名的映射。
PTR 资源记录
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.

    在 PTR RR 中 hostname 应该使用全域名。例如 taurus.astro.net 域的主机 ubuntu 应该写为
    ubuntu.taurus.astro.net. 。而 ubuntu.taurus.astro.net 将被解析为
    ubuntu.taurus.astro.net.1.168.192.in-addr.arpa. 。
    PTR RR
    所提供的反向解析能够为任何对进入网络的请求进行认证的程序所使用,这些程序包括:sshd、tcpd、sendmail、syslogd
    等。

MX 资源记录
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 资源记录
CNAME RR 用于设置主机的别名。 其格式为:
nikename    [ttl]   IN  CNAME   hostname
例如:
centos          IN    A      192.168.0.251
www             IN    CNAME  centos
ftp             IN    CNAME  centos
文件内必须有规范名字的 A RR。
分析器指令
在区文件中还可以使用分析器指令,分析器指令可以为 RR 的输入提供方便。

    $ORIGIN — 设置默认域(或初始域)
    $TTL — 为没有定义精确的生存期的 RR 定义缺省的 TTL 值

关于资源记录的生存周期
资源记录的生存周期是指资源记录被缓存的最长时间,过期将被缓存丢弃。
在区文件中,有三种方法指定资源记录的生存周期

    在 SOA 记录的最后一个字段中指定否定应答期限
    使用 $TTL 为没有定义精确的生存期的 RR 定义缺省的 TTL 值
    在每条资源记录中可选的 TTL 字段中指定

所有的生存周期默认以秒为单位,也可以指定,如:1h30m

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/2222/showart_1931698.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP