15.2.2.2. 常见语句类型
在
/etc/named.conf 中通常使用以下语句类型:
-
acl acl(Access Control List)语句允许您定义主机组,以便允许或拒绝访问名称服务器。它采用以下形式:acl acl-name { match-element; ... };acl acl-name { match-element; ... };Copy to Clipboard Copied! Toggle word wrap Toggle overflow acl-name 语句名称是访问控制列表的名称,而 match-element 选项通常是一个单独的IP 地址(如10.0.1.1)或无 类别间路由 (CIDR)网络表示法(如10.0.1.0/24)。有关已定义的关键字列表,请参阅 表 15.2 “预定义的访问控制列表”。Expand 表 15.2. 预定义的访问控制列表 关键字 描述 任意匹配每个 IP 地址.localhost匹配本地系统正在使用的任何 IP 地址。localnets匹配本地系统所连接的任何网络上的任何 IP 地址。none不匹配任何 IP 地址。acl语句特别适用于与其他 语句(如选项)结合使用。例 15.2 “使用 Conjunction 中的 acl 和 Options” 定义两个访问控制列表:黑语和红色内容,并在授予红色。内容普通访问时在黑名单中添加黑色内容例 15.2. 使用 Conjunction 中的 acl 和 Options
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Include include语句允许您在/etc/named.conf中包含文件,以便将潜在的敏感数据放入具有受限权限的单独文件中。它采用以下形式:include "file-name"
include "file-name"Copy to Clipboard Copied! Toggle word wrap Toggle overflow file-name 语句名称是文件的绝对路径。例 15.3. 包含到 /etc/named.conf 的文件
include "/etc/named.rfc1912.zones";
include "/etc/named.rfc1912.zones";Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
选项 options语句允许您定义全局服务器配置选项,以及设置其他语句的默认值。它可用于指定指定工作目录的位置、允许的查询类型,等等。它采用以下形式:options { option; ... };options { option; ... };Copy to Clipboard Copied! Toggle word wrap Toggle overflow 有关常用选项指令列表,请查看以下 表 15.3 “常用配置选项”。Expand 表 15.3. 常用配置选项 选项 描述 allow-query指定允许哪些主机查询权威资源记录的名称服务器。它接受 CIDR 表示法中的访问控制列表、IP地址集合或网络。默认情况下允许所有主机。allow-query-cache指定允许哪些主机查询名称服务器以获取非权威数据,如递归查询。默认情况下,仅允许 localhost和localnets。黑色指定不允许哪些主机查询名称服务器。当特定主机或网络充满请求时,应使用此选项。默认选项为 none。directory指定 named服务的工作目录。默认选项为/var/named/。disable-empty-zone用于从要使用的默认前缀列表中禁用一个或多个空区域。可以在 options 语句中指定,也可以在 语句中指定。它可以多次使用。 dnssec-enable指定是否返回与 DNSSEC 相关的资源记录。默认选项为 yes。dnssec-validation指定是否通过 DNSSEC 验证资源记录。默认选项为 yes。empty-zones-enable控制是否创建空区域。只能在 options 语句中指定。 forwarders指定应向其转发请求以进行解析的名称服务器的有效 IP 地址列表。forward指定forwarders指令的行为。它接受以下选项:首先- 服务器在尝试自行解析名称之前,将查询forwarders指令中列出的名称服务器。仅- 当无法查询forwarders指令中列出的名称服务器时,服务器将不会尝试自行解析该名称。
listen-on指定要侦听查询的 IPv4网络接口。在同样充当网关的DNS服务器上,您可以使用此选项来应答源自单个网络的查询。默认情况下,所有IPv4接口都使用。listen-on-v6指定要侦听查询的 IPv6网络接口。在同样充当网关的DNS服务器上,您可以使用此选项来应答源自单个网络的查询。默认情况下,所有IPv6接口都使用。max-cache-size指定用于服务器缓存的最大内存量。达到限制时,服务器会导致记录永久过期,从而不会超过限制。在有多个视图的服务器中,限制将单独应用于每个视图的缓存。默认选项为 32M。notify指定是否在更新区域时通知次要名称服务器。它接受以下选项:是- 服务器将通知所有次要名称服务器.否- 服务器不会通知任何次要名称服务器。仅主服务器 -服务器将仅通知区域的主服务器。显式- 服务器将仅通知zone语句中指定的 second 服务器。
pid-file指定由指定服务创建的进程ID 文件的位置。递归指定是否充当递归服务器。默认选项为 yes。statistics-file指定统计信息文件的备用位置。默认使用 /var/named/named.stats文件。注意named用于运行时数据的目录已从 BIND 默认位置/var/run/named/移到新位置/run/named/。因此,PID 文件已从默认位置/var/run/named/named.pid移到新位置/run/named/named.pid。此外,session-key 文件已移到/run/named/session.key。这些位置需要通过 options 部分中的语句来指定。请参阅 例 15.4 “使用选项声明”。重要为防止分布式拒绝服务(DDoS)攻击,建议您使用allow-query-cache选项来限制特定客户端子集的递归DNS服务。有关可用选项的完整列表,请参阅 第 15.2.8.1 节 “安装的文档” 中引用的 BIND 9 管理员参考手册和named.conf手册页。例 15.4. 使用选项声明
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
zone zone语句允许您定义区域的特征,如其配置文件和区域特定选项的位置,并可用于覆盖全局options语句。它采用以下形式:zone zone-name [zone-class] { option; ... };zone zone-name [zone-class] { option; ... };Copy to Clipboard Copied! Toggle word wrap Toggle overflow zone-name 属性是区的名称,zone-class 是区域的可选类,选项是一个zone语句选项,如 表 15.4 “区域语句中常用选项” 所述。zone-name 属性尤为重要,因为它是为/var/named/目录中对应区域文件中使用的$ORIGIN指令分配的默认值。指定守护进程将区域名称附加到区域文件中列出的任何非限定域名。例如,如果区域语句定义了example.com的命名空间,请使用example.com作为 zone-name,以便将其放置在example.com区域文件中的主机名的末尾。有关区文件的详情请参考 第 15.2.3 节 “编辑区域文件”。Expand 表 15.4. 区域语句中常用选项 选项 描述 allow-query指定允许哪些客户端请求有关该区域的信息。此选项覆盖全局 allow-query选项。默认情况下允许所有查询请求。allow-transfer指定允许哪些次要服务器请求传输区域信息。默认情况下允许所有传输请求。 allow-update指定允许哪些主机动态更新其区域中的信息。默认选项是拒绝所有动态更新请求。请注意,在允许主机更新其区域信息时,您应该小心。不要在此选项中设置IP 地址,除非服务器位于可信网络中。反之,使用 第 15.2.6.3 节 “事务 SIGnatures(TSIG)” 所述 TSIG 密钥。file指定包含区域配置数据的指定工作目录中的文件名称。Master指定从哪个 IP地址请求权威区域信息。只有在区域定义为slave类型时才使用这个选项。notify指定是否在更新区域时通知次要名称服务器。它接受以下选项:是- 服务器将通知所有次要名称服务器.否- 服务器不会通知任何次要名称服务器。仅主服务器 -服务器将仅通知区域的主服务器。显式- 服务器将仅通知zone语句中指定的 second 服务器。
type指定 zone 类型。它接受以下选项:仅委派 -强制实施基础架构区域的委派状态,如 COM、NET 或 ORG。收到的任何没有显式或隐式委派的答案都将被视为NXDOMAIN。这个选项仅适用于递归或缓存实施中使用的 TLD(顶级域)或 root 区域文件。forward- 将有关该区域信息的所有请求转发到其他名称服务器。提示- 特殊类型的区域,用于指向根名称服务器,当否则不知道区域时解析查询。不需要使用 hint区域进行默认配置。Master- 将名称服务器指定为该区域的权威。如果区域的配置文件驻留在系统上,则应将区域设置为主区域。slave- 将名称服务器设计为这个区域的次要服务器。主服务器在masters指令中指定。
对于主名称服务器或从属名称服务器的/etc/named.conf文件的大部分更改都涉及添加、修改或删除区域语句。,并且通常需要一小部分区域声明选项才能使名称服务器高效工作在 例 15.5 “主名称服务器的区域语句” 中,区被标识为example.com,类型被设置为master,并且指示named服务读取/var/named/example.com.zone文件。它还仅允许次要名称服务器(192.168.0.2)传输区域。例 15.5. 主名称服务器的区域语句
zone "example.com" IN { type master; file "example.com.zone"; allow-transfer { 192.168.0.2; }; };zone "example.com" IN { type master; file "example.com.zone"; allow-transfer { 192.168.0.2; }; };Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次要服务器的zone语句略有不同。type 设置为slave,master指令会告知主服务器的IP地址。在 例 15.6 “次要名称服务器的区域语句”中,named服务配置为查询192.168.0.1IP 地址的主服务器,以获取有关example.com区域的信息。然后,收到的信息会保存到/var/named/slaves/example.com.zone文件中。请注意,您必须将所有次要区域放在/var/named/slaves/目录中,否则该服务将无法传输区域。例 15.6. 次要名称服务器的区域语句
zone "example.com" { type slave; file "slaves/example.com.zone"; masters { 192.168.0.1; }; };zone "example.com" { type slave; file "slaves/example.com.zone"; masters { 192.168.0.1; }; };Copy to Clipboard Copied! Toggle word wrap Toggle overflow