• 締切済み

「named.root」が「file not found」で苦闘?

DNSの設定を変えたくnamed周りを触っていたら、いつの間にか表題で嵌ってしまいました。 設定ファイルは元通り(正常に動いていた状態)にしたんですが・・・ 「named -g」で起動状況を確認してみたところ、 05-Jun-2008 09:01:40.533 loading configuration from '/etc/named.conf' 05-Jun-2008 09:01:40.535 listening on IPv4 interface lo, 127.0.0.1#53 05-Jun-2008 09:01:40.537 binding TCP socket: address in use 05-Jun-2008 09:01:40.538 listening on IPv4 interface eth0, xxx.xxx.xxx.xx#53 05-Jun-2008 09:01:40.539 binding TCP socket: address in use 05-Jun-2008 09:01:40.539 could not configure root hints from 'named.root': file not found 05-Jun-2008 09:01:40.539 loading configuration: file not found 05-Jun-2008 09:01:40.539 exiting (due to fatal error) という様な形で、named.rootが見つからないとか言われています。 実際にnamed.confでnamed.rootのパスは指定してあるのですが zone "." in { type hint; file "named.root"; }; 「bind-chroot」を使っているので、named.confのoptionsのdirectry指定を「directory "/etc";」として、named.rootファイルもその直下においてあります。 一応、プロバイダの説明では「/var/named/」にnamed.rootを置けとあったのでこちらに置いてみたり、リンクを張ってみたりしたのですが、それでも同じエラーになっているようです。 権限の問題もあるのかと思い、パーミッションや所有者やグループも変更してみましたが、このメッセージ表示が消えることはありませんでした。 そしてマシン自体の再起動も行ないましたが、エラーは消えず。 一体何故ファイルがあるのに見つけられないのか、解決方法はあるのか、などアドバイスをいただければ幸いです。

みんなの回答

  • t-okura
  • ベストアンサー率75% (253/335)
回答No.3

つぎのようことを試してみてはどうでしょう。 ・ named.conf が複数あり、実際に使用されているファイルと設定して いるファイルが違っている可能性。find / -name 'named.conf' などで、 named.conf が複数存在しないか確認できます。 ・ /etc/sysconfig/named などで指定されている chroot 先が自分の思っ ているところと違っている可能性。ps -ef などで named がどんなオプ ションで起動しているか確認できます。 ・ file "named.root" と指定しているのを絶対パスで指定してみる。 例えば file "/etc/named.root" とすれば、/etc/named.root か {chroot先}/etc/named.root のどちらかが使われると思います。 解決のきっかけぐらいは見つかるのではないでしょうか。

n-pepe
質問者

お礼

ご回答ありがとうございます。 休日挟んで本日仰られたのを参考に検証してみました。 named.confファイルは同名ファイルは3つあり、一つは動いて欲しいと思っているファイル、一つは使われていないほかのディレクトリにあったものなのでリネーム→named再起動で異常なし、もうひとつはファイル内に書かれていること自体全く違い、他の面での設定ファイルのようなのでそのまま。 動きは変わりませんでした。 ps -ef | grep named をかけてみたところ /usr/sbin/named -u named -t /var/named/chroot となっていたので、ディレクトリの指定他は問題ないようです。 named.rootの絶対パス指定を行なったのですが、やはり変化がないようでした。 いろいろ調べてみてまた不思議に思ったのが、named -gではエラーが出てるけど、namedサービスの再起動でsyslogを見るとエラー記載されていないんです。 コマンドで実行するユーザーと再起動でサービスを実行するユーザーの違いなのか・・・などとも思い始めました。 (念のため-uでユーザー指定もしたのですが、これだとsyslogにもエラーが出力されるんですよね)

回答No.2

>「bind-chroot」を使っているので、named.confのoptionsのdirectry指定を「directory "/etc";」として、named.rootファイルもその直下においてあります。 という指定なので、 /var/name/chroot/etc/named.root においてみてください。

n-pepe
質問者

お礼

ご回答ありがとうございます。 最初はその場所においていたんですが、エラーが出始めたのであちこちにおいてエラーが消えるか試してみてます。 今のところエラーは消えておりません・・・ なのでものすごく悩んでいるのですが、ファイルの場所の問題ではないのか・・・?などと悩み中です。

回答No.1

chroot環境では /var/name/chroot/var/named/named.root の配置ですが違うところに置いてませんか。

n-pepe
質問者

お礼

早速のご回答ありがとうございます。 named.rootの配置ですが、仰られている場所にも置いてみました。 その上で再起動もかけてみましたがメッセージは変わらず、といったところです。 念のため、/usr/sbin/named-checkeconfもかけてみましたが、エラー表示もなく、ただ単にファイルを見つけられないようです。 一体何処を参照しに行っているのかが不明でして、これが分かれば良いのですがmessageを見ても不明です。。。