自动

源代码

自动功能允许从 RFC 1035 样式主文件中提供区域数据,而该主文件是从磁盘自动选取的。

说明

自动插件用于“旧式”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
    }
}

此外

使用插件来帮助您指定区域文件的位置。请参阅传输插件以启用传出区域传输。