ICMP와 ICMPv6: 오류 보고부터 네트워크 진단까지

ICMP와 ICMPv6의 오류 보고·진단 메시지, ping과 traceroute 활용 방식, ICMP Flooding 대응 방안을 정리한다.

2026-08-14 · 최초 발행 2025-08-10

패킷 전달 문제를 되돌려 알리는 제어 메시지

ICMP(Internet Control Message Protocol)는 TCP/IP 프로토콜 스위트에서 IP 패킷 처리 중 발생한 문제를 알리고, 통신 상태를 진단하는 역할을 맡는다. 네트워크 장치가 제어 메시지를 교환해 오류 상황을 전달하며, OSI 모델에서는 네트워크 계층(3계층)에서 동작한다.

주된 목적은 데이터 전송이 아니라 네트워크 관리와 오류 보고다. 패킷을 전달할 수 없거나, 경로 변경이 필요하거나, 전달 시간이 초과된 상황을 송신자에게 알려 관리자가 원인을 추적할 수 있게 한다.

오류 통지와 진단에 쓰이는 ICMP

ICMP는 패킷 전달 실패, 시간 초과, 경로 변경 필요성과 같은 상태를 보고한다. 이 정보는 네트워크 장애를 진단하고 해결하는 단서가 된다.

또한 ping과 traceroute 같은 진단 도구의 기반이기도 하다. 호스트 간 연결성을 확인하고 패킷 경로를 추적하며, 네트워크 지연 시간(latency)과 패킷 손실률을 확인할 수 있다. 더 효율적인 라우팅 경로가 발견되면 호스트에 이를 알리고, 네트워크 토폴로지 변화에 따른 적응적 라우팅도 지원한다.

ICMPv4 오류 메시지를 읽는 방법

Destination Unreachable(Type 3)는 패킷이 목적지에 도달하지 못했음을 알린다. Code 값으로 원인을 더 구체적으로 구분한다.

  • Code 0: Network unreachable
  • Code 1: Host unreachable
  • Code 3: Port unreachable
  • Code 4: Fragmentation needed but DF bit set

Source Quench(Type 4)는 수신자가 처리 능력을 넘는 패킷을 받았을 때 송신자에게 전송 속도 감소를 요청하는 혼잡 제어 메커니즘이다. 현대 네트워크에서는 거의 사용되지 않는다.

Redirection(Type 5)은 라우터가 호스트에 더 효율적인 경로를 알려 주는 메시지다. Time Exceeded(Type 11)는 TTL(Time To Live) 값이 0이 되어 패킷이 폐기될 때 발생하며, traceroute의 기본 원리에 쓰인다. Parameter Problem(Type 12)은 IP 헤더 오류로 패킷을 처리할 수 없을 때 발생하고, 잘못된 헤더 필드 위치를 지정해 원인 파악을 돕는다.

연결 확인에 쓰이는 정보 메시지

Echo Request/Reply(Type 8/0)는 가장 널리 알려진 ICMP 메시지로, ping이 이 메시지를 사용해 연결성과 응답 시간을 확인한다.

Timestamp Request/Reply(Type 13/14)는 송신 및 수신 시간을 기록해 네트워크 지연 시간을 측정한다. Address Mask Request/Reply(Type 17/18)는 호스트가 서브넷 마스크 정보를 요청할 때 사용된다. Router Solicitation/Advertisement(Type 10/9)는 호스트가 로컬 네트워크의 라우터 정보를 요청하고 받는 메커니즘이며, 네트워크 구성 변경 시에도 정보를 제공한다.

메시지 헤더가 담는 정보

ICMP 메시지 구조IP 헤더 - 20바이트ICMP 헤더 - 8바이트ICMP 데이터 - 가변 길이Type - 1바이트Code - 1바이트Checksum - 2바이트Rest of Header - 4바이트

Type은 ICMP 메시지 유형을 식별한다. 예를 들어 8은 Echo Request, 0은 Echo Reply다. Code는 해당 유형 안에서 세부 오류 원인 등을 구분하고, Checksum은 메시지 무결성 검증에 사용된다. Rest of Header는 메시지 유형에 따라 다른 목적의 필드로 사용된다.

IPv6에서 확장된 ICMPv6의 역할

ICMPv6는 IPv6 환경에서 동작하는 확장 버전이다. ICMPv4 기능에 더해 IPv4에서 별도 프로토콜로 존재하던 ARP, RARP, IGMP의 기능까지 단일 프로토콜로 통합한다.

IPv6 환경에 맞춰 설계됐으며, 네트워크 장치 검색 기능을 강화하고 보안 및 효율성을 개선했다.

