我正在用 RHEL8 服务器替换运行 bind/named 等服务的 RHEL6 服务器。作为此过程的一部分,bind 版本从 9.8 更新到 9.11。我根本不是 bind 专家,但我愚蠢地认为这应该是一个简单的更新。不幸的是,我遇到了一个我几乎不理解的问题,因为我对 bind 只是略知一二。显然您不能再有多个视图指向同一个可写文件了?它阻止了 named 启动。
我进行了一些谷歌搜索,发现这确实是自 bind 9.10 以来的“正确”反应,并且我应该结合视图内的引用来解决这个问题。
这是我收到的错误片段...
Dec 03 16:45:51 server-1a bash[97204]: /etc/named/slave.zones:4: writeable file 'data/test.exampledomain.com.zone': already in use: /etc/named/slave.zones:4
Dec 03 16:45:51 server-1a bash[97204]: /etc/named/slave.zones:10: writeable file 'data/test2.exampledomain.com.zone': already in use: /etc/named/slave.zones:10
Dec 03 16:45:51 server-1a bash[97204]: /etc/named/slave.zones:16: writeable file 'data/test3.exampledomain.com.zone': already in use: /etc/named/slave.zones:16
我希望有人有能力并且愿意帮助我适当地更新我的配置,因为我迷路了。
这是我认为需要更新的 named.conf 文件的(匿名)部分。您觉得如何?
view "localhost_resolver" {
match-clients { localhost; };
allow-query { localhost; };
allow-recursion { localhost; };
recursion yes;
include "/etc/named/root.hints";
include "/etc/named.rfc1912.zones";
include "/etc/named/slave.zones";
include "/etc/named/forwarder.zones";
};
view "abc_clients" {
response-policy { zone "abc"; };
match-clients { 1.2.3.4/24; };
allow-query { 1.2.3.4/24; };
allow-recursion { 1.2.3.4/24; };
recursion yes;
include "/etc/named/abc.conf.local";
include "/etc/named/root.hints";
include "/etc/named/slave.zones";
};
view "trusted_resolver" {
match-clients { 1.9.0.0/21;1.8.0.0/21;1.7.0.0/24;1.6.0.0/21; };
allow-query { trusted; };
allow-transfer { "none"; };
allow-recursion { trusted; };
recursion yes;
include "/etc/named/root.hints";
include "/etc/named/slave.zones";
include "/etc/named/forwarder.zones";
};
view "default" {
match-clients { any; };
allow-transfer { "none"; };
recursion no;
};
答案1
您有在多个视图中使用相同支持区域文件的从属区域,这是不允许的,因为匹配的从属区域定义将分别传输区域并将内容写入同一个文件(这并不安全)。
你可以做的是使用in-view
zone 选项用于将一个视图中的现有区域显示到另一个视图中。
它看起来可能像这样(示例取自文档):
view internal {
match-clients { 10/8; };
zone example.com {
type master;
file "example-external.db";
};
};
view external {
match-clients { any; };
zone example.com {
in-view internal;
};
};