Date: 2016.05.25
Home / Linux. / CentOS7/RHEL7でのBINDの挙動にはまる。
自宅でCentOS7+Bind9.8+chrootでDNSサーバを構築してみてたのですが、chrootの部分で見事にはまりました。
Bind9.8で動作挙動が変わっていたのは前にRHEL6で構築していたので把握していたけど、更にOS側に引っ張られて挙動が変わるとは思ってもみなかったので手間取りました。
備忘録としてメモ。


コンフィグは特段変わりはないのでさくっと作ってしまいました。
そして、普通にbindのサービスを起動。(サービス名では相変わらずnamed)
# systemctl start named
名前解決も特に問題なく行えました。

が、chrootが機能していない事に気付き、色々と調べてみたところRHEL7系からbind-chrootが別サービスとして稼働させなきゃならないようで。
確認してみたところ、確かにサービスに登録されています。
# systemctl is-enabled named-chroot
disabled

なので、さくっとbind-chrootも起動させ、chroot配下で動作するようになった事が確認できました。
# systemctl start named-chroot

両方自動起動にも登録。
# systemctl enable named
# systemctl enable named-chroot

OSを再起動かけても名前解決、chrootと問題なく動作していたのでchrootのサービス化に気にしておけばいいだけかーと思っていました。



思っていましたが、コンフィグいじって設定を変えた後、bindをリスタートかけたりしてたらchrootがまた機能していない事に気付き・・・
OS再起動したら治るし、最初は理由がさっぱり分からなかったので再インストールしてみたりもしたけど解決に至らず、その後もあれこれやっててようやく気付いた。

結局のところ、そもそもnamed-chrootサービスだけ動かせばいいと。
chroot無し→named
chroot有り→named-chroot
named-chrootを起動するとnamed本体も呼び出してくれます。
設定変更した場合もnamed-chrootのリスタートでOK。

なのでnamedの方は自動起動も止めておきました。
# systemctl disable named

もうこれが当たり前になってるのかもしれないけど古いのに慣れすぎてて色々盲点で勉強になりました。

それにしてもリスタートから停止/開始時のサービス名は長くなるし、そもそもsystemctlコマンドで制御するようになったおかげでinit.dから呼び出してた時みたくTAB補完もできないしで入力がかなり面倒になった感が否めないです。
頻繁にリスタートとか実行するサービスは適当にshellスクリプト書いといた方が楽だわ。


Secret

TrackBackURL
→https://000dandelion000.blog.fc2.com/tb.php/95-15b75f74