说明
自动插件用于“旧式”DNS 服务器。它从磁盘上存在的预加载文件中提供服务。如果区域文件包含签名(即已签名,即使用 DNSSEC),则返回正确的 DNSSEC 答案。只支持 NSEC!如果您使用此设置,您负责重新对区域文件签名。只有当 SOA 的序列号更改时才会从磁盘自动选取新的区域或更改过的区域。如果区域不是通过区域传输来更新,则序列号必须手动更改。
语法
auto [ZONES...] {
directory DIR [REGEXP ORIGIN_TEMPLATE]
reload DURATION
}
区域它应具有对其权威。如果为空,则使用配置块中的区域。
directory
从指定的目录中加载区域。如果文件名与REGEXP匹配,则会使用它提取来源。ORIGIN_TEMPLATE将用作来源模板。诸如{<number>}
字符串将被文件名中的相应匹配项替换,例如,{1}
是第一个匹配项,{2}
是第二个。默认值为:db\.(.*) {1}
即,对于名为db.example.com
的文件,提取的来源将为example.com
。reload
如果 SOA 版本更改,则重新加载区域和区域文件的间隔时间。它指定 CoreDNS 应多久扫描一次目录以监视文件删除和添加情况。默认时间为一分钟。0
的值意味着不扫描是否有更改和重新加载。例如,30s
每 30 秒检查一次区域文件并在序列号更改时重新加载区域。
有关启用区域传输的信息,请查看传输插件。
支持文件插件中的所有指令。请注意,自动功能会加载找到的所有区域,即使该指令可能只接收对特定区域的查询。即
. {
auto example.org {
directory /etc/coredns/zones
}
}
会乐于获取example.COM
的区域,不过它永远不会被查询,因为自动指令只对example.ORG
具有权威性。
示例
从/etc/coredns/zones/org
加载org
域,允许传输到互联网,但向 10.240.1.1 发送通知
org {
auto {
directory /etc/coredns/zones/org
}
transfer {
to *
to 10.240.1.1
}
}
从/etc/coredns/zones/org
加载org
域,并将文件名视为www.db.example.org
,其中example.org
为来源。每 45 秒扫描一次。
org {
auto {
directory /etc/coredns/zones/org www\.db\.(.*) {1}
reload 45s
}
}
此外
使用根插件来帮助您指定区域文件的位置。请参阅传输插件以启用传出区域传输。