我正在设置两个小型独立网络。这两个网络都没有互联网连接。我试图通过我现有的单个 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; }; };
};
我不记得是否还有更多内容,但这应该能让你立足于此。祝你好运。