记录

来源 主页

由 CoreDNS 维护

启用方式
records:github.com/coredns/records

records - 启用直接从 Corefile 提供(基本)区域数据。

描述

records 插件对于直接从配置文件中的内联方式提供区域数据非常有用。与hosts 插件相反,本插件支持所有记录类型。记录需要按照 RFC 1035 中规定的文本形式指定。如果记录中未指定 TTL,将假定默认 TTL 为 3600s。

对于否定响应,应在响应中包含 SOA 记录,这仅在数据中包含 SOA 记录时才执行。

records 插件使用一个简单的算法来查找要返回的正确记录。这意味着当前无法使用一些更高级的功能,例如

  • DNSSEC,如果添加了 RRSIG 记录,即使客户端能够处理它们,它们也不会在回复中返回。如果您需要签名回复,请将dnssec 插件与之结合使用。
  • 通配符,即 *.example.org,不会被检测为通配符记录。

如果您需要更可靠的实现,您可能要使用file 插件。

请注意,host 插件在plugin.cfg中的配置优先于records,这意味着当在服务器块中同时指定两者时,host 插件将优先。

每个服务器块只能使用一次此插件。

语法

records [ZONES...] {
    [INLINE]
}
  • ZONES 它应该具有权威性。如果为空,则使用来自配置块的区域。
  • INLINE 要提供的资源记录。这些必须按记录的文本形式(如 RFC 1035 中指定的)指定。请参见以下示例。每条记录必须位于单行上。

如果INLINE 中的域名没有完全限定,则每个ZONES 都会用作源并添加到名称中。

示例

为 example.org 提供 MX 记录为 MX 服务器指定名称 mx1 和地址 127.0.0.1。

example.org {
    records {
        @   60  IN SOA ns.icann.org. noc.dns.icann.org. 2020091001 7200 3600 1209600 3600
        @   60  IN MX 10 mx1
        mx1 60  IN A  127.0.0.1
    }
}

创建 2 个区域,每个区域都包含一个 MX 记录。请注意,没有提供 SOA 记录。此外,您需要用引号将 TXT 记录数据中的;引起来,以使解析器正常工作。(; 是 RFC 1035 区域文件中的注释,它后面的所有内容都将被忽略,因此需要在此处用引号将其引起来。)

. {
    records example.org example.net {
        mx1 IN MX 10 mx1
        dkim._domainkey.relay 3600 IN TXT "v=DKIM1\; h=sha256\; k=rsa\; s=email\; p=MIIBIj ..."
    }
}

缺陷

DNSSEC 和通配符并未实现。查找算法非常基本。未来的增强功能可能会利用file 插件中的代码,使其更符合 DNS 规范。

请参见

如果只需要返回地址记录,请参阅hosts插件文档。当内联记录的内容已更改时,使用reload插件可自动重新加载相关内容。可使用dnssec插件对回复进行签名。请参阅 RFC 1035 和定义此插件中必须使用的文本表示形式的新记录类型的后续 RFC。请注意,还支持 RFC 3597(处理未知 DNS 资源记录)语法。

对于功能更全面的 DNS 实现(包括 DNSSEC),请使用file插件。