我是第一次配置 DNS 服务器。
我的主机名是:mail.example.com
我已将它们添加到named.conf中:
zone "example.com" IN {
type master;
file "example.com.forw.zone"
allow-update {none;};
}
zone "1.10.in-addr.arpa" IN {
type master;
file "example.com.rev.zone"
allow-update {none;};
}
在转发区域文件中,我添加了这些:
@ IN NS @
mail IN A 10.1.1.9
IN MX 1 mail.example.com
如果我想添加来自其他域的其他邮件服务器,则将这些行添加到我的转发区域文件后会出现错误:
mail.branchcompany.com. IN A 10.2.3.4
branchcompany.com IN MX mail.branchcompany.com
我究竟做错了什么?错误是:超出区域数据branchcompany.com
答案1
如果您想指定mail.branchcompany.com
为example.com
(即以下形式的电子邮件地址)的备用邮件服务器[电子邮件受保护]),您可以在区域文件中这样做example.com
(所有名称都以显式长形式写入):
example.com. IN MX 1 mail.example.com.
example.com. IN MX 2 mail.branchcompany.com.
mail.example.com. IN A 10.1.1.9
DNS 区域文件左侧的名称必须全部位于该区域文件所属的域或其子域之一中。右侧可以是任何东西。
如果您在 example.com 区域文件中引用 mail.branchcompany.com,则 mail.branchcompany.com 名称可能仅出现在记录的右侧。
您没有在 example.com 区域文件中声明 mail.branchcompany.com 的 IP 地址:有关branchcompany.com 名称的所有信息都将从branchcompany.com 区域(位于branchcompany.com 的权威DNS 服务器中)查询。 example.com 区域中的此类区域外信息只能由已配置为使用此特定服务器作为其解析器的客户端使用。
此外,由于branchcompany.com DNS 管理员不一定可以访问example.com 区域文件,因此example.com 区域文件中的任何branchcompany.com 记录都将面临与现实不同步的风险。这就是为什么现代 DNS 服务器通常会将此类区域外记录视为错误。
另外,您应该非常小心区域文件中 DNS 名称中是否存在尾随点。你的例子
@ IN NS @
mail IN A 10.1.1.9
IN MX 1 mail.example.com
将(使用默认的 $ORIGIN,也称为 @,由指令定义zone
)扩展为:
example.com. IN NS example.com.
mail.example.com. IN A 10.1.1.9
mail.example.com. IN MX 1 mail.example.com.example.com.
请注意最后一行:由于它没有尾随点,因此会附加默认原点。
同样,这条线
branchcompany.com IN MX 1 mail.branchcompany.com
在同一个区域文件中会像这样解释:
branchcompany.com.example.com. IN MX 1 mail.branchcompany.com.example.com.
换句话说,“电子邮件地址的形式[电子邮件受保护]由邮件服务器 mail.branchcompany.com.example.com 处理”。很可能不是您的意思!