- PR -

bindで正引き時のエラー

1
投稿者投稿内容
なりたて管理者
会議室デビュー日: 2007/11/22
投稿数: 4
投稿日時: 2007-11-22 18:58
初めて投稿されてもらいます。宜しくお願いします。

【環境】
OS RedHatEnterpriseLinux4 32bit
0BIND-9.2.4
クライアント:WinXP
クライアントとサーバは、ハブで繋がっている状態
サーバの全ての設定は、本番環境のグローバルアドレスを設定してますが、
閉じられた環境でテストしています。

【現象】
 クライアントでnslookupコマンドを実行し、正引きのドメインを入力した際に
 以下のエラーが発生するが、問題なく引ける。
-----------------------------------------------
> www.sample.co.jp
Server: www.sample.co.jp
Address: 111.222.111.222

DNS request timed out.
timeout was 2 seconds.
Name: www.sample.co.jp
Address: 111.222.111.222

>
--------------------------------------------

【解決したいこと】
逆引きは、エラーなく瞬時に答えがくるのですが、正引き時は、タイムラグの後に
エラーメッセージと答えが同時にでます。引けてるということは設定の間違いは
なさそうなので、どこから調査していけばいいのか、教えてもらえますでしょうか?
また、何か提示する資料が足りないのであれば、教えてください。
cal
会議室デビュー日: 2007/11/22
投稿数: 3
投稿日時: 2007-11-22 22:09
BIND側でquerylogを出力するように設定してクライアント側が
どんなqueryを出しているか見てはいかがでしょうか。

named.confを見てみたいですが、経験上の原因としてAAAAとか
DNSサフィックスがらみかもです。
蛇足ですが9.2.4はセキュリティホールが報告されています。
設定次第ですが現行のバージョンをお勧めします。
なりたて管理者
会議室デビュー日: 2007/11/22
投稿数: 4
投稿日時: 2007-11-22 22:57
調査方法の提示、ありがとうございます。
帰宅してしまったので、月曜日に実行してみます。

1.querylogを出力させるオプションを付けて実行
2.named.conf を見直す
3.IPv4のみの設定なので、AAAA(IPv6)用の設定があれば削除する
4.DNSサフィックスを見直す
をやってみようと思います。

現在のBINDは、RedHatからのパッチを適用しているので問題ないと思っています。
後日、情報を提示させてもらいますので、お付き合い頂けたらと思います。
たお
ベテラン
会議室デビュー日: 2006/10/27
投稿数: 90
投稿日時: 2007-11-24 02:17
実は単純にネットワーク疎通ができてないとか。。。
なりたて管理者
会議室デビュー日: 2007/11/22
投稿数: 4
投稿日時: 2007-11-26 10:00
ありがとうございます。解決致しました。
DNSサフィックスがらみなのかな?

クライアントで、Wiresharkを起動させながら、nslookupのコマンドを
実行しながら、正引きを実行したところ、Wiresharkのログに、

standard query A www.[ドメイン名].co.jp.xxxx.local

となっており、社内環境で使用しているWindowsのドメイン名
「xxxx.local」が後ろに付いておりました。
クライアント端末をWindowsドメイン環境から抜けて、Workgroupにし、
再度nslookupを実行したところ、エラーなく瞬時に正引きできました。

閉じられた環境なので、こうゆうことになったのかどうかわかりませんが、
エラーは解決しました。
本番環境は、Windowsドメインがある環境なので、再現しちゃいそうで
怖いですが、クライアントの問題でした。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2007-11-26 23:50
こんばんは.
引用:

なりたて管理者さんの書き込み (2007-11-26 10:00) より:

クライアントで、Wiresharkを起動させながら、nslookupのコマンドを
実行しながら、正引きを実行したところ、Wiresharkのログに、

standard query A www.[ドメイン名].co.jp.xxxx.local

となっており、社内環境で使用しているWindowsのドメイン名
「xxxx.local」が後ろに付いておりました。


なぜ ".local" が付与されているかを追求しないで解決として問題ないのですか?
その Windows client が所属している Active Directory の
domain 名がそのように設定されているだけです.
「再現しちゃう」どころの話ではないと思いますけど?
そもそも DNS の仕組みや Active Directory の仕様を
まるで考慮していないだけではないかと.
なりたて管理者
会議室デビュー日: 2007/11/22
投稿数: 4
投稿日時: 2007-11-27 10:11
コメントありがとうございます。
現在の認識では、

【本番環境のクライアントの場合】
 プライマリDNS:ActiveDirectoryのサーバ
 セカンダリDNS:BINDサーバ

【閉じられたテスト環境のクライアントの場合】
 プライマリDNS:BINDサーバ
 セカンダリDNS:なし

なので、本番環境の正引き時には、後ろに「xxxx.local」が
ついてもActiveDirectoryが解決してくれてエラーにならないのでは?
という考えで仕様まで深く考えていませんでした。

WireSharkのログを見ると
-------------------------------------------------------------------------
Standard query A www.[ドメイン名].co.jp.xxxx.local
Standard query response, No such name
Standard query A www.[ドメイン名].co.jp
Standard query response CNAME ns1.[ドメイン名].co.jp A 111.111.111.111
--------------------------------------------------------------------------
となっており、1回目の名前解決では、失敗し、2回目は「xxxx.local」を
かってに削除して問い合わせておりました。(IPアドレスは例です。)

クライアント側の「ローカルエリア接続のプロパティ」→「詳細設定」→「DNSタブ」
の中にDNSサフィックスの設定があり、現在は「プライマリおよび接続専用の
DNSサフィックスを追加する」にチェックがつけられているからなのだと判断いたしました。
現在、それの意味や仕様などは未調査で、なぜこのようなことが起こるのかだけ調査した状態です。
今後、仕様について調査し、まとめるのは下手ですが、判り次第簡単に提示します。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2007-11-28 00:55
こんばんは.
引用:

なりたて管理者さんの書き込み (2007-11-27 10:11) より:

現在の認識では、

【本番環境のクライアントの場合】
 プライマリDNS:ActiveDirectoryのサーバ
 セカンダリDNS:BINDサーバ


Active Directory についてちゃんと調べていれば,
ここが間違っていることが理解できると思います.
※BIND は Active Directory 用の DNS の slave ではありませんよね?
1

スキルアップ/キャリアアップ(JOB@IT)