
私は、bind/named などを実行している RHEL6 サーバーを RHEL8 サーバーに置き換えています。この作業の一環として、bind のバージョンが 9.8 から 9.11 に更新されました。私は bind の達人ではありませんが、愚かにもこれは簡単な更新だと思っていました。残念ながら、bind に少ししか精通していないため、ほとんど理解できない問題に遭遇しました。どうやら、複数のビューが同じ書き込み可能なファイルをポイントすることはできなくなったようです。named が起動できない原因となっています。
Google で検索してみたところ、これは確かに 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
あるビューの既存のゾーンを別のビューに公開するゾーン オプション。
次のようになります (例はドキュメントから引用)。
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;
};
};