我正在尝试设置一个子域名来指向 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.
从示例中可以看出,您不必为“其他子域”或“子域”创建单独的区域。您可以将所有这些记录添加到域的主区域文件中。