인프라 설정 중 다음과 같은 설정을 해두면 유용할 수 있다.
ICMP 프로토콜 - type3, code4
이에 대해 자세히 알아보자.
ICMP (인터넷 제어 메시지 프로토콜)
ICMP(Internet Control Message Protocol)는 네트워크에서 발생하는 상태와 오류를 알려주는 알림 서비스이다.
IP 패킷은 데이터를 전달하는 데만 집중하며, 전달 과정에서 문제가 생겨도 스스로 알려주지 않는다.
이때 ICMP가 "목적지가 없다", "패킷이 너무 크다" 같은 정보를 송신자에게 전달해 준다.
우리가 흔히 쓰는 ping 명령어가 ICMP를 사용하여 통신 가능 여부를 확인한다.
DF (Don't Fragment) 비트
DF(Don't Fragment)는 "이 패킷을 쪼개지 마시오"라는 명령을 지닌 IP 헤더의 플래그 필드에 있는 설정 값이다.
네트워크 장비마다 한 번에 보낼 수 있는 데이터 크기(MTU)가 다르다.
원래는 패킷이 크면 라우터가 이를 조각내서(Fragmentation) 보낼 수 있다.
HTTPS 검열에 대응하는 방식으로, MTU를 1500에서 1200 수준으로 낮추는 방식이 많이 언급된다.
그 때 말하는 MTU가 이 용어이다.
하지만 패킷을 조각내고 다시 합치는 과정은 장비에 큰 부담을 주고 성능을 떨어뜨린다.
그래서 종종 아예 조각내지 않도록 DF 비트를 1로 설정하여 보내는 경우가 많다.
PMTUD (경로 MTU 탐색)
PMTUD(Path MTU Discovery)는 송신측에서 수신측까지 가는 전체 경로에서 조각화 없이 통과할 수 있는 최대 크기(MTU)를 찾아내는 기술이다.
이 정도까지만 알아두자.
시나리오
시나리오를 한 번 가정해보자.
- 송신자가 패킷에 DF 비트를 1로 설정하고, 보통의 크기(예: 1,500바이트)로 데이터를 보낸다.
- 중간의 어떤 라우터가 "나는 1,400바이트까지만 보낼 수 있는데, 이 패킷은 너무 크다! 그런데 쪼개지 말라(DF=1)고 되어 있네?"라고 판단한다.
- 라우터는 패킷을 버리고, 송신자에게 ICMP Type 3, Code 4 메시지(ICMP 알림)를 보낸다. 이때 "나는 1,400바이트까지만 받을 수 있다"라는 정보도 함께 담는다.
더보기자세하게 알아보면 다음과 같다.
ICPM의 대표적인 Type들은 다음과 같다.
이 때, type 3에는 다음과 같은 Code들이 존재한다.Type 명칭 설명 0 Echo Reply ping에 대한 응답 (정상 도달) 3 Destination Unreachable 목적지 도달 불가 5 Redirect 경로 변경 8 Echo Request ping 요청 11 Time Exceeded 시간 초과
- Code 0 (Net Unreachable): 네트워크 자체를 찾을 수 없음 (주소가 잘못됨).
- Code 1 (Host Unreachable): 해당 컴퓨터(호스트)를 찾을 수 없음.
- Code 2 (Protocol Unreachable): 요청한 통신 규약(TCP, UDP 등)을 지원하지 않음.
- Code 3 (Port Unreachable): 목적지는 찾았으나, 해당 프로그램(포트)이 닫혀 있음.
- Code 4 (Fragmentation Needed): 패킷이 너무 큰데 쪼개기 금지 설정이 되어 있음. - 메시지를 받은 송신자는 1,400바이트만 통과되는 곳이 있음을 인식하고, 패킷 크기를 줄여서 다시 보낸다.
- 모든 경로를 무사히 통과할 때까지 이 과정을 반복하여 최적의 크기를 찾는다
'인프라 > 자유' 카테고리의 다른 글
| 내부망 구성하기 (개정판) (0) | 2026.03.23 |
|---|---|
| JCasC에서 Jenkins 계정 관리 방법 (0) | 2026.03.14 |
| NFS를 통해 다중 노드 스토리지 공유하기 (0) | 2026.03.12 |
| PVC 설정 없이 Wireguard VPN 세팅하기 (0) | 2026.03.09 |
| VPN을 통해 사내망을 구축해보자 (0) | 2026.03.09 |