bind-chroot に関するヘルプが必要です
以下のバージョンのbindとbind-chrootを実行しています
バインド-9.11.2-lp151.10.1.x86_64
バインド-chrootenv-9.11.2-lp151.10.1.x86_64
自動化コードは、ゾーンファイルを /var/lib/named/etc/named.conf にのみ追加し、/etc/named.conf には追加しないように実行されています。
そこで、/var/lib/named/etc/named.conf に作成されたゾーン ファイルを /etc/named.conf に反映させるために、/etc に「ln -s /var/lib/named/etc/named.conf named.conf」としてシンボリック リンクを作成し、以下のように反映しました。lrwxrwxrwx 1 root root 29 Dec 9 11:03 named.conf -> /var/lib/named/etc/named.conf
今、/var/lib/named/etc/named.conf内のファイルを変更し、「service named restart」を実行すると、/etc/named.conf内のファイルがロードに失敗します。
/var/log/messages に以下のエラーメッセージが表示される
2021-12-09T11:04:46.684677+05:30 lavasadns1 systemd[1]: Stopped Berkeley Internet Name Domain (DNS). 2021-12-09T11:04:46.685049+05:30 lavasadns1 systemd[1]: Starting Berkeley Internet Name Domain (DNS)... 2021-12-09T11:04:46.735359+05:30 lavasadns1 named.init[2509]: Starting name server BIND cp: cannot stat '/etc/named.conf': No such file or directory 2021-12-09T11:04:46.844546+05:30 lavasadns1 named.init[2509]: open: /etc/named.conf: file not found 2021-12-09T11:04:46.847806+05:30 lavasadns1 systemd[1]: named.service: Control process exited, code=exited status=6 2021-12-09T11:04:46.848137+05:30 lavasadns1 systemd[1]: Failed to start Berkeley Internet Name Domain (DNS). 2021-12-09T11:04:46.848475+05:30 lavasadns1 systemd[1]: named.service: Unit entered failed state. 2021-12-09T11:04:46.848772+05:30 lavasadns1 systemd[1]: named.service: Failed with result 'exit-code'. 2021-12-09T11:05:31.657460+05:30 lavasadns1 systemd[1]: Starting Berkeley Internet Name Domain (DNS)... 2021-12-09T11:05:31.666976+05:30 lavasadns1 named.init[2573]: Name server configuration file /etc/named.conf does not exist.
シンボリックリンクの色が赤に変わります。なぜこのようなことが起こるのでしょうか?このエラーを回避するにはどうすればよいでしょうか?
答え1
起動中bind
/named
実行中/usr/sbin/named.init
。
そこには、 と呼ばれる関数がありますcheckAndCopyConfigFiles
。
そこには線があるrm -f ${CHROOT_PREFIX}/${configfile}
/etc/named.conf
からへのシンボリックリンクを作成しました/var/lib/named/etc/named.conf
が、そのスクリプトを実行すると が削除されました/var/lib/named/etc/named.conf
。
そのため、スクリプトは を削除し/var/lib/named/etc/named.conf
、シンボリック リンクのエンドポイントをコピーしようとしましたが、/etc/named.conf
すでに削除されているため、このエンドポイントは存在しません。
この結果、ぶら下がったシンボリックリンク参照が発生し、 になりますred
。
あなたの作品はnamed.conf
もう存在しません。
取り戻すことができれば、選択肢は 3 つあります。
- コードで、内ではなく と
/etc/named.conf
内のその他のファイルを変更します。/etc/
/var/lib/named/etc
/usr/sbin/named.init
このような状況に対処する独自のものを編集して作成します。- 削除し
bind-chrootenv
て独自の起動スクリプトを作成します。