Linux MTU Black Hole 문제의 원인과 해결 방법

Linux 서버에서는 Ping은 정상적으로 동작하지만 특정 웹사이트만 열리지 않거나, SSH 연결이 중간에 끊기거나, VPN이나 HTTPS 연결이 실패하는 경우가 있습니다. 이러한 증상의 대표적인 원인 중 하나가 MTU Black Hole 문제입니다.

MTU Black Hole은 큰 패킷이 네트워크 중간에서 삭제되지만 송신 측에서는 그 사실을 제대로 인식하지 못하는 현상입니다. 특히 VPN, IPSec, GRE Tunnel, VXLAN, 클라우드 환경에서 자주 발생합니다.

이번 글에서는 Linux에서 MTU Black Hole 문제가 발생하는 원인과 해결 방법을 실무 중심으로 알아보겠습니다.

MTU Black Hole이란?

MTU(Maximum Transmission Unit)는 한 번에 전송할 수 있는 최대 패킷 크기를 의미합니다.

MTU Black Hole은 네트워크 중간 장비가 큰 패킷을 버리면서도 ICMP Fragmentation Needed 메시지를 보내지 않거나 차단하는 상황입니다.

구조는 다음과 같습니다.

Client

↓

1500 Byte Packet

↓

VPN / Router

↓

MTU 1400

↓

Packet Drop

↓

응답 없음

패킷은 삭제되지만 송신 측에서는 재전송만 반복하여 통신이 멈춘 것처럼 보입니다.

MTU Black Hole 문제가 발생하는 주요 원인

대표적인 원인은 다음과 같습니다.

  • VPN
  • IPSec
  • GRE Tunnel
  • VXLAN
  • PPPoE
  • Cloud Network
  • ICMP 차단
  • Jumbo Frame 설정 오류
  • MTU 불일치
  • Path MTU Discovery 실패

실무에서는 VPNICMP 차단이 가장 흔한 원인입니다.

1. 현재 MTU 확인하기

인터페이스 MTU를 확인합니다.

ip link

또는

ip addr

예시

eth0: mtu 1500

eth1: mtu 9000

인터페이스마다 MTU가 다른지 확인합니다.

2. Ping으로 MTU 테스트하기

Linux에서는 Fragment를 허용하지 않는 Ping을 사용할 수 있습니다.

ping -M do -s 1472 8.8.8.8

1472 Byte + IP Header(20) + ICMP Header(8) = 1500 Byte입니다.

실패하면 MTU가 더 작은 구간이 존재할 가능성이 있습니다.

크기를 줄여가며 테스트합니다.

ping -M do -s 1400 8.8.8.8

성공하는 최대 크기를 찾습니다.

3. 인터페이스 MTU 변경하기

임시 변경

ip link set dev eth0 mtu 1400

확인

ip link show eth0

서비스가 정상 동작하는지 확인합니다.

4. Path MTU Discovery 확인하기

현재 경로의 MTU를 확인합니다.

tracepath 8.8.8.8

예시

pmtu 1500

↓

pmtu 1400

경로 중간에서 MTU가 변경되는지 확인할 수 있습니다.

5. ICMP 차단 여부 확인하기

방화벽 정책을 확인합니다.

iptables -L -n

또는

firewall-cmd --list-all

ICMP Fragmentation Needed 메시지가 차단되면 Path MTU Discovery가 정상적으로 동작하지 않습니다.

6. tcpdump로 분석하기

패킷을 확인합니다.

tcpdump -i eth0

또는

tcpdump -i eth0 icmp

ICMP Fragmentation Needed 메시지가 오는지 확인합니다.

7. VPN 환경 확인하기

VPN 인터페이스를 확인합니다.

ip link

예시

tun0

wg0

ipsec0

VPN은 일반적으로 MTU를 1400~1420 정도로 설정하는 경우가 많습니다.

8. 로그 확인하기

커널 로그를 확인합니다.

journalctl -k

또는

dmesg

네트워크 오류가 있는지 확인합니다.

9. 영구 MTU 설정하기

Ubuntu(Netplan)

mtu: 1400

적용

netplan apply

RHEL 계열에서는 NetworkManager 또는 인터페이스 설정 파일에서 MTU를 지정합니다.

10. 서비스 테스트

설정 변경 후 다음 항목을 확인합니다.

  • HTTPS
  • SSH
  • VPN
  • API
  • Database
  • 파일 전송

특히 큰 데이터를 전송할 때 정상 동작하는지 확인합니다.

MTU Black Hole 문제 점검 순서

실무에서는 다음 순서대로 확인하는 것이 좋습니다.

  1. MTU 확인
  2. Ping MTU 테스트
  3. Path MTU Discovery 확인
  4. 인터페이스 MTU 변경
  5. ICMP 차단 여부 확인
  6. VPN 확인
  7. tcpdump 분석
  8. 로그 확인
  9. 영구 설정 적용
  10. 서비스 테스트

MTU Black Hole 사용 시 주의사항

다음 사항을 확인해야 합니다.

  • VPN에서는 기본 MTU 1500을 그대로 사용하지 않는 경우가 많다.
  • ICMP를 무조건 차단하면 Path MTU Discovery가 실패할 수 있다.
  • Jumbo Frame 환경에서는 모든 장비의 MTU를 동일하게 설정해야 한다.
  • 터널링을 사용하는 경우 오버헤드를 고려해야 한다.
  • 변경 후 반드시 대용량 데이터 전송 테스트를 수행한다.
  • 클라우드 환경에서는 제공 업체의 권장 MTU를 확인한다.

MTU Black Hole은 작은 Ping은 정상인데 HTTPS나 SSH만 실패하는 독특한 증상을 보이는 경우가 많습니다.

MTU Black Hole과 MTU Mismatch의 차이

항목MTU Black HoleMTU Mismatch
원인패킷 삭제MTU 크기 불일치
증상특정 서비스만 실패전체 통신 품질 저하
ICMP 영향매우 큼상대적으로 적음
주요 환경VPN, Tunnel일반 네트워크

MTU Mismatch는 단순히 MTU 값이 다른 상태이고, MTU Black Hole은 그로 인해 패킷이 중간에서 사라져 실제 서비스 장애가 발생하는 상황입니다.

자주 묻는 질문

Ping은 되는데 HTTPS만 안 됩니다.

MTU Black Hole 문제일 가능성이 높습니다. ping -M dotracepath를 이용해 MTU를 확인해 보세요.

VPN을 연결하면 파일 전송이 끊깁니다.

VPN 터널의 MTU가 너무 크게 설정되어 있을 수 있습니다. VPN 인터페이스의 MTU를 1400~1420 정도로 조정하면 해결되는 경우가 많습니다.

ICMP를 모두 차단해도 되나요?

권장되지 않습니다. ICMP의 일부 메시지는 Path MTU Discovery와 같은 핵심 네트워크 기능에 필요합니다.

마무리

MTU Black Hole은 VPN과 터널링 환경에서 자주 발생하는 문제로, 단순한 Ping 테스트만으로는 원인을 찾기 어렵습니다. ping -M do, tracepath, tcpdump 등을 활용하면 대부분의 문제를 빠르게 분석할 수 있으며, 적절한 MTU 설정과 ICMP 허용 정책을 함께 적용하면 안정적인 네트워크 운영이 가능합니다.

댓글 남기기