基本上,
我试图build立一个指向另外两个内部DNS服务器的DNS服务器。
内部DNS服务器:192.168.0.4 // 192.168.0.5我的邮箱:192.168.97.6 .. name是kerrigan.zipp
我已经绑定configuration,客户端可以打内部地址,但似乎无法抓住任何外部。
[root@zeratul ~]# ping kerrigan.zipp -- Ping succeeds -- [root@zeratul ~]# ping google.com ping: unknown host google.com
在Kerrigan.zipp上做一个tcpdump,我可以看到google.com的请求正在对dns1(192.168.0.4)进行,并且回复正在回来。
15:30:37.775949 IP kerrigan.zipp.50825 > dns1.internal.box.domain: 13756+ A? google.com. (28) 15:30:37.776383 IP dns1.internal.box.domain > kerrigan.zipp.50825: 13756 4/13/8 A 72.14.204.99, A 72.14.204.103, A 72.14.204.104, A 72.14.204.147 (491)
好像kerrigan.zipp正在收到答复,然后不做任何事情。 如果我把从dns1返回的IP地址,我可以ping没有问题。
[root@zeratul ~]# ping 72.14.204.99 -- Ping succeeds --
有任何想法吗? 哦,我关掉了防火墙。 端口53 tcp / udp已打开。
挖的命令的结果..这些表明,我可以从我的转发DNS,但不是我的新的本地DNS:
[root@kerrigan named]# dig @192.168.0.4 google.com ; <<>> DiG 9.7.3-RedHat-9.7.3-1.fc14 <<>> @192.168.0.4 google.com ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33681 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 13, ADDITIONAL: 8 ;; QUESTION SECTION: ;google.com. IN A ;; ANSWER SECTION: google.com. 256 IN A 72.14.204.104 google.com. 256 IN A 72.14.204.147 google.com. 256 IN A 72.14.204.99 google.com. 256 IN A 72.14.204.103 ;; Query time: 1 msec ;; SERVER: 192.168.0.4#53(192.168.0.4) ;; WHEN: Wed Mar 2 16:33:26 2011 ;; MSG SIZE rcvd: 491 [root@kerrigan named]# dig @127.0.0.1 google.com ; <<>> DiG 9.7.3-RedHat-9.7.3-1.fc14 <<>> @127.0.0.1 google.com ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 61769 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;google.com. IN A ;; Query time: 1 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Wed Mar 2 16:33:36 2011 ;; MSG SIZE rcvd: 28
尝试使用主机命令来查看服务器正在返回。 命令host google.com dns1.internal.box.domain会告诉你什么dns1.internal.box.domain认为google.com的地址是。 (谷歌应该有多个地址,大多数网站有一个。)尝试与您的每个DNS服务器。
也请尝试getent hosts google.com 。 这将为google.com提供parsing器的地址版本。 所有四个命令你应该得到大致相同的结果。
编辑:要运行主机命令,您可能需要安装bind9-host包来获取host命令。 但是,它通常由其他软件包安装。
编辑2:如果其中一个DNS服务器没有向您返回结果,请检查其安全设置。 您可能还需要暂时启用DNS服务器上的日志logging。 以下是我在绑定服务器上使用的日志logging规范块。
伐木{
频道query.log {
文件“/var/log/query.log”;
//将严重性设置为dynamic以查看所有debugging消息。
严重性debugging3;
};
//select性启用日志logging
类别默认{query.log; };
类别一般{query.log; };
类别客户端{query.log; };
类别不匹配{query.log; };
类别networking{query.log; };
类别查询{query.log; };
类别安全{query.log; };
类别派遣{query.log; };
category delegation-only {query.log; };
};
那么,我明白了。
/ var / log / messages显示了这一点:
Mar 2 21:35:32 kerrigan named[8138]: error (broken trust chain) resolving 'google.com/A/IN': 192.168.0.4#53
所以我想到了dnssec。 以前我曾经评论过他们; 我在/etc/named.conf中明确地将它们设置为“no”
dnssec-enable no; dnssec-validation no;
我的客户可以打中间pipe道,并ping我的绑定服务器的主区域。 >:3
破坏的信任链最常见的原因是机器上的时间显着错误。 BIND的作者select默认开启DNSSEC,所以最好能解决时间问题,而不是closuresDNSSEC。 所以:
date -s或ntpdate <ip-address>手动设置服务器上的date -s临时解决问题 如果你的NTPconfiguration了一个可以通过DNS名称访问的时间源,而你的NTP使用失败的DNS服务器作为它的DNS,那么你最终可能会因为时间的错误而导致DNS失败,而NTP是未能纠正时间,因为DNS失败。 例如,当我重新启动我的家Raspberry Pi路由器,我最终在/var/log/daemon.log中:
Oct 20 05:23:00 pirouter ntpd_intres[579]: host name not found: 2.debian.pool.ntp.org
你可以: