• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:nslookup時のDNSサーバのタイムアウトについて)

nslookup時のDNSサーバのタイムアウトについて

このQ&Aのポイント
  • 1回目はタイムアウトなのですが、2回目は成功します。DNSサーバの動作として、これは正常なのでしょうか?
  • 1回目にタイムアウトになってしまう原因にはどんなことが考えられるでしょうか?
  • nslookupを実行し、外部サーバの逆引きレコードを引いた結果、1回目はタイムアウト、2回目はレコードを引くことができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • monda
  • ベストアンサー率87% (50/57)
回答No.4

mondaです。 提示いただいた named.conf を眺めて思ったのですが、 ルートヒントが最後になっています。 named.conf を先頭から評価していって、途中でなにか エラーを起こして、ルートヒントにたどり着けなくて timeout ってのもありそうです。 zone "." の宣言を option 直後に配置したら変化ある でしょうか? #でも、それなら named を起動するときになにか #エラーを吐いてるよなぁ… # /var/log/messages になにか痕跡があるかも。 ご指摘のように forwarder の定義を「前のほうに」 置いても効果あるかも知れません。 あるいは、この DNS が管理しているゾーンデータベース の記述にどこか typo のような些細な間違いが存在して いないでしょうか? --

td708
質問者

お礼

