我已经在centos 7上build立了一个BIND DNS服务器。我已经创build了主区域logging,如下所示:
$ttl 38400 loool.ro. IN SOA ns1.loool.ro. owner.yahoo.com. ( 1421842090 10800 3600 604800 38400 ) loool.ro. IN NS loool.ro. loool.ro. IN A 86.34.156.51 loool.ro. IN MX 10 loool.ro. loool.ro. IN NS ns1.loool.ro. ns1.loool.ro. IN A 86.34.156.51
86.34.156.51是一个公共IP地址,我可以通过访问服务器。 端口53打开,用免费的在线端口检查器检查。 named.service正在侦听端口53.域名已被注册,ns1也被注册。 但是当我用dnslookup工具检查时,ns1.loool.ro的答案不会来,3秒后超时。
BIND服务器configuration文件如下:
options { listen-on port 53 { any; }; #listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-transfer { none; }; recursion yes; dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; pid-file "/run/named/named.pid"; session-keyfile "/run/named/session.key"; also-notify { }; allow-query { any; }; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; zone "loool.ro" { type master; file "/var/named/loool.ro.hosts"; };
如果我检查本地主机挖来的答案来,并正确的,但从其他主机不来。 如果我将allow-query从任何地方设置为localhost,那么messages.log文件会logging被拒绝的查询和IP地址,以便查询到达。
在named.service上启动messages.log显示如下:
Jan 21 14:31:35 servera命名为[38627]:使用默认的UDP / IPv4端口范围:[1024,65535]
Jan 21 14:31:35 servera命名为[38627]:使用默认的UDP / IPv6端口范围:[1024,65535]
1月21日14:31:35 servera命名为[38627]:监听IPv4接口lo,127.0.0.1#53
1月21日14:31:35 servera命名为[38627]:侦听IPv4接口em1,10.10.10.100#53
1月21日14:31:35 servera命名为[38627]:侦听IPv4接口em1,86.34.156.51#53
用allow-query = localhost显示如下:
Jan 21 14:30:55 servera named[38403]: client 109.99.188.88#54374 (loool.ro): query 'loool.ro/A/IN' denied Jan 21 14:31:08 servera named[38403]: client 74.125.17.211#53668 (loool.ro): query 'loool.ro/AAAA/IN' denied
问题是什么? 如果allow-query是any,那么messages.log中没有任何错误日志。 这将是一个networkingconfiguration问题或问题是与Linux(端口或selinux)和BIND服务器(misconfig)? BIND是否会删除查询?
挖:
loool.ro. 0 IN NS ns1.loool.ro. ;; Received 71 bytes from 192.162.16.20#53(sec-dns-a.rotld.ro) in 88 ms loool.ro. 38400 IN A 86.34.156.51 loool.ro. 38400 IN NS ns1.loool.ro. loool.ro. 38400 IN NS loool.ro. ;; Received 101 bytes from 10.10.10.100#53(ns1.loool.ro) in 1 ms
正如Andrew B所build议的,我已经捕获了本地主机(dns服务器所在的位置)上的数据包,这里是结果,我希望有人知道这里有什么问题或错误:
$tcpdump -i em1 -vvv -s 0 -l -n port 53 tcpdump: listening on em1, link-type EN10MB (Ethernet), capture size 65535 bytes 82.79.24.76.14761 > 10.10.10.100.domain: [udp sum ok] 3532 [1au] A? loool.ro. ar: . OPT UDPsize=4096 OK (37) 22:50:49.723204 IP (tos 0x0, ttl 64, id 63258, offset 0, flags [none], proto UDP (17), length 115) 10.10.10.100.domain > 82.79.24.76.14761: [udp sum ok] 3532*- q: A? loool.ro. 1/1/2 loool.ro. [10h40m] A 86.34.156.51 ns: loool.ro. [10h40m] NS ns1.loool.ro. ar: ns1.loool.ro. [10h40m] A 86.34.156.51, . OPT UDPsize=4096 OK (87) 22:50:49.987990 IP (tos 0x0, ttl 64, id 35514, offset 0, flags [DF], proto UDP (17), length 72) 10.10.10.100.52857 > 193.231.100.130.domain: [udp sum ok] 2042+ PTR? 38.124.41.103.in-addr.arpa. (44)
你的名字服务器不能从互联网上查询。 胶水是存在的,但是如果您的域名服务器无法收到回复,这将无济于事。
这里是+trace输出的尾部类似于lVlint67的,但是设置了+additional标志:
loool.ro. 86400 IN NS ns1.loool.ro. ns1.loool.ro. 86400 IN A 86.34.156.51 dig: couldn't get address for 'ns1.loool.ro': no more
胶水logging在那里,但别的是错的。 如果我尝试自己查询该名称服务器…
$ dig @86.34.156.51 loool.ro ; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> @86.34.156.51 loool.ro ; (1 server found) ;; global options: +cmd ;; connection timed out; no servers could be reached
域名服务器无法访问,所以域名对于互联网来说已经死了。 另外,你只有一个NSlogging被定义。 要获得适当的弹性,至less需要两个位于不同物理位置的名称服务器。 注册商的网站真的不应该让你应用这个configuration。 🙁
我也推荐阅读我们应该主办我们自己的名字服务器? 。
看起来您的注册商缺乏相应的胶水logging 。
$ dig +trace loool.ro ; <<>> DiG 9.9.5 <<>> +trace loool.ro ;; global options: +cmd . 929 IN NS j.root-servers.net. . 929 IN NS m.root-servers.net. . 929 IN NS e.root-servers.net. . 929 IN NS f.root-servers.net. . 929 IN NS l.root-servers.net. . 929 IN NS g.root-servers.net. . 929 IN NS h.root-servers.net. . 929 IN NS k.root-servers.net. . 929 IN NS c.root-servers.net. . 929 IN NS a.root-servers.net. . 929 IN NS d.root-servers.net. . 929 IN NS i.root-servers.net. . 929 IN NS b.root-servers.net. . 929 IN RRSIG NS 8 0 518400 20150131050000 20150121040000 16665 . X95MjU0E0exFVnq9oEJBi/Dih/wwyDhI0NoJ10bj1jthr6kjVElQgZTH l9XepwZOzSWiTzBXrhiMCaAd4MBIiDpNVHl5r8P0BAiw7GfB2HAQkEcr WPTcJe9Y0JX6ruSbcD93gWbvd4/rHZXpgB13y6hWJNlY0zHuu7Iqv4h9 H8s= ;; Received 397 bytes from 8.8.8.8#53(8.8.8.8) in 1025 ms ro. 172800 IN NS dns-at.rotld.ro. ro. 172800 IN NS dns-ro.denic.de. ro. 172800 IN NS sns-pb.isc.org. ro. 172800 IN NS primary.rotld.ro. ro. 172800 IN NS sec-dns-a.rotld.ro. ro. 172800 IN NS sec-dns-b.rotld.ro. ro. 86400 IN NSEC rocks. NS RRSIG NSEC ro. 86400 IN RRSIG NSEC 8 1 86400 20150131050000 20150121040000 16665 . d0xAIZZ3+EiqsKePxYP/ym8OEvp4bywmHIUTSigk6CUie8512rpuvXM2 vAL5RRuXDdCCG/0nP4bfR6cz0dgN9lTLdJz68kd4nRYZcTsz5ZLZkQ1T zmyiKEzzRK7PAVUTTfMG94NrHzIIBwLTYdhOqHPWHN4TQC8NYf2hJlyQ CqI= ;; Received 613 bytes from 193.0.14.129#53(k.root-servers.net) in 1130 ms loool.ro. 86400 IN NS ns1.loool.ro. dig: couldn't get address for 'ns1.loool.ro': no more