DNS 和服务管理工具
第3 章• DNS 设置与管理(参考) 51
dependency require_any/error svc:/network/loopback (online)
dependency optional_all/error svc:/network/physical (online)
如果需要以不同选项启动DNS 服务(例如,用/etc/named.conf 之外的配置文件),可
以使用svccfg 命令更改DNS 服务器manifest 的start method 属性。
仅当要运行BIND 9 名称服务的多个副本时,才需要多个SMF 服务实例。在DNS 服务器
manifest 中可为其他每个实例指定不同的启动方法。
尽管建议使用svcadm 管理服务器,但也可以使用rndc。SMF 可识别BIND 9 named 服务的
状态更改,无论使用svcadm 还是rndc 来管理。
注– 如果从命令行手动执行服务,SMF 将不识别BIND 9 named 服务。
实现rndc
BIND 8 ndc 和BIND 9 rndc 名称服务器控制工具不向后兼容。rndc 不能与BIND 8 名称服务
器对话,ndc 不能与BIND 9 名称服务器对话。功能、选项、缺省操作模式以及配置文件要
求都已更改。因此,在BIND 9 服务器中使用ndc 会导致功能丧失或操作不安全。有关更多
信息,请参见rndc(1M) 手册页。
rndc.conf 配置文件
BIND 8 中的ndc 与BIND 9 中的rndc 之间最显著的差别在于rndc 需要自己的配置文件
rndc.conf。此文件可由rndc-confgen 命令生成。rndc.conf 文件可以指定将由哪个服务器
进行控制及该服务器应使用算法。
示例3–1 rndc.conf 文件样例
options {
default-server localhost;
default-key "rndc-key";
};
key "rndc-key" {
algorithm hmac-md5;
实现rndc
52 系统管理指南:名称和目录服务(DNS、NIS 和LDAP) • 2006 年9 月
示例3–1 rndc.conf 文件样例(续)
secret "qPWZ3Ndl81aBRY9AmJhVtU==";
};
示例3–2 用于rndc 的named.conf 文件项样例
controls {
inet * allow { any; } keys { "rndc-key"; };
};
key "rndc-key" {
algorithm hmac-md5;
secret "qPWZ3Ndl81aBRY9AmJhVtU==";
};
控制通道之间的差别
ndc 和rndc 实用程序都使用控制通道来向名称服务器发送信息以及从该服务器中检索信
息。但是,这两个实用程序之间存在差别。
在BIND 8 中,ndc 可以使用AF_UNIX 域套接字(UNIX 控制通道)或TCP/IP 套接字
(inet 控制通道)。缺省情况下,ndc 不需要/etc/named.conf 中提供的任何支持,因为
BIND 8 服务器使用UNIX 域套接字,且路径(/var/run/ndc.d/ndc) 已编译到in.named
中。
但对于BIND 9,rndc 只使用经过验证的TCP/IP inet 控制通道,因而不与BIND 8 向后兼
容。在BIND 9 服务器中,不存在对控制通道的UNIX 域套接字支持。
使用rndc 时,需要指定用于与名称服务器通信的’key’ 子句。BIND 9 服务器和rndc 客户
机必须共享同一密钥(在/etc/named.conf 和/etc/rndc.conf 中定义)。在BIND 9 中使
用BIND 8 控制项将产生错误消息。
从ndc 到rndc 实现,一些命令选项已更改。其中包括-c 选项,该选项在BIND 9 中具有
不同的语法。因此,要在BIND 9 中指定控制通道,请使用rndc -s
-p
。
实现rndc
第3 章• DNS 设置与管理(参考) 53
BIND 9 rndc 的命令
以下列表介绍rndc 命令。
reload 重新装入配置文件和区域
reload zone [class [view]] 重新装入单个区域
refresh zone [class [view]] 安排区域的立即维护
reconfig 仅重新装入配置文件和新区域
stats 将服务器统计信息写入统计文件中
querylog 切换查询日志
dumpdb 将高速缓存转储到转储文件(named_dump.db)
stop 将暂挂更新保存到主文件并停止服务器
halt 停止服务器,但不保存暂挂更新
trace 将调试级别增加一级
trace level 更改调试级别
notrace 将调试级别设置为0
flush 刷新服务器的所有高速缓存
flush [view] 为某一视图刷新服务器的高速缓存
status 显示服务器的状态
restart 重新启动服务器(尚未实现)
BIND 9 命令、文件、工具和选项
在BIND 9 中,有些命令、文件、工具和选项与BIND 8 中保持相同,有些已被修改,还有
一些是新增的。本节介绍BIND 9 中的许多命令、文件、工具和选项以及与每项关联的新增
行为或已修改的行为。
BIND 9 工具和配置文件
Solaris 操作系统提供了以下BIND 9.x 工具。
named
nsupdate
rndc
dnssec-keygen
BIND 9 命令、文件、工具和选项
54 系统管理指南:名称和目录服务(DNS、NIS 和LDAP) • 2006 年9 月
nslookup
dig
dnssec-makekeyset
dnssec-signkey
dnssec-signzone
named-checkconf
named-checkzone
rndc-confgen
host
Solaris 10 支持以下BIND 9.x 配置文件。
/etc/rndc.conf
BIND 8 和BIND 9 命令和文件比较
下表对BIND 8 和BIND 9 的命令及配置文件进行了比较。
BIND 8 命令BIND 9.x 替代命令
dnskeygen(1M) dnssec-keygen(1M)
ndc(1M) rndc(1M)
named-bootconf(1M) 不需要
nsupdate(1M) nsupdate(1M)
nslookup(1M) nslookup(1M)
named-xfer(1M) 不需要
in.named(1M) named(1M)
named.conf(4) named.conf
1
dig(1M) dig(1M)
1 BIND 9.2.4 中不包括详细的named.conf 手册页。第56 页中的“named.conf 选项” 包括BIND 9.2.4 所支持的named.conf 选
项的摘要。
命令和选项更改的说明
下面列出的所有不兼容项都是等效的BIND 9 二进制文件不支持的BIND 8 功能和接口。此
列表不用作任何BIND 9.x 二进制文件的选项、命令行选项或功能的详细列表。
BIND 9 命令、文件、工具和选项
第3 章• DNS 设置与管理(参考) 55
命令选项更改
in.named(1M) 不支持DNS 名称服务器的一些in.named 命令行选
项。
在BIND 9.x 名称服务器中,不支持-g
group_name、-q、-r 和-w directory 选项,并且-c
config_file 替代了BIND 8.x -b config_file。有关详细
信息,请参见named 手册页。
dnssec-keygen(1M) BIND 8.x 中的dnskeygen 用于生成密钥,BIND 9.x
中的dnssec-keygen 没有通用选项。有关详细信
息,请参见dnssec-keygen 手册页。
rndc(1M) BIND 8.x 中的ndc 与BIND 9.x 中的rndc 存在显著
差别。它们不共享通用选项。与ndc 不同,rndc
需要在/etc/rndc.conf 中有一个配置文件才能运
行。有关详细信息,请参见rndc、rndc.conf 和
rndc-confgen 手册页。
nsupdate(1M) 在BIND 9.x 中,nsupdate -k 选项的语法已更改。
不再是-k keydir::keyname,该语法现在为k
keyfile。其他仅有的差别是,以前使用空白行作为
向服务器发送输入的信号,而现在使用显式的
send 子命令来执行相同操作。有关详细信息,请
参见nsupdate 手册页。
nslookup(1M) 9.x 版本的BIND 不支持以下选项:help、host
server、set ignoretc、set noignoretc、set
srch[list]=N1[/N2/.../N6]、set ro[ot]=host、
root、finger [USER]、ls [opt] DOMAIN [> FILE]
named.conf(4) 有几个选项不受支持、未实现或更改了缺省值。
有关选项更改的列表和所有named.conf 选项的摘
要,请参见第56 页中的“named.conf 选项”。
named.conf 选项
以下列表比较了BIND 8 和BIND 9 的named.conf 选项。还提供了更改的简短说明。“更改
”列中的OK 表示选项在BIND 9 版本的named 中工作方式不变。
选项{ 更改
[ version version_string; ] OK
[ directory path_name; ] OK
[ named-xfer path_name; ] 过时1
1 由于体系结构差别而过时。
named.conf 选项
56 系统管理指南:名称和目录服务(DNS、NIS 和LDAP) • 2006 年9 月
选项{ 更改
[ dump-file path_name; ] OK
[ memstatistics-file path_name; ] 未实现
[ pid-file path_name; ] OK
[ statistics-file path_name; ] OK
[ auth-nxdomain yes_or_no; ] OK2
[ dialup yes_or_no; OK
[ fake-iquery yes_or_no; ] 过时
[ fetch-glue yes_or_no; ] 过时
[ has-old-clients yes_or_no; ] 过时
[ host-statistics yes_or_no; ] 未实现
[ host-statistics-max number; ] 未实现
[ multiple-cnames yes_or_no; ] 过时
[ notify yes_or_no | explicit; ] OK
[ recursion yes_or_no; ] OK
[ rfc2308-type1 yes_or_no; ] 未实现
[ use-id-pool yes_or_no; ] 过时
[ treat-cr-as-space yes_or_no; ] 过时
[ also-notify yes_or_no; ] 语法已更改3
[ forward ( only | first ); ] OK4
[ forwarders { [ in_addr ; \
[ in_addr ; ... ] ] }; ]
OK5
[ check-names ( master | slave | \
response ) ( warn | fail | ignore); ]
未实现
[ allow-query { address_match_list }; ] OK
[ allow-recursion { address_match_list }; ] OK
[ allow-transfer { address_match_list }; ] OK
2 BIND 8 中缺省设置为yes,而BIND 9 中缺省设置为no。
3 选择yes 时,需要一个IP 地址。
4 如果不指定转发器,此选项将不工作;在此情况下,会产生no matching ’forwarders’ statement 错误。
5 请参见[ forward ] 子句。
named.conf 选项
第3 章• DNS 设置与管理(参考) 57
选项{ 更改
[ blackhole { address_match_list }; ] OK
[ listen-on [ port ip_port ] \
{ address_match_list }; ]
OK
[ query-source [ address ( ip_addr | * ) ] \ OK
[ port ( ip_port | * ) ] ; ]
[ lame-ttl number; ]
OK
[ max-transfer-time-in number; ] OK
[ max-ncache-ttl number; ] OK
[ min-roots number; ] 未实现
[ transfer-format ( one-answer | \
many-answers ); ]
OK6
[ transfers-in number; ] OK
[ transfers-out number; ] OK
[ transfers-per-ns number; ] OK
[ transfer-source ip_addr; ] OK
[ maintain-ixfr-base yes_or_no; ] 过时
[ max-ixfr-log-size number; ] 过时7
[ coresize size_spec ; ] OK
[ datasize size_spec ; ] OK
[ files size_spec ; ] OK
[ stacksize size_spec ; ] OK
[ cleaning-interval number; ] OK
[ heartbeat-interval number; ] OK
[ interface-interval number; ] OK
[ statistics-interval number; ] 未实现
[ topology { address_match_list }; ] 未实现
[ sortlist { address_match_list }; ] OK
6 BIND 8 中缺省设置为one-answer,而BIND 9 中缺省设置为many-answers。
7 不需要此选项,因为BIND 9 会自动剪裁其日志文件的大小。
named.conf 选项
58 系统管理指南:名称和目录服务(DNS、NIS 和LDAP) • 2006 年9 月
选项{ 更改
[ rrset-order { order_spec ; \
[ order_spec ; ... ] }; ]
未实现
};
BIND 9 中的语句
本节介绍BIND 8 语句与BIND 9 语句之间的所有差别。
Controls 语句
unix 是ndc 的缺省设置,并且编译了所有参数。inet 是rndc 唯一的选项,并且未编译任何内
容。
Syntax
controls {
[ inet ip_addr
port ip_port
allow { address_match_list; }; ] OK
[ unix path_name
perm number
owner number
group number; ] Not Implemented
};
日志语法发生了显著更改。有关named.conf 选项的列表,请参见第56 页中的“named.conf
选项”。
Zone 语句
BIND 8 named.conf 手册页中用于区域语句的语法大部分在BIND 9 中都受支持,以下语法除
外:
[ pubkey number number number string; ] Obsolete
[ check-names ( warn | fail | ignore ); ] Not Implemented
named.conf 选项
第3 章• DNS 设置与管理(参考) 59
ACL 语句
该语句在BIND 9 中的工作方式未更改。
Syntax
acl name {
address_match_list
};
Key 语句
该语句在BIND 9 中的工作方式未更改。
Syntax
key key_id {
algorithm algorithm_id;
secret secret_string;
};
Trusted-Keys 语句
工作方式未更改,但使用此语句的代码在BIND 9.2.4 中已被禁用。
Syntax
trusted-keys {
[ domain_name flags protocol algorithm key; ]
};
Server 语句
support-ixfr 已过时,但以下所有选项在BIND 9 中的工作方式未更改。请注
意,transfer-format 的缺省设置已更改。
Syntax
server ip_addr {
[ bogus yes_or_no; ]
named.conf 选项
60 系统管理指南:名称和目录服务(DNS、NIS 和LDAP) • 2006 年9 月
[ transfers number; ]
[ transfer-format ( one-answer | many-answers ); ]
[ keys { key_id [ key_id ... ] }; ]
[ edns yes_or_no; ]
};
Include 语句
该语句在BIND 9 中的工作方式未更改。
Syntax
include path_name;
named.conf 选项摘要
BIND 9.2.4 不包括详细的named.conf 手册页。下面是BIND 9.2.4 支持的named.conf 选项的
摘要。
options {
blackhole { ; ... };
coresize ;
datasize ;
deallocate-on-exit ; // obsolete
directory ;
dump-file ;
fake-iquery ; // obsolete
files ;
has-old-clients ; // obsolete
heartbeat-interval ;
host-statistics ; // not implemented
named.conf 选项
第3 章• DNS 设置与管理(参考) 61
host-statistics-max ; // not implemented
interface-interval ;
listen-on [ port ] { ; ... };
listen-on-v6 [ port ] { ; ... };
match-mapped-addresses ;
memstatistics-file ; // not implemented
multiple-cnames ; // obsolete
named-xfer ; // obsolete
pid-file ;
port ;
random-device ;
recursive-clients ;
rrset-order { [ class ] [ type ] [ name
] ; ... }; // not implemented
serial-queries ; // obsolete
serial-query-rate ;
stacksize ;
statistics-file ;
statistics-interval ; // not yet implemented
tcp-clients ;
tkey-dhkey ;
tkey-gssapi-credential ;
tkey-domain ;
transfers-per-ns ;
named.conf 选项
62 系统管理指南:名称和目录服务(DNS、NIS 和LDAP) • 2006 年9 月
transfers-in ;
transfers-out ;
treat-cr-as-space ; // obsolete
use-id-pool ; // obsolete
use-ixfr ;
version ;
allow-recursion { ; ... };
allow-v6-synthesis { ; ... };
sortlist { ; ... };
topology { ; ... }; // not implemented
auth-nxdomain ; // default changed
minimal-responses ;
recursion ;
provide-ixfr ;
request-ixfr ;
fetch-glue ; // obsolete
rfc2308-type1 ; // not yet implemented
additional-from-auth ;
additional-from-cache ;
query-source ;
query-source-v6 ;
cleaning-interval ;
min-roots ; // not implemented
lame-ttl ;
named.conf 选项
第3 章• DNS 设置与管理(参考) 63
max-ncache-ttl ;
max-cache-ttl ;
transfer-format ( many-answers | one-answer );
max-cache-size ;
check-names ; // not implemented
cache-file ;
allow-query { ; ... };
allow-transfer { ; ... };
allow-update-forwarding { ; ... };
allow-notify { ; ... };
notify ;
notify-source ( | * ) [ port ( | * ) ];
notify-source-v6 ( | * ) [ port ( | * ) ];
also-notify [ port ] { ( |
) [ port ]; ... };
dialup ;
forward ( first | only );
forwarders [ port ] { ( | )
[ port ]; ... };
maintain-ixfr-base ; // obsolete
max-ixfr-log-size ; // obsolete
transfer-source ( | * ) [ port ( | * ) ];
transfer-source-v6 ( | * ) [ port ( | * ) ];
max-transfer-time-in ;
named.conf 选项
64 系统管理指南:名称和目录服务(DNS、NIS 和LDAP) • 2006 年9 月
max-transfer-time-out ;
max-transfer-idle-in ;
max-transfer-idle-out ;
max-retry-time ;
min-retry-time ;
max-refresh-time ;
min-refresh-time ;
sig-validity-interval ;
zone-statistics ;
};
controls {
inet ( | | * ) [ port ( | *
) ] allow { ; ... } [ keys { ; ... } ];
unix ; // not implemented
};
acl { ; ... };
logging {
channel {
file ;
syslog ;
null;
named.conf 选项
第3 章• DNS 设置与管理(参考) 65
stderr;
severity ;
print-time ;
print-severity ;
print-category ;
};
category { ; ... };
};
view {
match-clients { ; ... };
match-destinations { ; ... };
match-recursive-only ;
key {
algorithm ;
secret ;
};
zone {
type ( master | slave | stub | hint | forward );
allow-update { ; ... };
file ;
ixfr-base ; // obsolete
ixfr-tmp-file ; // obsolete
masters [ port ] { ( |
named.conf 选项
66 系统管理指南:名称和目录服务(DNS、NIS 和LDAP) • 2006 年9 月
) [ port ] [ key ]; ... };
pubkey ; //
obsolete
update-policy { ( grant | deny ) ( name |
subdomain | wildcard | self ) ; ... };
database ;
check-names ; // not implemented
allow-query { ; ... };
allow-transfer { ; ... };
allow-update-forwarding { ; ... };
allow-notify { ; ... };
notify ;
notify-source ( | * ) [ port ( | *
) ];
notify-source-v6 ( | * ) [ port (
| * ) ];
also-notify [ port ] { ( |
) [ port ]; ... };
dialup ;
forward ( first | only );
forwarders [ port ] { ( |
) [ port ]; ... };
maintain-ixfr-base ; // obsolete
max-ixfr-log-size ; // obsolete
named.conf 选项
第3 章• DNS 设置与管理(参考) 67
transfer-source ( | * ) [ port ( |
* ) ];
transfer-source-v6 ( | * ) [ port (
| * ) ];
max-transfer-time-in ;
max-transfer-time-out ;
max-transfer-idle-in ;
max-transfer-idle-out ;
max-retry-time ;
min-retry-time ;
max-refresh-time ;
min-refresh-time ;
sig-validity-interval ;
zone-statistics ;
};
server {
bogus ;
provide-ixfr ;
request-ixfr ;
support-ixfr ; // obsolete
transfers ;
transfer-format ( many-answers | one-answer );
keys ;
edns ;
named.conf 选项
68 系统管理指南:名称和目录服务(DNS、NIS 和LDAP) • 2006 年9 月
};
trusted-keys {
; ... };
allow-recursion { ; ... };
allow-v6-synthesis { ; ... };
sortlist { ; ... };
topology { ; ... }; // not implemented
auth-nxdomain ; // default changed
minimal-responses ;
recursion ;
provide-ixfr ;
request-ixfr ;
fetch-glue ; // obsolete
rfc2308-type1 ; // not yet implemented
additional-from-auth ;
additional-from-cache ;
query-source ;
query-source-v6 ;
cleaning-interval ;
min-roots ; // not implemented
lame-ttl ;
max-ncache-ttl ;
max-cache-ttl ;
transfer-format ( many-answers | one-answer );
named.conf 选项
第3 章• DNS 设置与管理(参考) 69
max-cache-size ;
check-names ; // not implemented
cache-file ;
allow-query { ; ... };
allow-transfer { ; ... };
allow-update-forwarding { ; ... };
allow-notify { ; ... };
notify ;
notify-source ( | * ) [ port ( | * ) ];
notify-source-v6 ( | * ) [ port ( | * ) ];
also-notify [ port ] { ( |
) [ port ]; ... };
dialup ;
forward ( first | only );
forwarders [ port ] { ( | )
[ port ]; ... };
maintain-ixfr-base ; // obsolete
max-ixfr-log-size ; // obsolete
transfer-source ( | * ) [ port ( | * ) ];
transfer-source-v6 ( | * ) [ port ( | * ) ];
max-transfer-time-in ;
max-transfer-time-out ;