伙计们,我希望可以在这里找到帮助。
我在设置仅权威 DNS 服务器时遇到了问题。
一台服务器是云虚拟服务器 XL(主服务器和 Web 服务器 - 具有 Plesk),另一台是云虚拟服务器 S(从属服务器)。
请注意,服务器具有不同的 IPS 并且不在同一范围内,但它们是这样的:XL 虚拟服务器(8X.1XX.1XX.2XX)和 S 虚拟服务器(9X.9X.2XX.9X)。
我知道有更多类型的 DNS,但通过一些简单的阅读和谷歌搜索,我发现 Authoritative-Only 最适合我的使用。
我目前遇到的问题是我的域名无法到达我的域名服务器。我收到一条消息称,所有域名服务器均未找到该服务器,但是,主域指向正确,并解析至主机。
我逐字逐句地跟着读,唯一遗漏的部分是反向区域(in-addr.arpa)我不确定如何处理这些问题。不过,我确实在他们的控制面板(1and1 控制面板)中将主机名和反向 DNS 设置为 vps1.xxx.space 和 vps2.xxx.space(希望我的直觉是正确的,这个问题应该可以得到解决?——但我可能又错了)。
我的db.xxx.空间文件如下所示:
root@vps1:~# sudo nano /etc/bind/zones/db.xxx.xxx
GNU nano 2.5.3 File: /etc/bind/zones/db.xxx.space
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA ns1.xxx.space. admin.xxx.space. (
5 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
; Name Servers
xxx.space. IN NS ns1.xxx.space.
xxx.space. IN NS ns2.xxx.space.
; A records for name servers
ns1 IN NS 8X.1XX.1XX.2XX
ns2 IN NS 9X.9X.2XX.9X
; other A records
@ IN A 8X.1XX.1XX.2XX
www IN A 8X.1XX.1XX.2XX
vps1.xxx.space. IN A 8X.1XX.1XX.2XX
vps2.xxx.space. IN A 9X.9X.2XX.9X
xxx.space. IN MX 10 mail.xxx.space.
mail.xxx.space. IN A 8X.1XX.1XX.2XX
ns1.xxx.space. IN A 8X.1XX.1XX.2XX
ns2.xxx.space. IN A 9X.9X.2XX.9X
www.xxx.space. IN CNAME xxx.space.
我的/etc/bind/named.conf.local文件(主文件):
//
// Do any local configuration here
//
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
zone "xxx.space" {
type master;
file "/etc/bind/zones/db.xxx.space";
allow-transfer { 9X.9X.2XX.9X; };
};
我的/etc/bind/named.conf.options文件:
options {
directory "/var/cache/bind";
recursion no;
allow-transfer { none; };
// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk. See http://www.kb.cert.org/vuls/id/800113
// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0's placeholder.
// forwarders {
// 0.0.0.0;
// };
//========================================================================
// If BIND logs error messages about the root key being expired,
// you will need to update your keys. See https://www.isc.org/bind-keys
//========================================================================
dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};
我的/etc/bind/named.conf文件:
// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the
// structure of BIND configuration files in Debian, *BEFORE* you customize
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
我的/etc/bind/named/conf.local (从属)文件:
//
// Do any local configuration here
//
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
zone "xxx.space" {
type slave;
file "slaves/db.xxx.space";
masters { 8X.1XX.1XX.2XX; }; #ns1 private IP
};
我对应该具有名称服务器的主域 (xxx.space) 的高级 DNS 设置。namecheap.com 的高级面板
其余域名均设置了自定义名称服务器选项并指向 ns1.xxx.space 和 ns2.xxx.space 名称服务器。
我也通过高级 DNS 面板在 namecheap.com 注册了名称服务器!
我的 Plesk DNS 配置:Plesk 截图
如果您还有其他问题,请随时提问。
其他信息:
- 所有域名(除少数域名外 - 运行不太好)均托管在 namecheap.com
- 服务器托管于 1and1.com - 德国
- 服务器上的所有内容都是最新的。(BIND 等)
- 服务器运行的是 Ubuntu 16.04
我的问题:
- 什么原因可能导致我出现这些问题?
- 是否会存在问题,因为我使用的 IP 不在同一范围内?
- 我应该如何解决文件中两个单个 IP 的反向区域?
我感谢任何帮助、建议或指点!
答案1
正确解决问题。从最底层开始,为了让您的 NS 服务器为您的域提供记录,相关域需要列出它们。
对 执行 whois 查询example.com
,列出了哪些 NS 服务器?如果正确,请转到下一步。
您的 NS 服务器的主机名是否example.com
也位于(您尝试授权的域)?那么您需要胶水记录。您的那些记录有效吗?测试它们。
.com
例如,如果它是一个域名
$ dig +short com. NS
a.gtld-servers.net.
i.gtld-servers.net.
m.gtld-servers.net.
k.gtld-servers.net.
l.gtld-servers.net.
g.gtld-servers.net.
e.gtld-servers.net.
h.gtld-servers.net.
j.gtld-servers.net.
c.gtld-servers.net.
d.gtld-servers.net.
f.gtld-servers.net.
b.gtld-servers.net.
$ dig +norec @h.gtld-servers.net. example.com NS
...
;; QUESTION SECTION:
;example.com. IN NS
;; AUTHORITY SECTION:
example.com. 172800 IN NS ns1.example.com.
example.com. 172800 IN NS ns2.example.com.
;; ADDITIONAL SECTION:
ns1.example.com. 172800 IN A 10.10.10.1
ns2.example.com. 172800 IN A 10.10.10.2
如果您的 NS 服务器的主机名不在您所授权的同一域上,请测试这些记录并查看它们是否能解析。
如果您的胶水存在,或者您的 NS 主机名解析正确,那么外界真的可以与您的 NS 服务器通信吗?直接从您没有进行特殊调整的外部主机查询它们。
dig @ns1.example.net example.com
到目前为止,我假设您遇到了问题,因为根据您的数据库文件的内容进行判断,除非您遗漏了信息 - 它看起来不正确,因为它缺少 SOA。
答案2
所以,伙计们,我自己解决了这个问题(在这里发帖几天后)。
1and1 开始在其基于云的服务器上提供基于硬件的防火墙。我的配置是正确的,服务器端的一切都设置正确,但没有端口被允许通过。
手动允许后,服务器开始正常运行。
您可以通过进入 1and1 控制面板、选择您的服务器(在“合同和产品概述”下)、然后选择“选择产品”、再选择“服务器和云”并选择您要编辑的服务器来进行设置。
当另一个面板打开时,选择“网络”和“防火墙策略”,然后您可以在那里修改/创建防火墙策略。当您输入配置时,您也会在那里获得预定义的值。所以您不必谷歌搜索端口等。
这解决了我所有的服务器问题和 DNS 问题。
另外,感谢您的所有帮助,一些评论很有帮助。