質問:
特定のサイトを参照する場合に 502/504 GATEWAY_TIMEOUT エラーが表示されるのはなぜですか。
症状:ユーザが特定のWebサイトを参照する際に、Cisco WSAから502または504ゲートウェイタイムアウトエラーを受け取る
ユーザは Web サイトを参照しているときに、502 または 504 のゲートウェイ タイムアウト エラーを受信します。アクセス ログには、「NONE/504」または「NONE/502」のどちらかが示されます。
サンプル アクセス ログ ライン:
1233658928.496 153185 10.10.70.50 NONE/504 1729 GET http://www.example.com/ - DIRECT/www.example.com - .......
WSA が 502 または 504 のゲートウェイ タイムアウト エラーを返す原因は複数あります。これらのエラー応答は似ていますが、これらの間にあるわずかな違いを理解することが重要です。
発生する可能性のあるシナリオ タイプの例を次に示します:
- 502: WSAがWebサーバとのTCP接続を確立しようとしましたが、SYN/ACKを受信しませんでした。
- 504: WSAはWebサーバとの接続を終了するTCPリセット(RST)を受信しています。
- 504: WSAが、DNSなどのWebサーバとの通信に失敗する前に、必要なサービスから応答を受け取っていません。
- 504: WSAがWebサーバとのTCP接続を確立し、GET要求を送信しましたが、WSAがHTTP応答を受信しませんでした。
次に各シナリオの例と潜在的な問題に関する詳細を示します:
502: WSAがWebサーバとのTCP接続を確立しようとしましたが、SYN/ACKを受信しませんでした。 |
Web サーバが WSA の SYN パケットに応答しなければ、一定量の試行の後に、クライアントに 502 のゲートウェイ タイムアウト エラーが送信されます。
この問題の一般的な原因は次のとおりです: 1. WebサーバまたはWebサーバネットワークに問題があります。 2. WSAネットワークのネットワーク問題により、SYNパケットがインターネットに到達できません。 3.ファイアウォールなどのデバイスで、WSA SYNパケットまたはWebサーバのSYN/ACKが廃棄されている 4. IP スプーフィングが WSA でイネーブルにされますが、正しく設定されていません(リターン パスのリダイレクトなし)。
トラブルシューティングの手順: まず、WSA が Web サーバで ICMP ping を実行できるかどうかを確認します。これは、次の CLI コマンドを使用して実行できます:
WSA> ping www.example.com ping が失敗しても、サーバがダウンしていることを意味するわけではありません。ICMP パケットがパスのどこかでブロックされていることを示している場合もあります。ping が成功する場合は、WSA に Web サーバへの接続の基本レイヤ 3 レベルがあることが確実にわかります。 telnet テストにより、WSA に Web サーバへのポート 80 での TCP 接続を確立する機能があるかどうかを確認します。telnet テストの実行については、この文書の手順を参照してください。 ネットワークの問題またはファイアウォールのブロック
ping は成功するが telnet は失敗する場合、ファイアウォールなどのフィルタリング デバイスが、このトラフィックがネットワークを通じて取得されることを阻害している可能性があります。ファイアウォール ログまたはファイアウォールからのパケット キャプチャあるいはその両方を、さらに詳細に分析することを推奨します。 IP スプーフィングがイネーブルだが正しく設定されていない WSA または telnet テストを介した明示的なプロキシが正常に完了した場合、これは WSA が Web サーバと直接通信できることを意味しますが、クライアントが IP スプーフィングを使用して WSA を介してプロキシする場合は問題があります。 クライアントの IP スプーフィングなしの場合:
- WSA は送信元として独自の IP アドレスを使用して Web サーバに SYN を送信します。パケットが復帰した場合、直接 WSA に送信されます。
クライアントの IP スプーフィングがある場合:
- WSA は SYN を送信しますが、代わりに送信元としてクライアントの IP を使用します。特別なネットワークの設定なしで、応答パケットが WSA ではなくクライアントに送信されます。
- クライアント IP スプーフィングを使用するには、パケットが正しくリダイレクトされることを促進するためのきわめて特殊な方法でネットワークを設定する必要があります。Web サーバのリターン パス パケットが WSA ではなくクライアントに送信されると、WSA はサーバの SYN/ACK を確認できず、クライアントに 502 ゲートウェイ タイムアウト エラーを送り返します。
|
504: WSAはWebサーバとの接続を終了するTCPリセット(RST)を受信しています。 |
WSA が Web サーバへのアップストリームの接続で TCP リセット パケットを受信すると、WSA はクライアントに対して 504 のゲートウェイ タイムアウト エラーを送信します。 この問題の一般的な原因は次のとおりです: 1.シスコのレイヤ4トラフィックモニタ(L4TM)が、WSAプロキシによるWebサーバへの接続をブロックしている。 2.ファイアウォール、IDS、IPS、またはその他のパケットインスペクションデバイスがWSAをブロックしている。 トラブルシューティングの手順: 最初に、TCP RST が L4TM から送信されているのか別のデバイスから送信されているのかを判別します。 L4TM がこのトラフィックを妨げている場合、[Monitor] > [L4 Traffic Monitor] を選択すると、トラフィックが GUI のレポートに表示されます。それ以外の場合、RST はさまざまなデバイスから送信されています。 L4TM ブロック: L4TM がブロックされている場合は、WSA プロキシも実行しているポートでブロックしないことが推奨されています。これには複数の理由があります: 1. WSAプロキシは、問題が発生した場合、TCPが接続をリセットするだけでなく、わかりやすいエラーメッセージを表示します。これは、エンド ユーザがブロックされた場合の混乱を抑える役割を果たします。 2. WSAプロキシは特定のコンテンツをスキャンしてブロックする機能を備えていますが、L4TMはブラックリストに登録されたIPアドレスに一致するすべてのトラフィックをブロックします。 L4TM をプロキシ ポートでブロックしないように設定するには、[GUI] > [Security Services] > [L4 Traffic Monitor] を実行します。 サイトが既知の不正な Web サイトだがトラフィックが許可される理由がある場合、そのサイトは以下でホワイト リストされている可能性があります: [GUI] > [Web Security Manager] > [L4 Traffic Monitor] > [Allow List] ファイアウォール / IDS / IPS ブロッキング: ネットワーク上の別のデバイスが WSA の Web サーバへの接続を妨げる場合、次を分析することが推奨されます: 1. ファイアウォール ブロックのログ 2. 問題時の入力パケット キャプチャおよび出力パケット キャプチャ ブロックのログは、デバイスが WSA を妨げているかどうかを迅速に確認する場合があります。ファイアウォール、IPS、または IDS がトラフィックをブロックし、適切にログを取らない場合があります。この場合、TCP RST の発信元を検証する唯一の方法は、デバイスからの入力と出力のキャプチャを取得します。RST に入力インターフェイスが送信され、パケットが出力側を移動していない限り、最終的にセキュリティ デバイスが原因となります。
|
504: WSAがWebサーバとのTCP接続を確立し、GET要求を送信しましたが、WSAがHTTP応答を受信しませんでした。 |
WSA が HTTP GET を送信しますが、応答を受け取らない場合、WSA はクライアントに 504 ゲートウェイ タイムアウト エラーを送信します。 この問題の一般的な原因は次のとおりです:
- ファイアウォール、IDS、IPS、または他のパケット インスペクション デバイスは、TCP 接続を許可していますが、HTTP コンテンツが Web サーバに到達するのを妨げています。この場合、telnet テストはブロックされているタイプの HTTP データを分離するのに役立つ可能性があります。
ファイアウォールのブロックのログは、デバイスが WSA をブロックしているかどうか、およびその原因を迅速に確認できます。ファイアウォール、IPS、または IDS がトラフィックをブロックし、適切にログを取らない場合があります。この場合、TCP RST の発信元を検証する唯一の方法は、デバイスからの入力と出力のキャプチャを取得します。RST に入力インターフェイスが送信され、パケットが出力側を移動していない限り、最終的にセキュリティ デバイスが原因となります。 |
telnet を使用した Web サーバとの接続テスト |
次のように WSA CLI から telnet コマンドを実行します:
[WSA] > [Telnet] telnet の開始場所となるインターフェイスを選択してください。 1. 自動 2. 管理(192.168.15.200/24:wsa.hostname.com) 3. P1(192.168.113.199/24:data.com) [1] > 3 リモート ホスト名または IP アドレスを入力します。 []> www.example.com
リモート ポートを入力します。 [25]> 80
Trying 10.3.2.99... www.example.comに接続. Escape character is '^]'.
注:赤色の「Connected」メッセージは、TCP が正常に WSA と Web サーバ間で確立されたことを示しています。
HTTP 要求はこの telnet セッションを使用して手動で送信することも可能です。次は、「Connected」メッセージの後に入力できるサンプル要求です:
0.------------------------------------------------------------------------------------- http://www.example.comを入手する HTTP/1.1 HOST: www.example.com {Enter} 0.-------------------------------------------------------------------------------------
注:必ず最後にキャリッジリターンを追加してください。追加しないと、サーバが要求に応答しなくなります。 |