ICMP
ICMP 가이드: ping, 경로 추적 및 네트워크 진단
ICMP가 TCP 및 UDP 포트와 어떻게 다른지, 에코 요청을 허용하는 경우, 남용을 유발하지 않고 진단을 유용하게 유지하는 방법을 이해합니다.
- 기본 포트
- ICMP
- 프로토콜
- ICMP
- 주요 용도
- 네트워크 진단
ICMP란 무엇인가요?
ICMP(인터넷 제어 메시지 프로토콜)는 네트워크 제어 및 오류 메시지를 전달합니다. ping 및 Traceroute와 같은 도구에서 사용되지만 TCP 또는 UDP 서비스가 아니며 HTTP, SSH 또는 DNS와 같은 방식으로 포트 번호가 없습니다.
ICMP에는 포트가 아닌 유형과 코드가 있습니다.
Ping은 ICMP 에코 요청 및 에코 응답 메시지를 사용합니다. 다른 ICMP 메시지는 도달할 수 없는 대상, 시간 초과, 조각화 요구 및 라우팅 문제를 보고합니다.
모든 ICMP를 차단하면 문제 해결이 어려울 수 있습니다.
일부 ICMP 메시지는 경로 MTU 검색, 대기 시간 확인, 모니터링, 라우팅 또는 방화벽 문제 진단에 중요합니다.
ICMP 작동 방식
ICMP는 IP와 함께 네트워크 상태를 보고합니다. 호스트, 라우터 또는 방화벽은 대상에 연결할 수 없거나, 전송 중에 패킷이 만료되거나, 조각화가 필요하거나, 진단 에코 요청에 응답이 필요한 경우 ICMP 메시지를 보낼 수 있습니다.
가장 친숙한 ICMP 작업 흐름은 ping입니다. 클라이언트는 에코 요청을 보내고 대상은 에코 응답으로 응답합니다. 왕복 시간은 연결 가능성 및 대기 시간에 대한 빠른 신호를 제공하지만 443 또는 22와 같은 애플리케이션 포트가 열려 있음을 증명하지는 않습니다.
ICMP 포트와 TCP 및 UDP 포트
ICMP는 TCP 또는 UDP 포트 번호를 사용하지 않습니다. 메시지 유형과 코드를 사용합니다. 그렇기 때문에 ICMP 가이드를 일반적인 개방형 포트 기사처럼 취급해서는 안 됩니다. 데몬이 번호가 지정된 포트에서 수신 대기하는지 여부가 아니라 특정 ICMP 메시지를 허용할지 여부를 결정하는 것입니다.
포트 검사기는 TCP 또는 UDP 서비스 연결 가능성을 테스트합니다. Ping은 ICMP 도달성을 테스트합니다. 둘 다 유용하지만 서로 다른 질문에 답합니다. 서버는 HTTPS가 작동하는 동안 ping을 차단하거나 모든 애플리케이션 포트가 닫혀 있는 동안 ping에 응답할 수 있습니다.
핑과 경로 추적
Ping은 대상이 ICMP 에코에 응답하는지 여부와 왕복 시간이 얼마나 걸리는지 확인합니다. 빠른 연결 가능성 확인, 프로브 모니터링 및 대기 시간 기준에 유용합니다.
Traceroute는 TTL 값이 증가하는 패킷을 전송하고 도중에 라우터에서 ICMP 시간 초과 메시지를 읽어 경로를 매핑합니다. 일부 플랫폼은 경로 추적을 위해 UDP 또는 TCP 프로브를 사용하지만 ICMP 메시지는 여전히 중간 홉을 보고하는 경로 진단 수의 핵심입니다.
ICMP를 허용해야 하는 경우
모니터링 시스템, 로드 밸런서, 네트워크 팀 또는 운영 직원이 연결 가능성 및 대기 시간 신호가 필요한 경우 ICMP를 허용합니다. 내부 네트워크의 경우 제어된 ICMP를 허용하면 문제 해결이 향상되고 사각지대가 줄어드는 경우가 많습니다.
공용 시스템의 경우 많은 팀에서 신뢰할 수 있는 모니터링 소스의 제한된 에코 응답을 허용하고 조각화가 필요하거나 대상에 도달할 수 없는 동작과 같은 필수 오류 메시지를 허용합니다. 정확한 정책은 네트워크 에지, DDoS 상태 및 관찰 가능성 요구 사항과 일치해야 합니다.
ICMP 방화벽 규칙을 변경하기 전
ICMP를 차단하거나 허용하기 전에 어떤 메시지를 제어할지 결정하세요. 에코 요청, 에코 응답, 시간 초과, 대상에 연결할 수 없음, 패킷이 너무 큰 동작은 운영에 서로 다른 영향을 미칩니다.
트레이드오프를 이해하지 못하는 한 블랭킷 블록을 피하십시오. 모든 ICMP를 차단하면 경로 MTU 검색이 중단되고, 유용한 라우팅 오류가 숨겨지며, 모니터링의 정확도가 낮아지고, 팀이 더 약한 신호로 디버깅하게 될 수 있습니다.
Windows, Linux 및 클라우드 방화벽에서 ICMP를 관리하는 방법
Windows에서 Windows Defender 방화벽에는 선택한 프로필 및 소스 주소에 대해 활성화할 수 있는 미리 정의된 ICMP 에코 규칙이 있습니다. 기본적으로 광범위한 공개 핑 응답을 활성화하는 대신 가능한 경우 신뢰할 수 있는 네트워크로 규칙 범위를 지정하세요.
Linux에서는 nftables, iptables, Firewalld, 클라우드 보안 그룹에서 유형별로 ICMP를 허용하거나 제한할 수 있습니다. 많은 배포판에서는 에코 동작에 대한 커널 sysctl 설정도 공개하지만 일반적으로 방화벽 정책이 더 명확한 제어 지점입니다.
클라우드 플랫폼에서 보안 그룹은 종종 ICMP를 TCP 및 UDP와 별도로 취급합니다. 인바운드 및 아웃바운드 정책을 모두 확인하고 로드 밸런서, CDN 에지 및 공급자 DDoS 제어가 인스턴스 방화벽과 다르게 ICMP를 처리할 수 있다는 점을 기억하세요.
- 진단: 필요한 경우 ping, 경로 추적, 경로 MTU 검색 및 오류 가시성을 위해 충분한 ICMP를 허용합니다.
- 범위 지정: 광범위한 가시성이 필요하지 않은 경우 공개 에코 응답을 신뢰할 수 있는 모니터링 소스로 제한합니다.
- 속도 제한: 속도 제한 또는 가장자리 보호를 사용하여 모든 진단을 제거하지 않고도 홍수 위험을 줄일 수 있습니다.
- 검증: ICMP 도달성과 애플리케이션 포트는 서로 다른 질문에 대답하므로 둘 다 테스트합니다.
ICMP 테스트 방법
ping을 사용하여 에코 요청 및 응답을 테스트합니다. Traceroute 또는 Tracert를 사용하여 경로를 검사하고 패킷이 중지되는 위치를 식별하십시오. 일부 라우터는 의도적으로 ICMP 응답을 억제하거나 속도를 제한한다는 점을 염두에 두십시오.
ping이 실패했지만 응용 프로그램이 작동하는 경우 TCP 또는 UDP는 허용되지만 ICMP는 차단될 수 있습니다. ping은 작동하지만 애플리케이션이 실패하는 경우 네트워크 계층에서 대상에 연결할 수 있지만 특정 서비스 포트, 방화벽 규칙, 리스너 또는 애플리케이션이 손상될 수 있습니다.
일반적인 ICMP 문제 해결 사례
ping 시간이 초과되면 대상이 다운되거나 경로가 누락되거나 ICMP 에코가 차단되거나 중간 방화벽이 메시지를 삭제할 수 있습니다. 시간 초과는 호스트가 오프라인 상태임을 자동으로 증명하지 않습니다.
Traceroute가 홉에서 중지되면 해당 홉은 TTL 만료 응답을 필터링하거나 속도 제한 진단을 수행할 수 있습니다. 작은 요청이 작동하는 동안 큰 전송이 실패하는 경우 경로 MTU 검색 및 너무 큰 패킷 메시지가 차단되는지 여부를 확인하세요.
ICMP 보안 체크리스트
모든 것을 반사적으로 차단하기보다는 의도적으로 ICMP를 허용하십시오. 에코 트래픽 속도를 제한하고, 적절한 경우 공개 응답 범위를 지정하고, 안정적인 네트워킹에 필요한 중요한 오류 메시지를 보존합니다.
비정상적인 ICMP 볼륨, 스푸핑된 소스 및 엣지의 플러드 패턴을 모니터링합니다. 민감한 네트워크의 경우 보안 경계로 핑 가시성에 의존하는 대신 ICMP 정책을 분할 및 신뢰할 수 있는 모니터링과 결합합니다.
자주 묻는 질문
ICMP는 어떤 포트를 사용하나요?
ICMP는 TCP나 UDP 포트를 사용하지 않습니다. ping에 대한 에코 요청 및 에코 응답과 같은 메시지 유형 및 코드를 사용합니다.
ping은 포트체크와 같은건가요?
아니요. Ping은 ICMP 연결 가능성을 테스트합니다. 포트 확인은 TCP 또는 UDP 서비스에 연결할 수 있는지 테스트합니다. 호스트는 모든 애플리케이션 포트가 닫혀 있는 동안 ping에 응답하거나 애플리케이션이 계속 작동하는 동안 ping을 차단할 수 있습니다.
ICMP를 차단해야 하나요?
영향을 이해하지 않고 기본적으로 모든 ICMP를 차단하지 마십시오. 제어된 ICMP는 모니터링, 경로 추적, 경로 MTU 검색 및 문제 해결을 돕습니다. 가능하면 범위나 속도를 제한하세요.
Ping은 실패하는데 웹사이트는 작동하는 이유는 무엇입니까?
서버나 네트워크에서 HTTP나 HTTPS를 허용하면서 ICMP 에코를 차단할 수 있습니다. 실제 애플리케이션 포트를 테스트하여 서비스 도달성을 확인합니다.