我可以使用 BIND 通过双宿主 DNS 服务器为两个隔离网络提供 DNS 解析吗?

我可以使用 BIND 通过双宿主 DNS 服务器为两个隔离网络提供 DNS 解析吗?

我正在设置两个小型独立网络。这两个网络都没有互联网连接。我试图通过我现有的单个 Ubuntu 服务器为这两个网络提供 DNS 和 DHCP,虽然 DHCP 可以正常工作,但我之前从未设置过 BIND。

DNS 指南指南中,我编辑了 named.conf.local,并告诉它在 /etc/bind/db.network1.local 和 db.network2.local 中查找我的两个域 (network1.local 和 network2.local) 的配置。顺便说一句,network1.local 在 eth0 上,network2.local 在 eth1 上。

然后我继续将 db.local 复制到这两个文件中的每一个,并编辑它们以便为名称服务器本身 ns.network1.local 提供 A 记录。

但是,我没有在配置中看到任何可以阻止 network1 上的主机接收 network2.local 上的名称的 DNS 解析的内容。我该怎么做才能防止这种情况发生?有没有办法将 BIND(呃)绑定到每个接口的单个​​域?

也许更好的问题是,我应该这样做吗?或者有没有更好的方法通过每个 NIC 托管两个区域?我应该使用 BIND 以外的其他方法吗?

答案1

我几年前为自己设置了一些东西,但您可以使用视图来分离您服务的域。我使用这个是为了向本地客户提供我的 RFC1918 地址,向公共客户提供我的公共地址,但我认为这对您想要做的事情有用。

类似于这样(假设 network1.local 上的客户端使用 192.168.0.0/24 而 network2.local 上的客户端使用 192.168.1.0/24):

view "network1" {
  match-clients { 192.168.0.0/24; };
  zone "." { type hint; file "hints/named.root"; };
  zone "0.0.127.in-addr.arpa" { type master; file "zones/localhost.rev"; };
  zone "0.168.192.in-addr.arpa" { type master; file "zones/0.168.192.rev";
                       allow-transfer { 192.168.0.0/24; }; };
  zone "network1.local" { type master; file "zones/network1.local";
                       allow-transfer { 192.168.0.0/24; }; };
};


view "network2" {
  match-clients { 192.168.1.0/24; };
  zone "." { type hint; file "hints/named.root"; };
  zone "0.0.127.in-addr.arpa" { type master; file "zones/localhost.rev"; };
  zone "1.168.192.in-addr.arpa" { type master; file "zones/1.168.192.rev";
                       allow-transfer { 192.168.1.0/24; }; };
  zone "network2.local" { type master; file "zones/network2.local";
                       allow-transfer { 192.168.1.0/24; }; };
};

我不记得是否还有更多内容,但这应该能让你立足于此。祝你好运。

相关内容