我有一个运行绑定 9.4 的 DNS 服务器(mega.dude - 123.123.123.123)。当我:
dig mega.dude
我没有答案部分。
我有
nameserver 123.123.123.123
在 /etc/resolv.conf
这是我的区域文件:
$TTL 1W
@ IN SOA mega.dude. names.mega.dude. (
2009081502 ; serial
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
NS ns1
NS ns2
MX 10 mail.mega.dude.
A 123.123.123.123
@ A 123.123.123.123
ns1 A 123.123.123.123
ns2 A 123.123.123.123
www CNAME @
mail A 123.123.123.123
以前不是这样的。我读到有一个指向 CNAME 的 mx 记录是邪恶的。所以我改变了这一点。然后我想也许NS也是如此。所以我也改变了这些。还是不行。端口是开放的。我想不通。哦,顺便说一句,所有其他区域都恢复正常。但不是服务器自己的域。所以我知道我在做一些愚蠢的事情。
编辑
这是我的 named.conf 部分:
zone "mega.dude" {
type master;
file "pri/mega.dude";
};
zone "123.123.123.in-addr.arpa" {
type master;
notify no;
file "pri/123.123.123";
};
这是我在服务器本身上得到的响应:
$ dig mega.dude
; <<>> DiG 9.4.3-P1 <<>> mega.dude
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 25170
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;mega.dude. IN A
;; Query time: 134 msec
;; SERVER: 123.123.123.123#53(123.123.123.123)
;; WHEN: Thu Apr 1 08:02:54 2010
;; MSG SIZE rcvd: 28
这是我笔记本电脑的回复:
dig @mega.dude mega.dude
; <<>> DiG 9.4.2-P2.1 <<>> @mega.dude mega.dude
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 21361
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;mega.dude. IN A
;; Query time: 51 msec
;; SERVER: 123.123.123.123#53(123.123.123.123)
;; WHEN: Thu Apr 1 08:20:19 2010
;; MSG SIZE rcvd: 28
query.log 有:
01-Apr-2010 08:02:54.192 client 123.123.123.123#33160: query: mega.dude IN A +
还有什么地方我应该检查?
编辑
我已经做出了 Alnitak 建议的更改 - 至少我认为我理解:
$TTL 1W
@ IN SOA mega.dude. names.mega.dude. (
2009081502 ; serial
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS ns1
IN NS ns2
IN MX 10 mail
A 123.123.123.123
ns1 A 123.123.123.123
ns2 A 123.123.123.123
www A 123.123.123.123
mail A 123.123.123.123
我现在得到一个权威部分,但没有答案部分:
dig mega.dude
; <<>> DiG 9.4.3-P1 <<>> mega.dude
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30264
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;mega.dude. IN A
;; AUTHORITY SECTION:
mega.dude. 86400 IN SOA mega.dude. names.mega.dude. 2009081502 10800 900 604800 86400
;; Query time: 0 msec
;; SERVER: 123.123.123.123#53(123.123.123.123)
;; WHEN: Thu Apr 1 08:33:50 2010
;; MSG SIZE rcvd: 70
所以事实证明,额外的记录导致了一个问题。
这有效:
@ A 210.48.255.42
这不会:
A 210.48.255.42
我现在得到一个完整的回应:
$ dig @mega.dude mega.dude
; <<>> DiG 9.4.3-P1 <<>> @mega.dude mega.dude
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1029
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;mega.dude. IN A
;; ANSWER SECTION:
mega.dude. 604800 IN A 123.123.123.123
;; AUTHORITY SECTION:
mega.dude. 604800 IN NS ns1.mega.dude.
mega.dude. 604800 IN NS ns2.mega.dude.
;; ADDITIONAL SECTION:
ns1.mega.dude. 604800 IN A 123.123.123.123
ns2.mega.dude. 604800 IN A 123.123.123.123
;; Query time: 0 msec
;; SERVER: 123.123.123.123#53(123.123.123.123)
;; WHEN: Thu Apr 1 15:15:58 2010
;; MSG SIZE rcvd: 112
那太棒了!只是一些奇怪的东西......
我从http://www.checkdns.net/quickcheckdomainf.aspx运行测试
我看到两个问题:
在 NS 记录中找不到由 SOA (mega.dude) 定义的主 DNS。
域 mega.dude 没有 MX 记录,但它有域的 A 记录。这个配置不是mega.dude
我得到:
未找到记录 ns1.mega.dude 于 2010 年 4 月 1 日星期四凌晨 1:09:05 (GMT-5) 报告
自从我进行更改以来已经超过 12 小时。我认为我确实在我的区域文件中指定了 MX 记录。SOA 呢?我很高兴它大部分都解决了,但看起来我仍然有一些问题。很明显,mega.dude 不是实际的域名。我现在还不想被黑客入侵。
很抱歉这个问题问了这么久。我想我应该把它编辑下来。还是应该关闭它并发布另一个问题?
谢谢大家!
如果您告诉我们您确实得到了什么以及响应代码,我们将能够更好地诊断,而不是告诉我们您没有得到答案部分。
例如,这将告诉我们您的服务器是否正确地为 提供服务
SOA
,或者您是否收到一些特定的错误消息。FWIW,关于使用别名(即 a
CNAME
)作为aMX
或NS
记录的目标的警告是正确的 - 你不应该这样做。我在这里没有看到任何真正的配置错误,但是您可以进行一些优化,这样您就不需要配置文件中的任何地方的真实域名:
此外,记录也
www
应该是 anA
而不是 a -为 设置别名CNAME
并不是一个好主意,因为当您真正想要的是IP地址。www
$ORIGIN
www IN MX?
www IN NS?
对于列出的主记录,您还有两条实际上相同的记录。
A
那不应该破坏任何东西,也许这只是一个复制和粘贴错误?编辑很好奇重复的 A 记录条目是问题 - 可能缺少
IN
限定符导致解析失败 - 你的 BIND 启动日志会告诉你。关于其他问题 - 在新问题中会更好,最好引用实际域名。如果您使用虚拟数据,我们根本无法对实时 DNS 问题进行有效诊断。
EDIT2我确实解决了这个
SOA
问题 - 中的第一个条目SOA
应该是主名称服务器的名称。请参阅上面的修订示例。如果您请求特定的记录类型会怎样?
您是否尝试过dig的
+trace
选项?它将显示整个委托路径,这可以帮助您找出查询在哪里发生故障。我只是想澄清一下,以防有人想知道。主要问题是空白。但是,感谢所有帮助我解决了其他一些错误的人。干杯!