在GoDaddy我有一个域名example1.com和www.example1.com使用有效的 A 记录到我的 Centos 7 服务器的 IP。
我已经为该域创建了主机名,ns1.example1.com,ns2.example1.com,具有相同的服务器IP。
我在 Godaddy 中还有另一个域名 example2.com,我想在其中使用自定义名称服务器。因此,我在名称服务器字段中输入了 ns1.example1.com 和 ns2.example1.com。
在我的服务器的named.conf中
zone "example2.com" IN {
type master;
file "/etc/named/foo.zone";
allow-update { none; };
};
在 foo.zone 中:
$TTL 600
@ 3600 SOA example2.com (
example2.com. ; address of responsible party
2016072701 ; serial number
3600 ; refresh period
600 ; retry period
604800 ; expire time
1800 ) ; minimum ttl
86400 NS example2.com.
14400 A 1.2.3.4
mail 14400 A 1.2.3.4
我预计 example2.com 和 mail.example2.com 会解析为 1.2.3.4。
我究竟做错了什么 ?
多谢。
答案1
评论太长了
我究竟做错了什么 ?
您可以使用以下方式验证区域文件的语法named-checkzone
zone-name
/path/to/zone.file
IE
named-checkzone example2.com /etc/named/foo.zone
named.conf
您可以使用以下方式验证配置文件的语法named-checkconf
:
named-checkconf /path/to/named.conf
笔记有效的语法仍然可能导致逻辑/功能错误和资源记录行为不正确。
@ 3600 SOA example2.com ( ;<=== MISSING FIELD
在里面 SOA 记录缺少一个字段。
第一个字段称为 MNAME 记录。MNAME 记录必须是能够为您的域名做出权威响应的名称服务器。
第二个字段是 RNAME 记录,即负责此区域的管理员的电子邮件地址。(通常,电子邮件地址被编码为名称。电子邮件地址中 之前的部分@成为名称的第一个标签; 之后的域名@成为名称的其余部分。在区域文件格式中,标签中的点用反斜杠转义;因此电子邮件地址[email protected]
在区域文件中将表示为john\.doe.example.com.
)
小心区域文件速记
86400 NS example2.com. ; STARTING A LINE WITH A BLANK IS VALID SHORTHAND
@ IN 86400 NS example2.com. ; This is less likely to misbehave
它可能是您格式化问题的一种产物,但区域文件的格式是有意义的(例如,以空白名称开头的行会使该行成为前一个资源记录名称的延续)并且与之对齐 mail
是14400
错误的。
14400 A 1.2.3.4
mail 14400 A 1.2.3.4 ; this alignment is incorrect
mail 14400 A 1.2.3.4 ; there should be no space/tab before mail