Path MTU Discovery(PMTUD)란 무엇인가? 동작 원리와 네트워크 최적화 가이드
데이터가 인터넷이라는 거대한 망을 통과할 때, 가장 빈번하게 발생하는 성능 저하의 원인 중 하나는 ‘패킷 단편화(Fragmentation)’입니다. 각 네트워크 경로마다 수용할 수 있는 최대 데이터 크기가 다르기 때문에, 중간에 패킷이 쪼개지면 CPU 부하가 급증하고 지연 시간이 늘어납니다. 이를 방지하기 위해 탄생한 기술이 바로 Path MTU Discovery(PMTUD)입니다. 본 포스팅에서는 PMTUD가 어떻게 최적의 전송 크기를 스스로 찾아내는지, 그 정교한 동작 원리를 심도 있게 분석해 보겠습니다.
1. PMTUD가 필요한 이유: MTU 불일치 문제
네트워크 계층(IP 계층)에서 한 번에 보낼 수 있는 최대 패킷 크기를 MTU(Maximum Transmission Unit)라고 합니다. 일반적인 이더넷 환경은 1,500바이트를 사용하지만, VPN, 터널링(GRE), 혹은 구형 전송망을 통과할 때는 이보다 작은 MTU를 가진 구간이 존재할 수 있습니다.
만약 송신자가 중간 경로의 한계를 모르고 큰 패킷을 보내면, 중간 라우터는 패킷을 쪼개거나(Fragmentation) 버려버리게 됩니다. 이는 곧 서비스 품질 저하로 이어집니다. PMTUD는 송신자가 목적지까지 가는 ‘전체 경로’ 중 가장 작은 MTU 값을 미리 알아내어, 처음부터 그 크기에 맞춰 데이터를 보내도록 돕는 지능적인 메커니즘입니다.
2. Path MTU Discovery의 핵심 동작 원리
PMTUD는 ICMP 메시지와 IP 헤더의 특정 플래그를 조합하여 동적으로 작동합니다. 그 과정을 단계별로 살펴보겠습니다.
2.1 DF(Don’t Fragment) 비트의 설정
송신 측 호스트는 IP 패킷을 보낼 때, 헤더의 플래그 필드에 있는 DF(Don’t Fragment) 비트를 ‘1’로 설정합니다. 이는 중간 경로의 어떤 라우터도 이 패킷을 쪼개지 말라는 강력한 명령입니다.
2.2 ICMP ‘Dest Unreachable’ 메시지 수신
패킷이 자신의 MTU보다 작은 구간을 만난 라우터는 DF 비트가 설정된 것을 확인하고 패킷을 파기합니다. 대신 송신자에게 ICMP Type 3, Code 4(Destination Unreachable, Fragmentation Needed and DF set) 메시지를 보냅니다. 이때 중요한 점은, 해당 라우터가 “내가 처리할 수 있는 MTU는 이 정도다”라는 정보를 메시지에 포함한다는 것입니다.
2.3 MSS(Maximum Segment Size) 조정
송신자는 이 ICMP 메시지를 분석하여 해당 경로의 최소 MTU를 파악하고, 그에 맞춰 TCP 세그먼트 크기인 MSS를 조절합니다. 이후 전송부터는 단편화 없이 한 번에 통과할 수 있는 최적의 크기로 데이터가 흐르게 됩니다.
3. PMTUD 동작 과정 요약 및 비교
이해를 돕기 위해 PMTUD가 작동하는 시나리오를 표로 구성하였습니다.
| 단계 | 수행 주체 | 주요 동작 | 비고 |
|---|---|---|---|
| 1. 패킷 송신 | 송신 호스트 | DF 비트를 1로 설정하여 최대 크기로 발송 | 탐색의 시작 |
| 2. 한계 도달 | 중간 라우터 | MTU 초과 시 패킷 파기 및 ICMP 전송 | Next-Hop MTU 정보 포함 |
| 3. 정보 수신 | 송신 호스트 | ICMP 메시지 분석 후 MTU 값 갱신 | 경로 정보 캐싱 |
| 4. 최적화 전송 | 송신 호스트 | 새로운 MTU에 맞춘 데이터 재전송 | 단편화 발생 차단 |
4. 치명적인 변수: ‘Black Hole’ 현상
PMTUD는 완벽해 보이지만 실무에서는 치명적인 문제가 발생하곤 합니다. 이를 ‘PMTU 블랙홀’이라고 부릅니다. 많은 보안 관리자들이 보안 강화를 이유로 방화벽에서 모든 ICMP 메시지를 차단하기 때문에 발생합니다.
- 현상: 송신자는 패킷을 보냈으나 라우터가 보낸 ICMP 메시지가 방화벽에 막혀 도달하지 못함.
- 결과: 송신자는 왜 패킷이 안 가는지 모른 채 계속 재전송만 시도하고, 연결은 타임아웃으로 끊김.
- 해결책: 방화벽에서 ICMP Type 3, Code 4를 허용하거나, MSS Clamping(MSS 강제 조정) 기법을 사용하여 수동으로 크기를 조절해야 합니다.
5. 현대 네트워크에서의 PMTUD와 IPv6
IPv6로 넘어오면서 PMTUD의 중요성은 더욱 커졌습니다. IPv4와 달리 IPv6에서는 라우터가 패킷을 단편화하는 기능이 아예 제거되었기 때문입니다. 즉, IPv6 환경에서 모든 호스트는 반드시 PMTUD를 수행하거나 최소 MTU인 1,280바이트 이하로만 보내야 합니다. 이는 네트워크 장비의 부하를 줄이고 전송 효율을 높이려는 현대 네트워크 설계의 핵심 철학이 반영된 결과입니다.
결론: 효율적 통신을 위한 보이지 않는 조율사
Path MTU Discovery는 복잡한 인터넷 경로 속에서 최적의 전송 효율을 찾아내는 보이지 않는 조율사입니다. 비록 ICMP 차단이라는 변수로 인해 블랙홀 문제가 발생하기도 하지만, 원리를 정확히 이해한다면 MSS 튜닝이나 방화벽 설정을 통해 충분히 극복할 수 있습니다. 고성능 서버나 네트워크 서비스를 운영하는 엔지니어라면 PMTUD의 동작 방식을 숙지하여 사용자에게 끊김 없고 빠른 데이터를 제공해야 할 것입니다.
보안을 위해 모든 ICMP를 막는 설정은 네트워크 효율 면에서 독이 될 수 있습니다. 최소한 ‘Fragmentation Needed’ 메시지만큼은 화이트리스트에 추가하는 보안 정책이 필요하다고 생각합니다.