我为一个区域配备了两台辅助 DNS 服务器。当其中一台服务器收到来自特定范围的请求时,应该修改其中一条记录。
为了分割答案,我打算使用一个视图:
acl dmz { 192.168.0.0/24; localhost; };
acl lan { 10.0.0.0/8; };
view dmz {
match-clients { dmz; };
zone "example.info" {
type slave;
masters { 10.100.10.254; };
file "/etc/bind/db.example-dmz.info";
};
};
view lan {
match-clients { lan; };
zone "example.info" {
type slave;
masters { 10.100.10.254; };
file "/etc/bind/db.example-lan.info";
};
};
上面的配置分裂了答案,但是答案是相同的。
我希望,当设备192.168.0.10
(在 中dmz
)请求 的分辨率时foo.example.info
,发回192.168.0.20
而不是来自传输区域的答案。
如何覆盖此单一条目?
答案1
使单个从属名称服务器成为区域的主服务器foo.example.info
,并仅在所需的视图中显示它,例如
view all-clients {
match-clients { lan; !192.168.0.10/32; dmz; };
zone "example.info" {
type slave;
masters { 10.100.10.254; };
file "/var/bind/db.example.info";
};
};
view exception-host {
match-clients { 192.168.0.10; };
zone "foo.example.info" {
type master;
file "/etc/bind/foo.example.info-for-192.168.0.10";
};
zone "example.info" {
in-view all-clients;
};
};
现在,当 192.168.0.10 请求查找时,它将看到“exception-host”视图,并为记录“foo.example.info”获得不同的响应。否则,它将获得与所有其他执行查找的客户端相同的结果。
答案2
您的视图中缺少“match-clients”语句来指示哪些 acl 可以使用该视图。例如,您可能需要类似以下内容:
view dmz {
match-clients { dmz; };
zone "example.info" {
type slave;
masters { 10.100.10.254; };
file "/etc/bind/db.example-dmz.info";
};
};
以及“lan”视图的对应条目。