我的组织的域名是示例.com。该组织的名称服务器名为ns1.example.com和ns2.example.com。
我是子域名的管理员project.example.com. 我们的 IP 地址空间是10.0.0.0/22(10.0.0.0 - 10.0.3.255)。
我有一个主名称服务器和一个辅助名称服务器(ns1.project.example.com (10.0.0.2)和ns2.project.example.com (10.0.1.2), 分别)。
这些名称服务器是 Debian 9.5 下运行的 Bind 9.10.3。
我已经配置了这些区域(对于这些区域,我拥有权威或者委托了权威):
- project.example.com
- 0.0.10.in-addr.arpa
- 1.0.10.in-addr.arpa
- 2.0.10.in-addr.arpa
- 3.0.10.in-addr.arpa
我所在组织的域名服务器在project.example.com命名空间到我的名称服务器。
对于我没有权限、没有委托、没有转发、没有缓存的名称的查询,我使用“仅转发”模式将查询转发到ns1.example.com/ns2.example.com。
我已将命名空间的一部分拆分为子域子项目.example.com。此子域的 IP 地址空间为10.0.3.0/24。
只有一个名称服务器子项目.example.com. 其主机名是ns1.sub.project.example.com (10.0.3.2)。
该名称服务器是 CentOS 7.3 下运行的 Bind 9.9.4。
对于正向查找子项目.example.com,我委托给ns1.sub.project.example.com (10.0.3.2)。我确实有所需的胶水记录。
对于反向查找3.0.10.in-addr.arpa,我转发(而不是委托)给ns1.sub.project.example.com (10.0.3.2)我不能委托他人,因为我无法控制0.10.in-addr.arpa。
问题
有一种特殊情况会导致无法正常工作。这种情况发生在我关闭主名称服务器以测试次要的名称服务器。
假设我在 Windows 台式机上打开命令提示符,它是my-host.example.com我无法查询主机-1.sub.project.example.com。请求超时。
当我在辅助名称服务器上运行 tcpdump 时ns2.project.example.com (10.0.1.2),我看到查询来自ns1.example.com。然而,与其将其委托给ns1.sub.project.example.com,它将其转发回ns1.example.com。
重新表述本节的开头段落,如果我的基本的名称服务器ns1.project.example.com (10.0.0.2)正在运行。如果主名称服务器已关闭,并且辅助名称服务器ns2.project.example.com (10.0.1.2)受到质疑,这就是失败的案例。
我在下面附上了我的配置文件。
我该如何解决这个问题?
区域配置(NS 记录)
; project.example.com
@ NS ns1
@ NS ns2
sub NS ns1.sub
; Forward 3.0.10.in-addr.arpa rather than delegate it
; We can't delegate since we don't own 0.10.in-addr.arpa.
; That's why the line below is commented out.
; 203.240.10.in-addr.arpa. NS centos-s1.ipa
; Glue record
ns1.sub A 10.0.3.2
project.example.com 主名称服务器配置
controls {};
acl "internal-hosts" { 10.0.0/22; 127/8; };
acl "external-hosts" { 10/8; 192.168/16; 172.16/12; };
view "internal-view" {
match-clients { "internal-hosts"; };
zone "project.example.com" {
type master;
file "db.project.example.com_internalView";
forwarders { };
};
zone "0.0.10.in-addr.arpa" {
type master;
file "db.10.0.0";
forwarders { };
};
zone "1.0.10.in-addr.arpa" {
type master;
file "db.10.0.1";
forwarders { };
};
zone "2.0.10.in-addr.arpa" {
type master;
file "db.10.0.2";
forwarders { };
};
zone "3.0.10.in-addr.arpa" {
type forward;
forwarders { 10.0.3.2; };
};
// Internal-only zone
zone "31.172.in-addr.arpa" {
type master;
file "db.172.31";
forwarders { };
};
};
view "external-view" {
match-clients { "external-hosts"; };
zone "project.example.com" {
type master;
file "db.project.example.com_externalView";
forwarders { };
};
zone "0.0.10.in-addr.arpa" {
type master;
file "db.10.0.0";
forwarders { };
};
zone "1.0.10.in-addr.arpa" {
type master;
file "db.10.0.1";
forwarders { };
};
zone "2.0.10.in-addr.arpa" {
type master;
file "db.10.0.2";
forwarders { };
};
zone "3.0.10.in-addr.arpa" {
type forward;
forwarders { 10.0.3.2; };
};
};
project.example.com 辅助名称服务器配置
controls {};
acl "internal-hosts" { 10.0.0/22; 127/8; };
acl "external-hosts" { 10/8; 192.168/16; 172.16/12; };
masters "my-master" { 10.0.0.2; };
view "internal-view" {
match-clients { "internal-hosts"; };
zone "project.example.com" {
type slave;
file "bak.project.example.com_internalView";
masters { my-master; };
forwarders { };
};
zone "0.0.10.in-addr.arpa" {
type slave;
file "bak.10.0.0";
masters { my-master; };
forwarders { };
};
zone "1.0.10.in-addr.arpa" {
type slave;
file "bak.10.0.1";
masters { my-master; };
forwarders { };
};
zone "2.0.10.in-addr.arpa" {
type slave;
file "bak.10.0.2";
masters { my-master; };
forwarders { };
};
zone "3.0.10.in-addr.arpa" {
type forward;
forwarders { 10.0.3.2; };
};
// Internal-only zone
zone "31.172.in-addr.arpa" {
type slave;
file "bak.172.31";
masters { my-master; };
forwarders { };
};
};
view "external-view" {
match-clients { "external-hosts"; };
zone "project.example.com" {
in-view "internal-view";
};
zone "0.0.10.in-addr.arpa" {
in-view "internal-view";
};
zone "1.0.10.in-addr.arpa" {
in-view "internal-view";
};
zone "2.0.10.in-addr.arpa" {
in-view "internal-view";
};
zone "3.0.10.in-addr.arpa" {
// in-view "internal-view";
type forward;
forwarders { 10.0.3.2; };
};
};