シンボリックリンクをバインドすると、restart という赤いポストが表示されます

シンボリックリンクをバインドすると、restart という赤いポストが表示されます

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 つあります。

  1. コードで、内ではなく と/etc/named.conf内のその他のファイルを変更します。/etc//var/lib/named/etc
  2. /usr/sbin/named.initこのような状況に対処する独自のものを編集して作成します。
  3. 削除しbind-chrootenvて独自の起動スクリプトを作成します。

関連情報