Ubuntu Linux DNS服务器 BIND9配置文件命令介绍

BIND9配置方法

转载▼

   

配置语法

named.conf

acl 定义访问控制列表
controls 定义rndc命令使用的控制通道,若省略,则只允许经过rndc.key认证的127.0.0.1的rndc控制
include 包含其他文件到配置文件
key 定义用于TSIG的授权密钥
logging 日志记录
lwres 将named同时配置成一个轻量级的解析器
options 定义全局选项
trusted-keys 为服务器定义 DNSSEC 加密密钥
server 设置每个服务器的特有选项
view 定义域名空间的一个视图
zone 定义一个区声明

注释

可以使用三种注释风格:

// C++ 风格
# shell 风格

include

建议使用绝对路径,如果使用相对路径,则是指相对 directory 选项指定的路径。 下面是我的debian系统named.conf文件中的一个include使用示例:

root@jianlee:~/lab/koji/koji# tail -1 /etc/bind/named.conf
include "/etc/bind/named.conf.local";

options

fedora10上bind的文件一个示例:

[root@dev3-57 demoCA]# sed -n -e '10,19p' /etc/named.conf
options {
        listen-on port 53 { 127.0.0.1; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { localhost; };
        recursion yes;
};

options 中一般选项的含义:

directory "路径"

定义服务器区数据库文件的工作目录,配置文件中使用的所 有相对路径都是一个这个目录为基目录。

notify yes/no

如 named 是主服务器,当区数据库变化时将自动通知相应区的 从服务器,默认为yes。

recursion yes/no

是否使用递归式 DNS 服务器,默认为yes。

transfer-format one-answer/many-anser

设置从主服务器向从服务器复制数 据的方式,使用在主域名服务器上,是否允许在一条消息中放入多条应答信息, 默认值为 many-answer

forwarders {IPaddrs}

设置全局转发器,列出要用作转发器的服务器 IP 地址

forward only/first

若值为 only,则服务器缓存数据并查询转发器,但从不 查询其他的任何服务器,若转发器不能响应查询则查询失败;若值为 first,则 在转发查询失败或没有查到结果时,会在本地发起正常查询。默认为 first

zone

root@jianlee:~/lab/koji/koji# sed -n -e '20,23p' /etc/bind/named.conf
zone "localhost" {
        type master;
        file "/etc/bind/db.local";
};

type master/slave/hint/forward

说明一个区的类型。master指示此区为主域 名服务器;slave指示此区为辅助域名服务器;hint指示此区为根服务器的线 索;forward指示此区为转发区。

file "文件名"

指出此区的域信息数据库文件名

DNS 数据库

一个域的 DNS 数据库是由这个域的主域名服务器的管理员所维护的文本文件的集 合。这些文件经常被称为区文件,区文件定义了一个区的域名信息。每个区文件都 是由若干个资源记录(RR,resource records)和分析器指令所组成。

资源记录

标志资源记录格式 :

[name]  [ttl]  [class]  type  data

各个字段之间由空格或制表符分割,字段可以包含下面特殊字符:

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

name

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

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

关于相对域名和全域名:

举例来说,在 ubuntu.org.cn 域中,相对域名 osmond 与全域名 osmond.ubuntu.org.cn. 等效;而 osmond.ubuntu.org.cn 由于没有以“.”结 尾,被认为是一个相对域名,与其等效的全域名为 osmond.ubuntu.org.cn.ubuntu.org.cn.。因此在书写对象名时要特别小心。

ttl (time to live)

它以秒为单位定义该资源记录中的信息存放在高速缓存中的时间长度。通常省略该 字段,而使用位于文件开始处的 $TTL 语句所指定值。

class

class 字段用于指定网络类型,可选的值有:IN、CH 和 HS,其中 IN (Internet)是广泛使用的一种。虽然 IN 是该字段的默认值,但通常我们会显示 地指出。

type

type 字段用于说明 RR 的类型。常用的 RR 类型如下:

1 区记录

SOA (Start Of Authority) SOA 记录标示一个授权区定义的开始。SOA 记录后的所有信息是控制这个区的
NS (Name Server) 标识区的域名服务器以及授权子域

2 基本记录

A (Address) 用于将主机名转换为 IP 地址,任何一个主机都只能有一个 A记录
PTR (PoinTeR) 将地址转换为主机名
MX (Mail eXchanger) 邮件交换记录。控制邮件的路由

3 安全记录

KEY (Public Key) 储存一个关于DNS 名称的公钥
NXT (Next) 与 DNSSEC 一起使用,用于指出一个特定名称不在域中
SIG (Signatrue) 指出带签名和身份认证的区信息,细节见 RFC 2535

4 可选记录

CNAME (Canonical NAME) 给定主机的别名,主机的规范名在A记录中给出
SRV (Services) 指出知名网络服务的信息
TXT (Text) 注释或非关键的信息

RR的顺序:

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

data

取决于RR的类型

常用的资源记录

SOA 开始一个区

基本格式:

zone      IN      SOA   Hostname  Contact (
                        SerialNumber
                        Refresh
                        Retry
                        Expire
                        Minimum )

Hostname

存放本 Zone 的域名服务器的主机名

Contact

管理域的管理员的邮件地址

SerialNumber

本区配置数据的序列号,用于从服务器判断何时获取最新的区数据

Refresh

辅助域名服务器多长时间更新数据库

Retry

若辅助域名服务器更新数据失败,多长时间再试

Expire

若辅助域名服务器无法从主服务器上更新数据,原有的数据何时失效

Minimum

设置被缓存的否定回答的存活时间

jamond.net.   IN  SOA  ubuntu.jamond.net.  root.ubuntu.jamond.net. (
                        2006063000       ;序列号
                        3H               ;3小时后刷新
                        15M              ;15分钟后重试
                        1W               ;1星期后过期
                        1D )             ;否定缓存TTL为1天
  • 对 Contact 来说,因为“@”在文件中有特殊含义,所以邮件地址 root@ubuntu.jamond.net 写为 root.ubuntu.jamond.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 标识一个区的权威服务器

包括主服务器和从服务器,并将子域授权赋予其他服务器,格式:

zone  [ttl]  IN  NS  hostname

示例:

jamond.net.  IN  NS  ubuntu.jamond.net.  ;指定 jamond.net. 的主服务器
jamond.net.  IN  NS  dapper.jamond.net.  ;指定 jamond.net. 的从服务器
osmond.jamond.net. IN  NS  ubuntu.osmond.jamond.net. ;指定委派域 osmond.jamond.net. 的主服务器
osmond.jamond.net. IN  NS  dapper.osmond.jamond.net. ;指定委派域 osmond.jamond.net. 的从服务器

若上面的记录紧跟在 SOA 记录后,也可以写成如下的形式:

          IN  NS  ubuntu.jamond.net.  ;指定 jamond.net. 的主服务器
          IN  NS  dapper.jamond.net.  ;指定 jamond.net. 的从服务器
osmond    IN  NS  ubuntu.osmond.jamond.net. ;指定委派域 osmond.jamond.net. 的主服务器
osmond    IN  NS  dapper.osmond.jamond.net. ;指定委派域 osmond.jamond.net. 的从服务器

A — DNS数据库的核心

提供主机名到IP地址的映射,格式为:

hostname [ttl] IN A  IPAddress

举例:

ubuntu          IN    A      192.168.0.251
dapper          IN    A      192.168.0.252
ubuntu.osmond   IN    A      192.168.1.251
dapper.osmond   IN    A      192.168.1.252

PTR

PTR RR 提供了 IP 地址到主机名的映射。其格式为:

IPAddress  [ttl]  IN  PTR  hostname

例如: 在 168.192.in-addr.arpa 区中,前面的 ubuntu.jamond.net. 和 dapper.jamond.net. 所对应的 PTR 记录为

251.0          IN    PTR      ubuntu.jamond.net.
252.0          IN    PTR      dapper.jamond.net.

而在 0.168.192.in-addr.arpa 区中,前面的 ubuntu.jamond.net. 和 dapper.jamond.net. 所对应的 PTR 记录为

251          IN    PTR      ubuntu.jamond.net.
252          IN    PTR      dapper.jamond.net.

在 1.168.192.in-addr.arpa 区中,前面的 ubuntu.osmond.jamond.net. 和 dapper.osmond.jamond.net. 所对应的 PTR 记录为

251          IN    PTR      ubuntu.osmond.jamond.net.
252          IN    PTR      dapper.osmond.jamond.net.

在 PTR RR 中 hostname 应该使用全域名。例如 osmond.jamond.net 域的主机 ubuntu 应该写为 ubuntu.osmond.jamond.net. 。而 ubuntu.osmond.jamond.net 将被解析为 ubuntu.osmond.jamond.net.1.168.192.in-addr.arpa. 。

PTR RR 所提供的反向解析能够为任何对进入网络的请求进行认证的程序所使用,这 些程序包括:sshd、tcpd、sendmail、syslogd 等。

MX

MX RR 用于邮件系统实现邮件路由。有关电子邮件的更多介绍请参见 FIXME 。 其 格式为:

zone   [ttl]  IN   MX  preference   host

其中 preference 是优先级字段,数值越小优先级越高。

例如:

jamond.net.          IN    MX     5    ubuntu.jamond.net.
jamond.net.          IN    MX     10    ubuntu.jamond.net.

CNAME

CNAME RR 用于设置主机的别名。 其格式为:

nikename    [ttl]   IN  CNAME   hostname

例如:

ubuntu          IN    A      192.168.0.251
www             IN    CNAME  ubuntu
ftp             IN    CNAME  ubuntu

文件内必须有规范名字的 A RR。

分析器指令

在区文件中还可以使用分析器指令,分析器指令可以为 RR 的输入提供方便。

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

实例

为其他机器提供DNS服务

默认bind9安装后都只监听127.0.0.1网络,即只为本机提供DNS服务,如果需要为局 域网其他机器提供DNS服务,可以修改 listen-on 语句:

options {
        listen-on port 53 { 127.0.0.1;172.16.70.30; };
        ...
};

可以把 listen-on 注释掉,或者加上本机的外网 IP 。bind9在各个linux发行版安 装的路径不一样。

debian5.0    /etc/bind/named.conf /etc/bind/named.conf.options
fedora10     /etc/named.conf

其中fedora默认安装后,bind9只对本机提供DNS服务。debian5默认安装后可以为其 他机器提供DNS服务。debian5的bind9全局选项单独放在 /etc/bind/named.conf.options 文件中。

posted @ 2018-12-11 18:06  神龙云计算  阅读(578)  评论(0编辑  收藏  举报