새로운 환경에서 고정 IP를 배정받은 후, 특정 사이트에 접속이 안 되는 상황이 발생했어요.
어느 단계에서 오류가 발생하는지 확인하기 위해 cmd 창에서 tracert 명령어를 사용해봤습니다.
지속적으로 요청 시간이 만료되었는데, 요청 시간의 만료란 네트워크 통신에서 응답을 기다리는 시간이 초과되었다는 뜻이며, 우리가 자주 보던 오류네요. 원인을 다음과 같이 규정할 수 있습니다.
- DNS 캐시 문제
- DNS란 웹사이트 주소를 IP 주소로 변환하는 시스템으로, DNS 캐시란 이렇게 변환된 정보를 빠르게 사용할 수 있도록 컴퓨터에 임시 저장해두는 데이터입니다.
DNS는 크게 네 가지 계층에서 관리합니다.
- 자체 브라우저(Chrome, Firefox 등)
- 운영체제(Windows 등)
- 로컬 네트워크의 DNS 서버(회사 자체의 서버 등)
- 루트 DNS 서버
순서대로 상위 계층이며, 상위 계층에서 해당 DNS 캐시값을 얻게 되면 하위 계층은 확인하지 않습니다.
이 문제 상황에서 DNS 캐시 문제인지 확인하려면, 해당 사이트에 IP 주소로 직접 접속을 시도해볼 수 있습니다. 특정 사이트의 IP 주소를 확인하는 방법은 'nslookup 도메인주소'입니다.
해당 IP 주소로 접속을 시도했으나, 똑같은 결과를 얻을 수 있었습니다. DNS 캐시의 문제는 아니었네요.
2. ICMP 패킷 차단 (공부하다 보니, 사이트 접속 불가의 원인은 될 수 없고, tracert나 ping 차단의 원인만 됨)
- ICMP란 네트워크 간의 통신 상태를 확인하는 프로토콜입니다.
일반적으로 오류 진단을 위해 사용되는 프로토콜로, ping 또는 위에서 사용한 tracert 등의 명령어가 ICMP를 기반으로 작동합니다. 특정 포트를 대상으로 하지 않고, TCP, UDP와 같은 전송 계층 프로토콜은 연결되지 않습니다.
이러한 ICMP 패킷을 차단하는 이유는 ping 요청으로부터 서버를 보호하기 위해서입니다. ping 요청은 해당 주소에서의 응답을 요구하고, 반복된 ping 응답으로 서버의 리소스가 모두 할당되어 서버가 과부하되어 서비스가 중단되기 때문에, 패킷을 차단하는 경우가 있습니다. 하지만 해당 차단은 웹 서비스 자체를 차단하는 것이 아니므로, 제 오류 상황의 원인이 될 수는 없겠네요.
3. 네트워크 정책상 차단
- DNS 조회는 정상
- 도메인을 IP로 변환하는 것까지는 문제가 없음
- 다른 네트워크로는 정상 접속 가능
- DNS 서버가 정상적으로 작동하고 있다는 의미
이러한 증상들을 종합해볼 때, 이는 회사의 네트워크 정책에 의한 차단으로 볼 수 있습니다.
SSAFY 에서 solved.ac 는 이용이 힘들겠군요...