我使用 bind 设置了两个名称服务器。网站 example.com 可以 ping 并显示正常,所以我知道它的 dns 记录没有问题。但是,浏览 mail.example.com 和 ping mail.example.com 时 90% 都会失败。
有趣的是,有时 ping 测试确实能找到 mail.example.com,而且我可以通过浏览 mail.example.com 正常检查我的网络邮件,但这只能持续大约 30 分钟,之后的任何 ping 测试都会无法解析 mail.example.com,而且我无法导航到 mail.example.com。
顺便说一句,如果我仅通过其公共 IP 而不是主机名 mail.example.com 来 ping 邮件服务器,则一切正常,并且 100% 的时间都能解析。我还可以 100% 的时间在浏览器中导航到我的邮件服务器 IP 来检查我的邮件,一切正常。我知道这不是服务器问题,一定是 DNS 问题。
我的 DNS 服务器有些问题。
请查看下面的信息,看看你是否能告诉我我做错了什么。
当 mail.example.com 在浏览器中加载时,我运行了 ping 测试,得到了以下结果。
Pinging mail.phrixis.com [52.27.16.178] with 32 bytes of data:
Request timed out.
它实际上显示的是我的邮件服务器的 IP。
当我浏览 mail.example.com 并且它没有加载时,我进行了 ping 测试,这就是我得到的结果。
ping mail.phrixis.com
ping: uknown host mail.phrixis.com
它此时根本没有获取邮件服务器IP,所以这就是它无法在浏览器中加载的原因。
就好像我的 DNS 服务器有一半的时间在说“是的,我知道 mail.example.com 在哪里”,而另一半的时间却在说“不,我忘了 mail.example.com 在哪里”。
当登录到 ns1.example.com 时,我搜索 mail.example.com 并得到以下结果。
[root@ns1 ~]# dig @localhost mail.phrixis.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.1 <<>> @localhost mail.phrixis.com
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8581
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;mail.phrixis.com. IN A
;; ANSWER SECTION:
mail.phrixis.com. 86400 IN A 52.27.16.178
;; AUTHORITY SECTION:
phrixis.com. 86400 IN NS ns1.phrixis.com.
phrixis.com. 86400 IN NS ns2.phrixis.com.
;; ADDITIONAL SECTION:
ns1.phrixis.com. 86400 IN A 107.170.58.69
ns2.phrixis.com. 86400 IN A 138.197.212.168
;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: Mon May 8 20:00:02 2017
;; MSG SIZE rcvd: 118
[root@ns1 ~]#
当登录 ns1.example.com 时,我挖掘 example.com 并得到以下结果。
[root@ns1 ~]# dig @localhost phrixis.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.1 <<>> @localhost phrixis.com
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31758
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;phrixis.com. IN A
;; ANSWER SECTION:
phrixis.com. 86400 IN A 162.243.60.215
;; AUTHORITY SECTION:
phrixis.com. 86400 IN NS ns1.phrixis.com.
phrixis.com. 86400 IN NS ns2.phrixis.com.
;; ADDITIONAL SECTION:
ns1.phrixis.com. 86400 IN A 107.170.58.69
ns2.phrixis.com. 86400 IN A 138.197.212.168
;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: Mon May 8 20:03:58 2017
;; MSG SIZE rcvd: 113
[root@ns1 ~]#
这是我的 named.conf 文件
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
#listen-on port 53 { 127.0.0.1; };
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-query { any; };
allow-transfer { localhost; 138.197.212.168; };
recursion no;
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";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
zone "phrixis.com" IN {
type master;
file "phrixis.com.zone";
allow-update { none; };
};
这是我的 example.com.zone 文件
$TTL 86400
@ IN SOA ns1.phrixis.com. root.phrixis.com. (
2013042201 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
; Specify our two nameservers
IN NS ns1.phrixis.com.
IN NS ns2.phrixis.com.
; Resolve nameserver hostnames to IP, replace with your two droplet IP addresses.
ns1 IN A 107.170.58.69
ns2 IN A 138.197.212.168
; Define hostname -> IP pairs which you wish to resolve.
@ IN A 162.243.60.215
WWW IN A 162.243.60.215
mail IN A 52.27.16.178
IN MX 10 mail.phrixis.com.
由于我是运行 DNS 服务器的新手,因此非常感谢您的任何回复。
答案1
很明显,为什么 DNS 解析有时有效,有时无效。您已公布了两个权威名称服务器 -ns1.phrixis.com.
和ns2.phrixis.com.
。其中一个 - ns2.phrixis.com.
- 未解析 DNS 条目 -
$ dig @ns1.phrixis.com mail.phrixis.com +short 52.27.16.178 $ dig @ns2.phrixis.com mail.phrixis.com +short $
解决方案 - 确保 ns2 也具有正确的记录。我可以看到您有 ns2 的允许传输块,allow-transfer { localhost; 138.197.212.168; };
但您需要验证区域记录是否正在复制到 ns2。
如果 ns2 是辅助 DNS 服务器,请确保它具有正确的配置,并且从 ns1 到 ns2 的区域传输正常进行。
还要确保 ns2 没有任何防火墙阻止端口 53 udp/tcp。
参考设置从属 DNS 服务器 -http://www.microhowto.info/howto/configure_bind_as_a_slave_dns_server.html