bind9 无法加载只有 CNAME 记录的区域

bind9 无法加载只有 CNAME 记录的区域

我正在尝试设置一个子域名来指向 Google Sites,因此我创建了一个简单的区域文件:

$ttl 38400
subdomain.mydomain.net.    IN CNAME ghs.googlehosted.com.

这不起作用:

zone subdomain.mydomain.net/IN: has 0 SOA records
zone subdomain.mydomain.net/IN: has no NS records
zone subdomain.mydomain.net/IN: not loaded due to errors.

但添加 NS 或 SOA 记录会出现“CNAME 和其他数据”错误。我该如何修复此问题?

答案1

根据 DNS 的设计,您不能CNAME在域名的顶部拥有。

SOA如果没有和记录,您就无法拥有有效的区域,NS这正是您无法CNAME在顶点拥有记录的原因CNAME,因为除了 DNSSEC 相关记录之外,它与任何其他同名的记录都不兼容,否则显然会产生歧义。

答案2

仅当您想将子域的权限转移给其他团队/实体时才应创建子域。如果您自己管理所有这些子域,那么创建不同的子域就没什么意义了。

您可以在下面看到区域的示例配置文件(来源

$ORIGIN example.com.
$TTL 86400
@       SOA    dns1.example.com. hostmaster.example.com. (
               2001062501 ; serial
               21600      ; refresh after 6 hours
               3600       ; retry after 1 hour
               604800     ; expire after 1 week
               86400 )    ; minimum TTL of 1 day
;
;
        NS     dns1.example.com.
        NS     dns2.example.com.
dns1    A      10.0.1.1
        AAAA   aaaa:bbbb::1
dns2    A      10.0.1.2
        AAAA   aaaa:bbbb::2
;
;
@       MX     10 mail.example.com.
        MX     20 mail2.example.com.
mail    A      10.0.1.5
        AAAA   aaaa:bbbb::5
mail2   A      10.0.1.6
        AAAA   aaaa:bbbb::6
;
;
; This sample zone file illustrates sharing the same IP addresses for
; multiple services:
;
services  A      10.0.1.10
          AAAA   aaaa:bbbb::10
          A      10.0.1.11
          AAAA   aaaa:bbbb::11

ftp       CNAME  services.example.com.
www       CNAME  services.example.com.
;
; The items below I have added myself.
;
subdomain                    CNAME  ghs.googlehosted.com.
mailserver.other-subdomain   A      192.0.2.25
webserver.other-subdomain    A      203.0.113.80
cname.other-subdomain        CNAME  webserver.other-subdomain.example.com.

从示例中可以看出,您不必为“其他子域”或“子域”创建单独的区域。您可以将所有这些记录添加到域的主区域文件中。

相关内容