如果使用视图,绑定转发将无法正确进行

如果使用视图,绑定转发将无法正确进行

我有两台安装了 Bind 的服务器。一个是用于解析我拥有的域名的公共 DNS。另一个是我想为我的客户使用的另一个 DNS。

在第一个上,我将转发设置为第二个,并且为域创建了一个转发区域,指向第二个绑定服务器。

服务器1:

acl internals {
  172.16.0.0/24;
  127.0.0.1;
  };
acl domain {
  192.168.1.0/24;
};
acl externals {
  any;
};
dnssec-enable yes;
dnssec-validation yes;
#dnssec-lookaside auto;

version "Not your job";
recursion yes;

allow-transfer { internals; domain;};
// restrict query access
allow-query { internals; externals; domain; };
// restrict recursion
allow-recursion { internals; domain; };

auth-nxdomain no;    # conform to RFC1035
forwarders {
  8.8.8.8;
  8.8.4.4;
};



view "externals" {
match-clients { "externals"; };
recursion no;

zone "my_customer_domain.com" {
type forward;
forwarders {
    172.16.0.150;
    };
 };
};

Server2 具有相同类型的配置,但是如果请求来自“内部”,则仅解析 my_*customer_*domain.com,内部答案为 172.16.0.34;如果请求来自“外部”,则解析公共 IP;如果来自“域”,则解析 192.168.1.4。

如果我从我的电脑(与“内部”相同的子网)到“公共”服务器进行 DIG,我就会得到正确的答案(例如:172.16.0.34)

如果我从域 PC(与“域”相同的子网)到“公共”服务器进行 DIG,我将获得“内部” IP

如果我从外部电脑进行 DIG(dig NS my_*customer_*domain.com @8.8.8.8 )我得到了“内部”ip

即使我尝试从 server2 访问 google.com,所有其他类型的查询都不会出现任何问题。

注意:server1 在“域”和“内部”中具有“根区域”。Server2 仅对“内部”具有“根区域”

服务器1:ubuntu 20.04.05,Bind 9.16

服务器2:ubuntu 20.04.05,Bind 9.16

因此,来自 Internet 的用户可以通过域 my_customer_domain.com 访问我的 server1(server1 是公共的,server2 只是内部的)。然后,server1 应该将查询转发到 server2,但 server2 使用记录中定义的区域的内部 ip 进行解析。我认为这是因为查询来自 server1,而 server1 是 server2 的“内部”,所以主要问题是....如何实现正确的行为?

相关内容