我们有一个名为“domain.com”的 Windows 2003 Active Directory 域,这也恰好是我们网站的域名。最近,我们切换到使用 AD 服务器作为 DNS 服务器,但遇到了一个小问题。使用自己的 SMTP 服务器的盒子现在无法发送邮件,因为根据“dig”,AD 不包含 DNS 记录:
[user@hostname]$ dig MX domain.com
; <<>> DiG 9.4.2-P2 <<>> MX domain.com
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41859
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;domain.com. IN MX
;; AUTHORITY SECTION:
domain.com. 3600 IN SOA win2003adserver.domain.com. hostmaster.domain.com. 6168 900 600 86400 3600
;; Query time: 3 msec
;; SERVER: 10.10.10.27#53(10.10.10.27)
;; WHEN: Mon Jul 27 12:42:44 2009
;; MSG SIZE rcvd: 98
因此,由于没有有效的 MX 记录,因此它试图通过未运行 SMTP 的主 AD 服务器发送邮件。我应该为 mail.domain.com 获取一个 MX 记录,其中包含邮件服务器的有效 IP。
在这种情况下,添加 MX 记录的正确方法是什么?根据我们的 Windows 管理员的说法,AD 的 DNS 中有一个 MX 记录,但根据上述内容,它不会将其转发给任何人。
解决方案
在这种情况下,AD 服务器正在执行它们被告知要做的事情,因为没有输入指向我们邮件服务器的“domain.com”的 MX 记录(我们的 AD 管理员输入了“mail.domain.com”子域的 MX 记录,而不是“domain.com”,因为他没有阅读屏幕上有关输入新 MX 记录的说明)。
我删除了 MX 记录并正确添加了一条新记录,一切开始正常工作。
答案1
根据您上面的“挖掘”,您的 AD DNS 服务器中没有“domain.com”的 MX 记录。
再次与您的“Windows 管理员”沟通,确保他们了解您的要求。如果他们已添加记录但仍然没有“显示”,则他们需要仔细检查 AD 复制(我冒险假设 DNS 区域是“AD 集成”)是否在 DNS 服务器计算机上正常运行。
添加 MX 记录的“正确方法”是通过“DNS 管理”管理单元或从可以操作 Microsoft DNS 服务器的各种命令行工具之一。
(这又是一个例子,说明为什么将您的 AD 域命名为与有效的 Internet 域名相同不是一个好主意。)
答案2
在通过 Windows GUI 管理 DNS 方面,我并不是很热衷,除了传统的 A 记录和 CNAME 别名以及与 AD 的集成之外,其余的都可以改进。
无论如何,回答你最初的问题,我以前遇到过这种情况。你遇到了 DNS 拆分的情况。问题是你的域名可能在企业根 NS 中注册。查询记录时,它会首先检查那里。只是出于好奇,这些机器是否使用相同的 DNS 服务器进行名称解析或其他来源?
一种选择是保留拆分 DNS 原样并在根 NS 上设置 MX 记录。如果您有权访问根 ns,如果它是 Linux,您可以编辑 named.conf 并指定权威 DNS 服务器来响应对该域的查询。
您还可以设置影子子域名,例如[电子邮件保护]
请告诉我事情进展如何。
答案3
检查您是否正在运行裂脑 DNS。基本上,您查询的 DNS 服务器对 DNS 域具有权威性,但对运行 AD DNS 的服务器则不具有权威性。当您决定简化 Active Directory DNS 结构时,管理员可能会留下一组 DNS 用于外部目的,另一组 DNS 用于内部目的。并且没有在它们之间设置复制