我正在尝试为域名设置 DNS 记录,以便mail.domain.com
使用与任何其他请求不同的服务器*.domain.com
。当我试图弄清楚如何做到这一点时,我意识到我可能会陷入困境。
我尝试了一些方法,但最终由于错误导致无法加载“zone domain.com/IN”。当时的区域文件如下所示(不隐藏信息,因为简单的 DNS 查找无论如何都会显示所有内容):
$TTL 1800
@ IN SOA ns1.domain.com. hostmaster.domain.com. (
1393205447 ; last update: 2014-02-24 01:30:47 UTC
3600 ; refresh
900 ; retry
1209600 ; expire
1800 ; ttl
)
IN NS ns1.domain.com.
NS ns2.domain.com.
NS ns3.domain.com.
MX 10 mail.domain.com.
ns1.domain.com. IN A 198.000.000.125
ns2.domain.com. IN A 141.0.000.89
ns3.domain.com. IN A 198.000.00.114
@ IN A 107.000.00.138
* CNAME @
mail.domain.com. IN A 162.00.000.72
mail CNAME mail.domain.com.
因此,首先,我试图做的是可接受的“良好做法/最佳实践”,其次,如果是,我该如何设置,以便邮件请求转到第二台服务器的 IP,然后从那里,我是否需要将 MX 记录设置为:priority mail.domain.com
。(我在将 mail.domain.com 请求和 mx DNS 设置重定向到第二台服务器 IP 方面具体做错了什么
注意,我正在使用 digitalocean,所以我有一个可以为我创建区域文件的 DNS 输入面板。
答案1
为位于不同网络上的主机创建 A 记录时,无需指定 FQDN。
更正您的区域配置:
mail IN A 162.00.000.72
@ IN MX 10 mail.domain.com
从客户角度来看,情况如下:
- 当邮件服务器检查 MX 路由时,它会找到
mail.domain.com
主要路由。 - 当邮件服务器进行查找时,
mail.domain.com
它将返回162.00.000.72
为什么你的 A 记录中不需要 FQDN:
mail.domain.com. IN A 162.00.000.72
这完全没问题。
mail.3rdparty.com. IN A 162.00.000.72
这是无效的。原因:你没有权威3rdparty.com
mail IN A 162.00.000.72
这是有效的。原因:任何不以结尾的单词.
都会$ORIGIN
附加上。
所以,mail
实际上意味着mail.domain.com
,如果你有$ORIGIN = domain.com
一些历史:
实际上.
意味着所有域的根。
以此记录为例:
mail.domain.com.
它的含义是:
mail
:子域名或“主机”domain
:域com
:顶级域名 (TLD).
: 根
这就是为什么不将 a 附加.
到您的记录中会导致意外记录,例如mail.domain.com.domain.com.
但在大多数现代 DNS 服务器中,它们都假定您指的是末尾的点。