bind9的基本配置详解(二)
一、bind唯一额主配置文件(named.conf)
named.conf是BIND的唯一的主配置文件,也是named进程默认加载的文件。
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语言风格
/**/ C语言风格
# shell风格
二、Zone文件和资源记录Resource Record (RR)
zone关键字后面接的是域和类:
zone "longshuai.com" IN{ type master; file "db.longshuai.com" };
file定义该域的区域数据文件Resource Record (RR)
在ubuntu里面即类似db开头的文件: db.xxx.com
区域文件的格式:
[name] [ttl] [class] type data (中括号里的内容可有可无)
如:
$TTL 604800 @ IN SOA localhost. root.localhost. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS localhost. @ IN A 127.0.0.1 @ IN AAAA ::1
各个字段之间由空格或制表符分割,字段可以包含下面特殊字符:
;注释
@表示当前域
()允许数据夸行,通常用于 SOA 记录
*仅用于 name 字符的通配符
name :字段说明资源记录引用的对象名,可以是一台单独的主机也可以是个域名。
- 对象名可以是相对域名或全域名,全域名应该以“.”结束
- 若几条连续的 RR 记录涉及同一个对象名,则第一条 RR 记录后的 RR 记录可以 省略对象名
- 若出现字段名字段,则必须出现在第一个字段
ttl:它以秒为单位定义该资源记录中的信息存放在高速缓存中的时间长度。通常省略该 字段,而使用位于文件开始处的 $TTL 语句所指定值。
class:字段用于指定网络类型,可选的值有:IN、CH 和 HS,其中 IN (Internet)是广泛使用的一种。虽然 IN 是该字段的默认值,但通常我们会显示 地指出。
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
文件内必须有规范名字的 A RR
PTR 提供了ip到主机的映射
PTR 提供了 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 用于邮件系统实现邮件路由。其格式为:
zone [ttl] IN MX preference host
其中 preference 是优先级字段,数值越小优先级越高。
例如:
jamond.net. IN MX 5 ubuntu.jamond.net. jamond.net. IN MX 10 ubuntu.jamond.net.
CNAME:用于设置主机的别名。 其格式为:
nikename [ttl] IN CNAME hostname
例如:
ubuntu IN A 192.168.0.251 www IN CNAME ubuntu ftp IN CNAME ubuntu
三、为其他机器提供dns服务
默认bind9安装后都只监听127.0.0.1网络,即只为本机提供DNS服务,如果需要为局 域网其他机器提供DNS服务,可以修改 option中的,listen-on 语句:
options { listen-on port 53 { 127.0.0.1;172.16.70.30; }; ... };
可以把 listen-on 注释掉,或者加上本机的外网 IP 。