我对 DNS 区域中的 MX 和通配符 A 条目有点困惑。
想象一个区域 foobar.com 具有这些 dns 设置(NS 设置在那里,省略)
foobar.com IN A 1.2.3.4
*.foobar.com IN A 1.2.3.4
foobar.com IN MX 10 mail.otherhost.com
发送邮件至[电子邮件受保护]这将转到 mail.otherhost.com。好的。
发送邮件至[电子邮件受保护]这将转到 1.2.3.4。
据我了解,这是正确的https://www.ietf.org/rfc/rfc1912.txt有“2.7通配符记录”和示例(反之亦然,但无论如何)。
我现在的问题是:在获取(“解析”)MX 主机时,像 Postfix 这样的 MTA 如何从主机部分“剥离”子域部分?
我的理解问题是:如果顶级域名是.com,这很简单。 Host是.com之前的部分。但有许多顶级域名带有次顶级域名,例如.co.at(奥地利)。
有任何想法吗?
答案1
在获取(“解析”)MX 主机时,像 Postfix 这样的 MTA 如何从主机部分“剥离”子域部分?
他们不这样做。请求地址的 MX 记录。如果不存在,则使用 A 记录来确定目标 IP 地址。
在您的示例中[email protected]
,用于传递的子域是some-subdomain.foobar.com
。发送 MTA 请求该地址的 MX。在您的示例中没有记录,因此请求 A 记录。除了通配符之外没有其他任何一个*.foobar.com
匹配,返回地址1.2.3.4
。这是尝试递送的地址。
CNAME 记录使此过程变得更加复杂,但也不是很复杂:如果存在 CNAME,那么它会先于其他任何事情进行解析。 (这就是为什么同一个域条目不能同时拥有 CNAME 和 MX。)