질문:
특정 사이트를 탐색할 때 502/504 GATEWAY_TIMEOUT 오류가 표시되는 이유는 무엇입니까?
증상: 사용자가 특정 웹 사이트를 탐색할 때 Cisco WSA에서 502 또는 504 게이트웨이 시간 초과 오류를 수신합니다.
사용자는 웹 사이트를 탐색할 때 502 또는 504 게이트웨이 시간 초과 오류를 수신합니다. 액세스 로그는 'NONE/504' 또는 'NONE/502'로 표시됩니다.
샘플 액세스 로그 행:
1233658928.496 153185 10.10.70.50 없음/504 1729 GET http://www.example.com/ - DIRECT/www.example.com - .......
WSA에서 502 또는 504 게이트웨이 시간 초과 오류를 반환할 수 있는 이유는 여러 가지가 있습니다. 이러한 오류 응답은 유사하지만, 둘 사이의 미묘한 차이를 이해하는 것이 중요합니다.
다음은 발생할 수 있는 시나리오 유형의 몇 가지 예입니다.
- 502: WSA에서 웹 서버와의 TCP 연결을 설정하려고 했지만 SYN/ACK를 받지 못했습니다.
- 504: WSA에서 웹 서버와의 연결을 종료하는 TCP 재설정(RST)을 수신하고 있습니다.
- 504: WSA에서 웹 서버와의 통신에 앞서 필수 서비스로부터 응답을 받지 못했습니다(예: DNS 실패).
- 504: WSA에서 웹 서버와의 TCP 연결을 설정하고 GET 요청을 전송했지만 WSA에서 HTTP 응답을 수신하지 못했습니다.
다음은 각 시나리오의 예이며 잠재적인 문제와 관련된 자세한 내용입니다.
502: WSA에서 웹 서버와의 TCP 연결을 설정하려고 했지만 SYN/ACK를 받지 못했습니다. |
웹 서버가 WSA의 SYN 패킷에 응답하지 않을 경우, 특정 시도 후 클라이언트에게 502 게이트웨이 시간 초과 오류가 전송됩니다.
일반적인 원인은 다음과 같습니다. 1. 웹 서버 또는 웹 서버 네트워크에 문제가 있습니다. 2. WSA 네트워크의 네트워크 문제로 인해 SYN 패킷이 인터넷에 도달하지 못합니다. 3. 방화벽 또는 유사 디바이스에서 WSA SYN 패킷 또는 웹 서버의 SYN/ACK를 삭제하는 중입니다. 4. WSA에서 IP 스푸핑이 활성화되었지만 올바르게 구성되지 않았습니다(반환 경로 리디렉션 없음).
문제 해결 단계: 첫 번째 단계는 WSA에서 웹 서버에 ICMP ping을 수행할 수 있는지 확인하는 것입니다. 이 작업은 다음 CLI 명령을 사용하여 수행할 수 있습니다.
WSA> ping www.example.com Ping이 실패해도 서버가 다운된 것은 아닙니다. ICMP 패킷이 경로 어딘가에서 차단되고 있음을 의미할 수 있습니다. Ping이 성공하면 WSA에 웹 서버에 대한 기본 레이어 3 연결 수준이 있는지 확인할 수 있습니다. 텔넷 테스트는 WSA에서 포트 80에서 웹 서버에 대한 TCP 연결을 설정할 수 있는지 확인합니다. 텔넷 테스트 수행에 대한 자세한 내용은 이 문서의 지침을 참조하십시오. 네트워크 문제 또는 방화벽 차단
ping은 성공했지만 텔넷은 실패하는 경우 방화벽 등의 필터링 디바이스로 인해 이 트래픽이 네트워크를 통과하지 못할 가능성이 높습니다. 자세한 내용은 방화벽 로그 및/또는 방화벽에서의 패킷 캡처를 분석하는 것이 좋습니다. IP 스푸핑이 활성화되었지만 올바르게 구성되지 않음 WSA를 통해 명시적으로 프록시하거나 텔넷 테스트에 성공한 경우, 이는 WSA가 웹 서버와 직접 통신할 수 있음을 보여주지만, 클라이언트가 IP 스푸핑을 사용하여 WSA를 통해 프록시할 경우 문제가 있음을 보여줍니다. 클라이언트 IP 스푸핑 없이:
- WSA는 자체 IP 주소를 소스로 사용하여 웹 서버에 SYN을 전송합니다. 패킷이 다시 오면 WSA로 직접 이동합니다.
클라이언트 IP 스푸핑 사용:
- WSA는 SYN을 전송하지만 대신 클라이언트의 IP를 소스로 사용합니다. 특별한 네트워크 설정이 없으면 반환 패킷이 WSA가 아닌 클라이언트로 전송됩니다.
- 클라이언트 IP 스푸핑을 사용하려면 패킷이 올바르게 리디렉션되도록 매우 구체적인 방법으로 네트워크를 구성해야 합니다. 웹 서버 반환 경로 패킷이 WSA가 아닌 클라이언트로 전송되는 경우 WSA는 서버 SYN/ACK를 볼 수 없으며 클라이언트로 다시 502 게이트웨이 시간 초과 오류를 보냅니다.
|
504: WSA에서 웹 서버와의 연결을 종료하는 TCP 재설정(RST)을 수신하고 있습니다. |
WSA가 웹 서버에 대한 업스트림 연결에서 TCP 재설정 패킷을 수신하면 WSA는 클라이언트에 504 게이트웨이 시간 초과 오류를 보냅니다. 일반적인 원인은 다음과 같습니다. 1. Cisco L4TM(Layer 4 Traffic Monitor)이 WSA 프록시의 웹 서버 연결을 차단하고 있습니다. 2. 방화벽, IDS, IPS 또는 기타 패킷 검사 장치가 WSA를 차단하고 있습니다. 문제 해결 단계: 먼저 TCP RST가 L4TM에서 오는지 또는 다른 디바이스에서 오는지 확인합니다. L4TM이 이 트래픽을 차단하고 있으면 GUI 보고서의 "Monitor -> L4 Traffic Monitor" 아래에 트래픽이 표시됩니다. 그렇지 않으면 RST는 다른 디바이스에서 옵니다. L4TM 차단: L4TM이 차단 중인 경우 WSA 프록시가 실행 중인 포트에서 차단하지 않는 것이 좋습니다. 여기에는 여러 가지 이유가 있습니다. 1. WSA 프록시는 문제가 발생할 경우 TCP만 연결을 재설정하는 대신 사용자에게 친숙한 오류 메시지를 제공합니다. 이렇게 하면 최종 사용자가 차단되었을 때 혼동을 제한할 수 있습니다. 2. WSA 프록시는 특정 콘텐츠를 스캔 및 차단할 수 있는 기능이 있지만, L4TM은 블랙리스트 IP 주소와 일치하는 모든 트래픽을 차단합니다. L4TM이 프록시 포트에서 차단되지 않도록 구성하려면 "GUI -> Security Services -> L4 Traffic Monitor"로 이동합니다. 사이트가 알려진 악성 웹 사이트이지만 트래픽을 허용해야 하는 이유가 있는 경우 다음 위치에 사이트를 흰색으로 표시할 수 있습니다. "GUI -> Web Security Manager -> L4 Traffic Monitor -> Allow List" 방화벽/IDS/IPS 차단: 네트워킹의 다른 디바이스가 WSA의 웹 서버 연결을 차단하는 경우 다음을 분석하는 것이 좋습니다. 1. 방화벽 차단 로그 2. 문제 중 인그레스/이그레스 패킷 캡처 차단 로그는 디바이스가 WSA를 차단하는지 신속하게 확인할 수 있습니다. 방화벽, IPS 또는 IDS가 트래픽을 차단하고 적절하게 로깅하지 않는 경우가 있습니다. 이 경우, TCP RST가 어디에서 오는지를 증명하는 유일한 방법은 디바이스에서 인그레스 및 이그레스 캡처를 획득하는 것입니다. RST가 인그레스 인터페이스로 전송되고 이그레스 쪽을 통해 전송된 패킷이 없는 경우, 보안 디바이스가 그 원인입니다.
|
504: WSA에서 웹 서버와의 TCP 연결을 설정하고 GET 요청을 전송했지만 WSA에서 HTTP 응답을 수신하지 못했습니다. |
WSA에서 HTTP GET을 전송하지만 응답을 수신하지 못하는 경우, 클라이언트에 504 게이트웨이 시간 초과 오류를 보냅니다. 일반적인 원인은 다음과 같습니다.
- 방화벽, IDS, IPS 또는 기타 패킷 검사 장치는 TCP 연결을 허용하지만 HTTP 콘텐츠가 웹 서버에 도달하는 것을 차단합니다. 이 경우 텔넷 테스트는 차단되는 HTTP 데이터 종류를 격리하는 데 도움이 될 수 있습니다.
방화벽 차단 로그는 디바이스가 WSA를 차단하는지/왜 차단하는지 신속하게 확인할 수 있습니다. 방화벽, IPS 또는 IDS가 트래픽을 차단하고 적절하게 로깅하지 않는 경우가 있습니다. 이 경우, TCP RST가 어디에서 오는지를 증명하는 유일한 방법은 디바이스에서 인그레스 및 이그레스 캡처를 획득하는 것입니다. RST가 인그레스 인터페이스로 전송되고 이그레스 쪽을 통해 전송된 패킷이 없는 경우, 보안 디바이스가 그 원인입니다. |
텔넷을 사용하여 웹 서버와의 연결 테스트 |
WSA CLI에서 telnet 명령을 실행합니다.
WSA> 텔넷 텔넷할 인터페이스를 선택하십시오. 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
10.3.2.99를 시도하는 중... www.example.com에 연결됨. 이스케이프 문자는 '^]'입니다.
메모: 빨간색으로 표시된 "Connected(연결됨)" 메시지는 WSA와 웹 서버 간에 TCP가 성공적으로 설정되었음을 나타냅니다.
이 텔넷 세션을 통해서도 HTTP 요청을 수동으로 전송할 수 있습니다. 다음은 "연결됨" 메시지 다음에 입력할 수 있는 샘플 요청입니다.
------------------------------------------------------------------------------------- http://www.example.com 다운로드 HTTP/1.1 호스트: www.example.com {입력 사항} -------------------------------------------------------------------------------------
참고: 끝에 추가 캐리지 리턴을 추가해야 합니다. 그렇지 않으면 서버가 요청에 응답하지 않습니다. |