手册页部分 1M: 系统管理命令

退出打印视图

更新时间: 2014 年 7 月
 
 

dnssec-signzone(1M)

名称

dnssec-signzone - DNSSEC 区域签名工具

用法概要

dnssec-signzone [-Aaghptz] [-c class] [-d directory] 
     [-e end-time] [-f output-file] [-H iterations] [-I input_format]
     [-i interval] [-k key] [-l domain] [-N soa-serial-format] [-n ncpus]
     [-O output_format] [-o origin] [-r randomdev] [-s start-time]
     [-v level] [-3 salt] zonefile [key]...

描述

dnssec-signzone 实用程序可以对区域签名。它生成 NSECRRSIG 记录并生成已签名版本的区域。已签名区域中委托的安全状态(即子区域是否安全)取决于每个子区域是否存在 keyset 文件。

选项

支持以下选项:

–A

生成 NSEC3 链时,在所有 NSEC3 记录上设置 OPTOUT 标志且不会为不安全的委托生成 NSEC3 记录。

–a

验证所有生成的签名。

–c class

指定区域的 DNS 类。

–d directory

directory 中查找 keyset 文件。

–e end-time

指定生成的 RRSIG 记录过期的日期和时间。与 start-time 一样,绝对时间采用 YYYYMMDDHHMMSS 表示法表示。相对于开始时间的时间用 +N 表示,即开始时间后的 N 秒。相对于当前时间的时间用 now+N 表示。如果没有指定 end-time,则缺省值是开始时间后的第 30 天。

–f output-file

包含已签名区域的输出文件的名称。缺省情况是将 .signed 附加到输入文件名称后。

–g

keyset 文件中的子区域生成 DS 记录。将删除现有 DS 记录。

–H iterations

生成 NSEC3 链时,使用 iterations 指定的迭代次数。缺省 为 100。

–h

列出 dnssec-signzone() 的选项和参数的简短摘要。

–I input-format

输入区域文件的格式。可能的格式是 text(缺省)和 raw。此选项主要用于动态的已签名区域,以便可以直接对包含更新的非文本格式的转储区域文件签名。使用此选项对非动态区域毫无作用。

–i interval

将循环间隔指定为当前时间的偏移(以秒为单位)。之前已签名的区域作为输入进行传递时,可以重新对记录签名。如果 RRSIG 记录在循环间隔后过期,则保留该记录。否则,该记录被视为很快将过期并将被替换。

缺省循环间隔是签名结束时间和开始时间之差的四分之一。如果没有指定 end-timestart-time,则 dnssec-signzone 将生成有效期为 30 天、循环间隔为 7.5 天的签名。由于任何现有 RRSIG 记录在 7.5 天之内过期,因此会将其替换。

–j jitter

使用固定签名生命周期对区域签名时,签名时发出的所有 RRSIG 记录均同时到期。如果以增量方式对区域签名(即之前签名的区域作为输入传递给签名者),需要大约同时重新生成所有过期的签名。jitter 选项指定用于随机指定签名过期时间的 jitter 窗口,从而随时间以一定增量分散重新生成签名的时间。

在某种程度上,签名生命周期 jitter 也通过分散高速缓存失效时间使验证器和服务器受益。也就是说,如果所有高速缓存的大量 RRSIG 不同时到期,则相对于所有验证器需要几乎同时重取来说,前者出现拥塞的可能性更小。

–k key

将指定的 key 视作密钥签名密钥,忽略任何密钥标志。可以多次指定此选项。

–l domain

除密钥 (DNSKEY) 和 DS 集以外,还生成 DLV 集。域附加到记录名称。

–N soa-serial-format

已签名区域的 SOA 序列号格式。可能的格式是 keep(缺省)、incrementunixtime,如下所述。

keep

不修改 SOA 序列号。

increment

使用 RFC 1982 运算递增 SOA 序列号。

unixtime

将 SOA 序列号设置为自 Unix 时间戳起过去的秒数。

–n nthreads

指定要使用的线程数。缺省情况下,为每个检测出的 CPU 启动一个线程。

–O output_format

包含已签名区域的输出文件的格式。可能的格式是 text(缺省)和 raw

–o origin

指定区域源。如果没有指定,则将区域文件的名称假定为源。

–p

签名区域时使用伪随机数据。这比使用实际随机数据更快,但更不安全。签名大型区域或熵源有限时,此选项可能会有用。

–r randomdev

指定随机源。如果操作系统不提供 /dev/random 或等效设备,则缺省的随机源是键盘输入。randomdev 指定字符设备的名称或包含要使用的随机数据的文件(而非缺省的 /dev/random)。特殊值 keyboard 表示应该使用键盘输入。

–s start-time

指定生成的 RRSIG 记录开始有效的日期和时间。此时间可以是绝对时间,也可以是相对时间。绝对开始时间由采用 YYYYMMDDHHMMSS 表示法的数字表示;20000530144500 表示 2000 年 5 月 30 日 14:45:00 (UTC)。相对开始时间由 +N 表示,即当前时间后的 N 秒。如果没有指定 start-time,则使用当前时间减去一小时(以允许时钟相位差)后的时间。

–t

完成时列出统计信息。

–v level

设置调试级别。

–z

确定签名内容时,忽略密钥上的 KSK 标志。

–3 salt

使用指定的十六进制编码 salt 生成 NSEC3 链。破折号()可以用于表示生成 NSEC3 链时没有使用 salt。

操作数

支持下列操作数:

zonefile

包含要签名的区域的文件。

key

指定应在对区域签名时使用的密钥。如果没有指定密钥,则检查该区域以获得区域顶点的 DNSKEY 记录。如果找到这些记录且当前目录中有匹配的私钥,则这些记录将用于进行域名。

示例

示例 1 使用 DSA 密钥对区域签名

以下命令使用 dnssec-keygen(1M) 手册页中的示例中生成的 DSA 密钥对 example.com 区域签名(该示例为 Kexample.com.+003+17247)。区域的密钥必须在主文件 (db.example.com) 中。该调用在当前目录中查找密钥集文件,以便从这些文件生成 DS 记录 (–g)。

% dnssec-signzone -g -o example.com db.example.com \
Kexample.com.+003+17247
db.example.com.signed
%

在上述示例中,dnssec-signzone 创建文件 db.example.com.signed。应该在 named.conf 文件的区域语句中引用此文件。

示例 2 重新签名之前已签名的区域

以下命令使用缺省参数对以前已签名的区域重新签名。假定私钥位于当前目录中。

% cp db.example.com.signed db.example.com
% dnssec-signzone -o example.com db.example.com \
db.example.com.signed
%

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
service/network/dns/bind
接口稳定性
Volatile(可变)

另请参见

dnssec-keygen(1M)attributes(5)

RFC4033

请参见《BIND 9 管理员参考手册》。从本手册页发布之日起,将在 https://kb.isc.org/article/AA-01031https://kb.isc.org/article/AA-01031 上提供该文档。