プロが教えるわが家の防犯対策術!

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

以下、コマンド実行結果

> nslookup
Server: <host name of dns server>
Address: 192.168.1.1

> set type=ptr

> 216.91.93.202.in-addr.arpa  ★1回目
Server: <hostname of dns server>
Address: 192.168.1.1

DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
*** Request to <hostname of dns server> timed-out


> 216.91.93.202.in-addr.arpa  ★2回目
Server: <hostname of dns server>
Address: 192.168.1.1

Non-authoritative answer:
216.91.93.202.in-addr.arpa name = d.top.vip.bbt.yahoo.co.jp

以下省略

というように、1回目はタイムアウト、
2回目はレコードを引くことができます。

A 回答 (4件)

mondaです。



提示いただいた named.conf を眺めて思ったのですが、
ルートヒントが最後になっています。

named.conf を先頭から評価していって、途中でなにか
エラーを起こして、ルートヒントにたどり着けなくて
timeout ってのもありそうです。
zone "." の宣言を option 直後に配置したら変化ある
でしょうか?

#でも、それなら named を起動するときになにか
#エラーを吐いてるよなぁ…
# /var/log/messages になにか痕跡があるかも。

ご指摘のように forwarder の定義を「前のほうに」
置いても効果あるかも知れません。

あるいは、この DNS が管理しているゾーンデータベース
の記述にどこか typo のような些細な間違いが存在して
いないでしょうか?
--
    • good
    • 0
この回答へのお礼

monda様

ご回答ありがとうございます。

結論から申しますと、問題は解決することができました。
forwardersの設定を加えたところ、timeoutは発生しなくなりました。
これだけで解決してしまうなんて、あっけないと思うと同時に、
初歩的なところでつっかえていたものだと呆れてしまう部分もあります(^-^;

SolarisBINDもいじるのが初めてだったので、
いろいろと苦労しましたが、勉強になりました。
お付き合いしていただき、ありがとうございました。


ちなみに、/var/adm/messages(OSはSolarisです)には、
namedに関するエラーは出力されていませんでした。

お礼日時:2005/07/28 15:40

ちょっと間が空いてしまいました。



このプライマリ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 に
向いているでしょうか?

--

この回答への補足

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の設定をいじってみて、
結果どうなるか確認してみます。

補足日時:2005/07/27 18:31
    • good
    • 1

ひょっとして、その192.168.1.1にあるDNSがリクエストを回送している上位DNSのエントリが複数(プライマリ、セカンダリ、3rd・・・)あり、そのうちの1つが死んでいる(サーバダウンまたはIPアドレスの設定誤り)ということはないでしょうか。



で、192.168.1.1にあるDNSがリクエストを受け取るたびに上位DNSのそれぞれに順番にリクエストを回送するので、死んでいるDNSにあたった場合はタイムアウトになり、生きているDNSに当たった場合はすぐ回答があるということなのでは。

この回答への補足

ご回答ありがとうございます。

セカンダリDNSではforwardersの設定は行っていないため、上位のDNSサーバにリクエストを回送していることはございません。
192.168.1.1のDNSサーバが、FW経由で直接インターネットに出て行っています。

最初の質問内に記載しました、216.91.~以外の外部サーバを引いてみても、
1度目はタイムアウト、2度目は成功、という結果になってしまいます。

補足日時:2005/07/26 15:15
    • good
    • 0

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 をチェック。
と進めれば原因は見つかることでしょう。

ネットワーク全体の構成を示していただければ
もう少し詳しく分かるかも知れません。
--

この回答への補足

ご回答ありがとうございます。

プライマリ、セカンダリというお話がありましたので、構成について補足させて頂きます。
#最初に説明しておけばよかったことですが…。すみません。

現象が発生しているサーバは、内部のセカンダリ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 はどの部分記述をチェックすればよろしいでしょうか?

補足日時:2005/07/26 14:43
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A