QA@IT

squidプロキシを使っているときの名前解決

23798 PV

squidを利用したブラウジングの名前解決の詳細について質問させて頂きます。

まず環境説明ですが、

squidのプロキシサーバを参照しているドメインAがあり、
ドメインAの端末のDNS指定はもちろんドメインコントローラですが、
ドメインコントローラは上位DNSにフォワードしておらず、
ドメインAの端末は単体では外部のDNSを引くことができません。

例えば、ドメインAの端末から nslookup www.yahoo.co.jp としても
request time out になります。

プロキシサーバのresolv.conf は、
nameserver 192.168.1.1
nameserver 192.168.1.2
※例
となっており、この両者は外部のDNSを引くことが出来ます。

プロキシのsquid.conf にはdns_nameserversの指定はしていませんので、
プロキシサーバのresolvの通りにドメインAの端末は名前解決してくれると理解しています。

今回、あるきっかけで、192.168.1.2 のサーバがダウンしました。

そのとき、ドメインAの端末がブラウジングが出来なかったと報告を受けました。
129.168.1.1 は生きていましたので、本来であれば接続出来ると思っていますが、

このようなケースでは、接続によってはresolvに記載された、
どちらに問合せに行くか不定な為、発生していたと考えられるのでしょうか?

resolvは書き順通りに優先順があると思っていましたので、
今回のケースではなぜ接続できないという報告が上がってきたのか不明です。

今回のケースでのポイント、指摘点等あればご教示頂ければ幸いです。
以上です。

回答

Squidはシステムが持っているresolver libraryを使わずに自前の名前解決を
行なうようです。

http://search.luky.org/linux-users.9/msg02857.html

「192.168.1.1 192.168.1.2のどちらかのDNSサーバが生きていれば
プロキシサーバから確実にアクセスできる」ことを目標にするのであれば、
Squid.confに
dns_nameserver 192.168.1.1 192.168.1.2
と記述して動作させてはいかがでしょうか。
※当方でもdns_nameserverに指定してSquidを運用しています

http://lists.freebsd.org/pipermail/freebsd-questions/2004-April/042758.html
でも取り上げられていますが、mbcさんの環境では、もし192.168.1.1がダウンしてしまっても
ドメインAの端末でブラウジングはできない状況に陥るのではないでしょうか。

dns_nameserversを指定できない理由があるのであれば、私の提案は的外れになってしまうので
無視してください。

編集 履歴 (0)

Squidのログには特に何もでていなかったんでしょうか?

編集 履歴 (0)

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

修飾表現では不快かつ誤解を招いたようで失礼しました。

OSはRed Hat Enterprise Linux Server release 5.3
Squidは2.7.STABLE6 でした。

ご指摘・ご教示ありがとうございました。
失礼します。

編集 履歴 (0)

文章の冒頭で
「ドメインAの端末のDNS指定はもちろんドメインコントローラですが、」
とありますが、あなたの会社、環境では「もちろん」そうかもしれませんが、唯一絶対の解など
情報システムの分野ではありえないと思いますので、「もちろん」とは書かないほうがよいと思います。

あと、少なくとも、使用されているソフトウェアのバージョンを伝えるべきだと思います。
当方でもSquidは使用していますが、以下の内容を省略されては指摘できないです。

・Linuxのディストリビューション、およびバージョン(例:CentOS 5.8)
・Squidのバージョン
・Squid.confの内容

>このようなケースでは、接続によってはresolvに記載された、
>どちらに問合せに行くか不定な為、発生していたと考えられるのでしょうか?

manコマンドぐらい使いましょう。もしくはGoogleで「man resolv.conf」と検索しましょう。

はじめにネームサーバに問い合わせを試みる。 この問い合わせがタイムアウトになった場合、 次のネームサーバに問い合わせを試みる。これをネームサーバがなくなるまで続ける。 それでも応答がない場合は、リトライ最大回数に達するまで 全てのネームサーバに問い合わせを繰り返す。

と書いています。そのため、記載しておられる情報だけでは「このようなケースでは、・・・」とは断定できないと思います。

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。