오류 정보 메시지에는 다음이 포함된다.

  • Destination Unreachable(Type 1): IPv6 패킷을 목적지에 전달할 수 없을 때 발생한다.
  • Packet Too Big(Type 2): 패킷 크기가 경로 MTU를 초과할 때 발생한다. IPv6는 라우터에서 단편화를 수행하지 않으므로 중요한 메시지다.
  • Time Exceeded(Type 3): Hop Limit이 0이 되어 패킷이 폐기될 때 발생한다.
  • Parameter Problem(Type 4): IPv6 헤더나 확장 헤더에 오류가 있을 때 발생한다.

정보 제공 메시지에서는 Echo Request/Reply(Type 128/129)가 IPv6 환경의 ping 기능을 제공한다. Router Solicitation/Advertisement(Type 133/134)는 라우터 정보 요청과 응답에 쓰이며 IPv6 자동 구성에서 중요한 역할을 한다. Neighbor Solicitation/Advertisement(Type 135/136)는 IPv4의 ARP 기능을 대체해 링크 계층 주소 확인과 중복 주소 감지에 사용된다. Redirection(Type 137)은 더 효율적인 경로 정보를 제공하고, Router Renumbering(Type 138)은 네트워크 관리자가 라우터 주소 체계를 원격으로 변경할 수 있게 한다.

ping과 traceroute가 확인하는 것

ping은 ICMP Echo Request/Reply를 보내 호스트 간 연결성과 응답 시간을 확인한다. 패킷 손실률 측정에도 사용할 수 있다.

$ ping google.com
PING google.com (142.250.207.78): 56 data bytes
64 bytes from 142.250.207.78: icmp_seq=0 ttl=116 time=8.623 ms
64 bytes from 142.250.207.78: icmp_seq=1 ttl=116 time=7.413 ms
64 bytes from 142.250.207.78: icmp_seq=2 ttl=116 time=7.111 ms

traceroute는 Windows에서 tracert로 제공되며, ICMP Time Exceeded 메시지를 활용해 패킷이 목적지까지 지나는 라우터 경로와 각 홉(hop)의 지연 시간을 보여 준다. 네트워크 병목 구간을 식별할 때 유용하다.

$ traceroute google.com
traceroute to google.com (142.250.207.78), 30 hops max, 60 byte packets
 1  router.local (192.168.1.1)  1.234 ms  1.123 ms  1.021 ms
 2  isp-gateway.net (203.0.113.1)  8.234 ms  8.123 ms  8.345 ms
 3  core-router1.isp.net (203.0.113.18)  9.123 ms  9.321 ms  9.432 ms
...
12  google-edge.net (172.217.0.1)  7.234 ms  7.123 ms  7.321 ms

ICMP Flooding을 막기 위한 운영 관점

Smurf 공격에서는 공격자가 소스 IP를 희생자 IP로 위조한 ICMP Echo Request를 네트워크 브로드캐스트 주소로 전송한다. 브로드캐스트 네트워크의 모든 호스트가 희생자에게 응답 패킷을 보내면서 희생자 시스템과 네트워크에 DDoS 상태를 유발한다.

희생자브로드캐스트 네트워크공격자희생자브로드캐스트 네트워크공격자대량의 응답으로 서비스 마비ICMP Echo Request (소스 IP = 희생자 IP)ICMP Echo Reply (다수의 호스트로부터)ICMP Echo Reply (다수의 호스트로부터)ICMP Echo Reply (다수의 호스트로부터)

대응은 브로드캐스트 제어에서 시작한다. 라우터에서 브로드캐스트 패킷을 차단하고 직접 브로드캐스트 전달을 비활성화할 수 있다. Cisco 라우터에서는 no ip directed-broadcast 설정을 사용한다.

필요한 ICMP 메시지 유형만 허용하고 나머지를 차단하며, 외부에서 들어오는 Echo Request를 제한하는 방식도 쓸 수 있다. 초당 처리할 ICMP 패킷 수를 제한해 갑작스러운 트래픽 증가를 막고, 침입 탐지·방지 시스템으로 ICMP 플러딩 패턴과 비정상 트래픽을 감시한다.

운영 환경에서의 활용

네트워크 모니터링 시스템은 ICMP Echo Request/Reply로 서버와 네트워크 장비의 가용성을 확인하고, 장애가 발생하면 신속히 알릴 수 있다.

연결 문제가 생겼을 때는 ping으로 먼저 연결성을 확인하고 traceroute로 경로 문제를 좁힐 수 있다. ICMP 오류 메시지 분석은 장애 원인을 파악하는 데도 쓰인다. 응답 시간과 패킷 손실률은 네트워크 지연 및 안정성 평가에 활용되며, 주기적인 모니터링은 성능 추세를 확인하게 한다. ICMP Redirection은 효율적인 경로 선택과 네트워크 토폴로지 변경에 따른 적응적 라우팅을 지원한다.

ICMPICMPv6네트워크 진단pingtraceroute