Devsecops

ICMP 본문

[AI스쿨] 리팩토링/응용 계층 프로토콜

ICMP

Futurism 2022. 10. 22. 08:25
728x90

3계층 IP 프로토콜은 신뢰할 수 없는 프로토콜, 전송상태에 대한 관리가 이루어지지 않는 단점을 보안하기 위한 프로토콜

  • IP 패킷 전송 중 에러 발생 시 에러 발생 원인을 알려주거나 네트워크 상태를 진단해주는 기능을 제공해준다
  • Error  Reporting Message 기능 : 전송 중 오류 발생 시 에러 메시지를 생성하여 응답
  • Query Message 기능 : 네트워크 상태를 진단하기 위한 쿼리 요청 및 응답 메시지 생성

 

프로토콜 구조

  • Type : ICMP 메시지의 유형/용도
  • Code : Type의 세부 내용으로  Type과 Code가 조합되어 ICMP 메시지의 목적과 용도를 나타낸다
  • Checksum : ICMP 메시지 오류를 검사하기 위한 값
  • Rest of the Header : Type과 Code에 따라 추가되는 헤더
  • Data section : 데이터가 위치하는 영역

 

ICMP Error-Reporting 메시지

  • Destination Unreachable(Type 3)
  • 해당 목적지에 도달할 수 없음을 의미
  • Code 1(Host Unreachable) : 최종 단계의 라우터가 목적지 호스트로 패킷 전송에 실패한 경우
  • Code 2(Protocol Unreachable) : 목적지 호스트에서 특정 프로토콜을 사용할 수 없는 경우
  • Code 3(Port Unreachable) : 목적지 호스트에 해당 UDP 포트가 열려있지 않은 경우
  • Code 4(Fragmentation needed and don't fragment was set) : IP 패킷의 단편화가 반드시 필요하나 IP 헤더의 Don't fragment(DF) 플래그가 설정되어 단편화할  없는 경우 라우터에 의해 반환된다

ICMP Query 메시지

  • Echo Request(Type 8) and Reply(Type 0)
  • Ping 유틸리티에서 사용
  • 별도의 Code는 없으며 이외의 쿼리 타입들은 거의 사용되지 않는다

Ping

  • 종단 노드 간에 네트워크 상태를 관리하기 위한 명령어
  • 목표 시스템에 대한 접근성, 해당 구간에 대한 네트어크 속도 및 품질을 검사하기 위한 명령어
  • ICMP Echo Request(Type:8)와 ICMP Echo Reply(Type:0) 메시지 이용

 

Tracert/Traceroute

  • 종단 노드 사이에 있는 여러 중계 노드 각 구간에 대한 네트워크 상태를 관리하기 위한 명령어, 주로 라우팅의 문제점을 찾기 위해 사용된다.

Tracert(유닉스/리눅스)

  • TTL 필드를 1로 설정한 UDP 패킷을 보낸다
  • TTL 값을 1로 설정하면서 첫 번째 라우터에서 패킷이 폐기되고 ICMP 응답이 오기 때문에 이르 이용하여출발지 호스트와 첫 번째 라우터같의 네트워크 상태를 판단한다
  • TTL 값을 1씩 증가시키면서 UDP 패킷을 지속적으로 전송하여 다음 중계 구간에 대한 네트워크 상태를 판단한다
  • 최종 목적지에 도착하면 해당 호스트의 UDP 포트는 닫혀 있으므로 ICMP Destination Unreachable 패킷이 반환되며 최초 출발지 호스트는 이 정보를 이용하여 최종 목적지 호스트에 도달했음을 알 수 있게 된다

Traceroute(윈도우)

  • TTL 필드를 1로 설정한 ICMP Echo Request 패킷을 보낸다
  • TTL 값을 1로 설정하면서 첫 번째 라우터에서 패킷이 폐기되고 ICMP 응답이 오기 때문에 이를 이용하여출발지 호스트와 첫 번째 라우터같의 네트워크 상태를 판단한다
  • TTL 값을 1씩 증가시키면서 ICMP 패킷을 지속적으로 전송하여 다음 중계 구간에 대한 네트워크 상태를 판단한다
  • 최종 목적지에 ICMP Echo Request 패킷이 도달하면 ICMP Echo Reply 패킷이 반환되며 최초 출발지 호스트는 이 정보를이용하여 최종 목적지 호스트에 도달했음을 알 수 있게 된다
728x90

'[AI스쿨] 리팩토링 > 응용 계층 프로토콜' 카테고리의 다른 글

Telnet  (0) 2022.10.22
SSH  (0) 2022.10.22
HTTP  (0) 2022.10.14
이메일 프로토콜  (0) 2022.10.14
FTP  (0) 2022.10.14