monda様 ご回答ありがとうございます。 結論から申しますと、問題は解決することができました。 forwardersの設定を加えたところ、timeoutは発生しなくなりました。 これだけで解決してしまうなんて、あっけないと思うと同時に、 初歩的なところでつっかえていたものだと呆れてしまう部分もあります(^-^; SolarisBINDもいじるのが初めてだったので、 いろいろと苦労しましたが、勉強になりました。 お付き合いしていただき、ありがとうございました。 ちなみに、/var/adm/messages(OSはSolarisです)には、 namedに関するエラーは出力されていませんでした。

その他の回答 (3)

  • monda
  • ベストアンサー率87% (50/57)
回答No.3

ちょっと間が空いてしまいました。 このプライマリDNSとセカンダリDNSはそれぞれの 役割毎に named.conf の中身を変えてあるでしょうか? セカンダリの named.conf は、下記のようなカンジです。 (タブは圧縮されてしまうので全角空白にしました。 実際に使う場合は全角空白を適宜置き換えてください) ======================================== /var/named/named.conf: options {   directory "/var/named"; }; zone "." {   type hint;   file "named.ca"; }; zone "そこのLANのドメイン" {   type slave;   master {     プライマリのIPアドレス;   };   file "バックアップファイルの名前"; }; zone "逆引き用そこのLANのIPアドレス.in-addr.arpa" {   type slave;   master {     プライマリのIPアドレス;   };   file "逆引きのバックアップファイルの名前"; }; zone "0.0.127.in-addr.arpa" {   type master;   file "named.local"; }; ======================================== また、セカンダリの resolv.conf は localhost に 向いているでしょうか? --

td708
質問者

補足

monda様 ご回答ありがとうございます。 named.confは以下の通りですが、自分で一箇所気づいた点があります。 「forwarders」の設定って必要ですよね? プライマリの方がどうなっているのか分からないのですが、 恐らく、forwadersの指定がないため、セカンダリDNSが 自分自身でrootサーバーから辿って名前解決を行っており、 その結果タイムアウトになっているのでは? #プライマリ側がどういう設定になっているのか分かれば話は早いのですが、 #気軽にいじれる環境にないので…。すみません。 =================================== // /etc/named.conf options { directory "/var/named"; }; // // 管理ドメイン名 host to IP // zone "ドメイン名" in { type slave; file "バックアップファイル名"; masters { プライマリDNSのIP; }; }; // // 管理ドメイン名 IP to host // zone "管理ドメインのLANのIP.in-addr.arpa" in{ type slave; file "逆引きバックアップファイル名"; masters { プライマリDNSのIP; }; }; // // local roopback file // zone "localhost" in { type master; file "localhost.zone"; }; zone "0.0.127.in-addr.arpa" in { type master; file "localhost.rev"; }; // // root.cache // zone "." { type hint; file "root.cache"; }; =================================== あと、きのうご教示いただいた、 > nslookup -timeout=10 を実行してみました。 10秒経ってタイムアウトになった後に 引くことができてます。 =================================== > nslookup -timeout=10 > > set type=ptr > > 216.91.93.202.in-addr.arpa Server: セカンダリDNSサーバホスト名 Address: セカンダリDNSサーバIP DNS request timed out. timeout was 10 seconds. Non-authoritative answer: 216.91.93.202.in-addr.arpa name = d.top.vip.bbt.yahoo.co.jp 以下、省略 =================================== named.confのforwardersの設定をいじってみて、 結果どうなるか確認してみます。

  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.2

ひょっとして、その192.168.1.1にあるDNSがリクエストを回送している上位DNSのエントリが複数(プライマリ、セカンダリ、3rd・・・)あり、そのうちの1つが死んでいる(サーバダウンまたはIPアドレスの設定誤り)ということはないでしょうか。 で、192.168.1.1にあるDNSがリクエストを受け取るたびに上位DNSのそれぞれに順番にリクエストを回送するので、死んでいるDNSにあたった場合はタイムアウトになり、生きているDNSに当たった場合はすぐ回答があるということなのでは。

td708
質問者

補足

ご回答ありがとうございます。 セカンダリDNSではforwardersの設定は行っていないため、上位のDNSサーバにリクエストを回送していることはございません。 192.168.1.1のDNSサーバが、FW経由で直接インターネットに出て行っています。 最初の質問内に記載しました、216.91.~以外の外部サーバを引いてみても、 1度目はタイムアウト、2度目は成功、という結果になってしまいます。

  • monda
  • ベストアンサー率87% (50/57)
回答No.1

2秒というのは短すぎるかも知れません。 nslookup に入るときに: $ nslookup -timeout=10 の引数をつけて実施して変化はあるでしょうか。 ちなみに nslookup の timeout 初期値は5秒だと 記憶しています。 アドレスからすると DNS はローカルセグメントの 別の機器のようです。 この nslookup を実行しているコンピュータに セカンダリDNSを登録してあるようならそちらの、 無い様ならDNSのルートヒントやフォワーダに 問題がある可能性があります。 また、機器の故障の可能性もそこそこあります。 ARPキャッシュが壊れてて、都度アドレスを収集 しているとか。 というワケで: 1. 機器類の結線や動作を確認。交換できるなら   HUBなどを交換してみる。 2. nslookup を実行しているコンピュータの   /etc/resolv.conf をチェック。 3. DNS の named.ca, named.local をチェック。 と進めれば原因は見つかることでしょう。 ネットワーク全体の構成を示していただければ もう少し詳しく分かるかも知れません。 --

td708
質問者

補足

ご回答ありがとうございます。 プライマリ、セカンダリというお話がありましたので、構成について補足させて頂きます。 #最初に説明しておけばよかったことですが…。すみません。 現象が発生しているサーバは、内部のセカンダリDNSサーバで、 同じセグメントにプライマリDNSサーバが存在します。 nslookupを実行したクライアントPCでは、 プライマリDNSサーバだけ、もしくはセカンダリDNSサーバだけを指定して、nslookupを実行しています。 プライマリDNSサーバを指定したときは、タイムアウトは発生せず、 セカンダリDNSサーバを指定した場合にタイムアウトが発生しています。 また、セカンダリDNSサーバで使用してるDNSはBIND 9.2.3で、 FWにはFirewall-1を使用しています。 今、Firewall-1の設定におかしな箇所がないか当たっています。 上記の構成情報を含めた上で、 monda様にご教示頂いたアドバイスに返信させて頂きますと、 > $ nslookup -timeout=10 > の引数をつけて実施して変化はあるでしょうか。 実行はしていないのですが、 プライマリDNSサーバを指定した場合でも、タイムアウト値が2秒というのは、 同じ条件だと思いますので、やはりセカンダリDNSの動作に疑問が残ります。 > 1. 機器類の結線や動作を確認。交換できるなら >   HUBなどを交換してみる。 結線、およびセカンダリDNSサーバ単体の動作は問題ないと思います。 また、同セグメントにプライマリDNSサーバが存在しておりますので、HUBなどの機器にも問題はないと思います。 > 2. nslookup を実行しているコンピュータの >   /etc/resolv.conf をチェック。 クライアントはWindowsなのですが、 [TCP/IPのプロパティ] > [DNSサーバの指定] 欄で、 プライマリ、またはセカンダリのみを指定して、nslookupを実行しています。 > 3. DNS の named.ca, named.local をチェック。 named.caは、root.cache をそのまま利用しているため、問題はないかと思います。 named.local はどの部分記述をチェックすればよろしいでしょうか?

関連するQ&A