Zone 文件保存一个命名空间(example.com
)的信息。
- 存放位置(工作目录):由
directory
定义,默认是:/etc/named
- 文件名:由
file
定义,习惯是:example.com.zone
- 模板文件:
/usr/share/doc/bind-9.9.4/sample/var/named/named.localhost
工作目录:/etc/named
-
/etc/named/
主名称服务器存放 Zone 文件的目录 -
/etc/named/salve/
次名称服务器保存 Zone 文件的目录 -
/etc/named/data/
日志文件
权限(640)及拥有者
~ sudo ls -l /var/named/example.com.zone
-rw-r-----. 1 root named 273 May 6 02:50 /var/named/example.com.zone
文件格式
Zone 文件由指令和资源记录组成,每条各占一行。
指令
INCLUDE
# 包含其他文件
$INCLUDE /var/named/penguin.example.com
ORIGIN
; 不是 FQDN 的主机名都将自动加上 $ORIGIN 的值
; 不以 . 为结尾的都是非 FQDN
$ORIGIN example.com.
没有定义 $ORIGIN
时,它会从 /etc/named.conf
中获取
TTL
增加 TTL 值
- 减少客户端查询次数
- 增长修改资源记录后的生效时间
; 默认 TTL: 1 Day
; 递归名称服务器缓存结果到内存的有效时间
; 每行资源记录都可以覆盖该值
$TTL
常见资源记录
SOA
SOA
: Start of Authority
- 向名称服务器宣告重要的权威信息;
- 第一行资源记录
Zone 文件中的数字默认是以秒为单位,但也可以自己指定时间单位
NS
NS
: Nameserver record
; 声明权威服务器
; dns1.example.com. 必须是 FQDN
@ IN NS dns1.example.com.
IN NS dns2.example.com.
dns1 IN A 10.0.1.3
dns2 IN A 10.0.1.4
A
A
: Address record
; server1 的 ip地址为 10.0.1.3 或 10.0.1.5
; 主机名表示 FQDN 的都将自动加上 $ORIGIN 的值:server1.example.com.
; 如果资源记录的主机名为空,则认为是最后指定的那个主机名
server1 IN A 10.0.1.3
IN A 10.0.1.5
CNAME
CNAME
: Canonical Name record,将主机名指向另一个主机名
- 一般用于将一个主机名(A记录)指向另一个众所周知的别名(www, ftp)
限制:
- 不应该指向其他 CNAME,避免死循环
- 不能包含其他类型的资源记录(A, NS, MX...),与 DNSSEC 相关的记录除外 (RRSIG, NSEC....)
- 指向 FQDN 的资源记录(NS, MX, PTR),不能指向 CNAME
; 设置 server1 的 ip地址
; 设置 server1 的 别名为 www
server1 IN A 10.0.1.5
www IN CNAME server1
MX
MX
: Mail Exchange record
; 10, 20 是优先级;10比20优先;可以设置相同优先级;
; mail.example.com. 必须是 FQDN
; 当一封邮件发往 root@example.com 时,服务器将解析 example.com
example.com. IN MX 10 mail.example.com.
IN MX 20 mail2.example.com.
mail1 IN A 10.0.1.1
mail2 IN A 10.0.1.2
PTR
PTR
: Pointer record 用于反向解析
; 50 是 10.0.1.50 4个数字中的最后一个
; server1.example.com 必须是 FQDN
50 IN PTR server1.example.com.
实例
正向解析
; /var/named/example.com.zone
$ORIGIN example.com.
$TTL 86400
@ IN SOA dns1.example.com. hostmaster.example.com. (
2001062501 ; serial
21600 ; refresh after 6 hours
3600 ; retry after 1 hour
604800 ; expire after 1 week
86400 ) ; minimum TTL of 1 day
;
;
IN NS dns1.example.com.
IN NS dns2.example.com.
dns1 IN A 10.0.1.1
IN AAAA aaaa:bbbb::1
dns2 IN A 10.0.1.2
IN AAAA aaaa:bbbb::2
;
;
@ IN MX 10 mail.example.com.
IN MX 20 mail2.example.com.
mail IN A 10.0.1.5
IN AAAA aaaa:bbbb::5
mail2 IN A 10.0.1.6
IN AAAA aaaa:bbbb::6
;
;
; This sample zone file illustrates sharing the same IP addresses
; for multiple services:
;
services IN A 10.0.1.10
IN AAAA aaaa:bbbb::10
IN A 10.0.1.11
IN AAAA aaaa:bbbb::11
;
ftp IN CNAME services.example.com.
www IN CNAME services.example.com.
;
;
; In this example, the authoritative nameservers are set as dns1.example.com and dns2.example.com,
; and are tied to the 10.0.1.1 and 10.0.1.2 IP addresses respectively using the A record.
; The email servers configured with the MX records point to mail and mail2 through A records.
; Since these names do not end in a trailing period, the $ORIGIN domain is placed after them,
; expanding them to mail.example.com and mail2.example.com.
;
; Services available at the standard names, such as www.example.com (WWW),
; are pointed at the appropriate servers using the CNAME record.
# /etc/named.conf
zone "example.com" IN {
type master;
file "example.com.zone";
allow-update { none; };
};
反向解析
反向解析:将 IP地址 解析为 FQDN
IP地址 有4个数字(1.0.10.0
) 保留最后一位 .0
来做反向解析
; /var/named/example.com.rr.zone
; 将 10.0.1.1~10.0.10.6 反向解析到 FQDN (注意 $ORIGIN 前3个数字是相反的)
;
$ORIGIN 1.0.10.in-addr.arpa.
$TTL 86400
@ IN SOA dns1.example.com. hostmaster.example.com. (
2001062501 ; serial
21600 ; refresh after 6 hours
3600 ; retry after 1 hour
604800 ; expire after 1 week
86400 ) ; minimum TTL of 1 day
;
@ IN NS dns1.example.com.
;
1 IN PTR dns1.example.com.
2 IN PTR dns2.example.com.
;
5 IN PTR server1.example.com.
6 IN PTR server2.example.com.
;
3 IN PTR ftp.example.com.
4 IN PTR ftp.example.com.
# /etc/named.conf
# 10.0.1.0 网段的反向解析;注意 前3个数字是相反的 <1.0.10>
zone "1.0.10.in-addr.arpa" IN {
type master;
file "example.com.rr.zone";
allow-update { none; };
};