issue closed

ローカルネットワーク内のHTTP通信が2回に1回交互にタイムアウトするようになった原因

投稿日:2019年5月30日 更新日:

事象

ある日突然、オフィスのローカル開発環境でHTTP通信が異常なほど遅くなり、タイムアウトするようになりました。

その後F5でリロードすると普通にレスポンスが返ってくる、といった感じで2回に1回、交互に遅くなります。

特定のPC、スマホで発生しており、違うチームの機器では起こっていない事象でした。

また、本来来るはずのRedmineやGitLabからの通知メールが全く来なくなっていることにも気づきました。

調査

仕事にならないので調査を始めると、遅い端末はCentOS7.3に立てたSquid 3.5.20をHTTP、HTTPSプロキシに設定していることが分かりました。

squidを通さないようにプロキシを設定すると事象は発生しなくなる為、squidに原因があるとみてバージョンアップやら設定見直しをしましたが復旧せず、原因が分かりません。squidのログにもそれらしいものがありませんでした。

そこで対象のsquidは一旦諦め、別のCentOS7.3にsquidを新規インストールし、同じ設定でsquidを起動、プロキシとして設定しました。

しかし・・・全く同じ事象が発生しました。これはsquidが原因では無い、他に要因がある、と気づき始めました。

解決

目線を変え、/etc/resolv.confで設定している参照先DNSにpingしてみると、WAN内にある優先DNSサーバから応答がありません。生きてる方の代替DNSサーバを先の行に設定すると・・・事象が解決しました。

プライマリDNSが落ちていたのが原因で、squidは主原因ではありませんでした。DNSが両方死んでいるなら接続出来ずに気付いたのでしょうが・・・なまじ繋がってしまう為にsquidの方に目が行っていました。

PCでプライマリ、セカンダリDNSを設定している場合、片側だけ死んでいる場合は生きているDNSに切り替えて普通に使えてしまいますが、運用中のsquid設定では毎回死んでいるプライマリDNSに名前解決を依頼し、タイムアウトしたら次は生きているセカンダリDNSに依頼する、という挙動であるようです。

そう考えるとsquidが原因、とも言えるので設定を再調査する予定です。

その後

管理者が運管ミドルからのアラートメールに気付いてプライマリDNSは即日復旧されました。

この件を通じて学んだことは、squidを通している環境でメールが届かない、HTTP通信がタイムアウトしたりしなかったりした時にまず怪しむべきはプライマリDNSであるということです。

人間切羽詰まると視野が狭まって全体像を掴めなくなります。そんな時は一呼吸入れて落ち着くのを忘れないようにしたいですね。

-issue closed

執筆者:

関連記事

git push時に「error: RPC failed; result=22, HTTP code = 501」エラー

目次1 事象2 原因3 対処 事象 オンプレGitLabへのgit push時に掲題のエラーが発生してpushに失敗します。 原因 git push時の1ファイル最大サイズは1Mbyteの為。 git …

Angularのテンプレート評価式にビット演算を使うとTemplate parse errorが発生する

AngularのテンプレートHTMLでビット演算をすることは禁じられているので代替手段を考えます。 目次1 事象2 原因3 対処 事象 CSSクラスをビット演算で切り替えるテンプレートを書きました。c …

EclipseのXMLエディタ一行目でDTDエラー「参照ファイルにエラーが含まれています」

目次1 事象2 原因3 対処4 まとめ 事象 checkstyleのルールXMLをEclipseで開くと一行目にエラーマーク。 カーソルを合わせた時のメッセージ。 XMLのデータ構造整合性をチェックす …

スタンドアロンモードのPgAdmin4が開くデフォルトブラウザを変更

PostgreSQL公式GUIクライアントツールの「PgAdmin4」。 PostGISのgeometry型をWeb地図上に表示出来たり、サーバモードで起動すればチーム内で共通的に使えるPostgre …

Angular4.4のHTTP通信処理にタイムアウトを設定をすると「timeout is not a function」エラーが発生する

目次1 事象2 原因3 対処4 まとめ 事象 Angular4.3で追加されたHttpClientModuleに移行せず、HttpModuleを使い続けているアプリで、とある理由からpackage-l …

 

shingo.nakanishi
 

東京在勤、職歴2n年中年ITエンジニアです。まだ開発現場で頑張っています。

19歳(1996年)から書き始めたアウトプット用プライベートWeb日記数が5,000日を超え、残りの人生は発信をして行きたいと思い、令和元日からこのサイトを開始しました。勉強と試行錯誤をしながら、自分が経験したIT関連情報を投稿しています。

私と同じく、今後IT業界で生計を立てて行きたいと考えている方や、技術共有したいけど仲間が居なくて孤独、といった方と一緒に成長、知識共有して行けたら楽しいな、と思っています。