2026.06.04 RFC5737 테스트용 블랙홀 IP

in #kr9 hours ago

오늘도 어김없이 AI로 개발을 하고 있었는데, AI가 갑자기 MongoDB 에 2만건 insert 테스트를 한다고 했다.
놀라서 멈추게 하고 무슨 짓을 하는줄 알냐고 물어봤더니, RFC5737 테스트용 블랙홀 IP에 대고 테스트할꺼니깐 마음 놓으라고 했다.
그래서 보니 이런게 있더라...


RFC 5737은 IANA가 문서화·테스트·예제 목적으로 예약해둔 IPv4 주소 블록을 정의한 표준입니다.

예약된 3개 블록

블록범위용도
192.0.2.0/24192.0.2.0 ~ 192.0.2.255TEST-NET-1
198.51.100.0/24198.51.100.0 ~ 198.51.100.255TEST-NET-2
203.0.113.0/24203.0.113.0 ~ 203.0.113.255TEST-NET-3

"블랙홀"인 이유

이 주소들은 인터넷 라우팅 테이블에 절대 광고(advertise)되지 않도록 IANA가 보장합니다. 즉:

  • 이 IP로 패킷을 보내면 인터넷 어디에도 도달하지 않고 사라짐
  • ISP/백본 라우터들이 이 대역을 필터링해버림
  • 실제 서버나 장비가 이 주소를 사용하지 않음

그래서 "블랙홀(black hole)"이라고 부릅니다 — 패킷이 들어가면 나오지 않는다는 의미.

왜 필요한가

문서/예제에서

# 나쁜 예시 — 실제 누군가의 서버일 수 있음
server_ip = "1.2.3.4"

# 좋은 예시 — RFC5737 사용
server_ip = "192.0.2.1"

기술 문서, RFC, 교과서에서 "예시 IP"로 쓸 때 실제 IP를 쓰면 그 IP 소유자에게 피해가 갈 수 있습니다.

네트워크 테스트에서

  • 방화벽 룰 테스트 시 실제 외부 서버에 트래픽 보내지 않고 테스트 가능
  • Ansible/Terraform 등 IaC 코드 테스트 시 더미 타겟으로 사용
  • 타임아웃 동작 확인 (패킷이 응답 없이 사라지는 시나리오)

보안 관점

  • 실수로 외부로 나가면 안 되는 내부 설정에 이 IP를 placeholder로 사용하면, 실수로 패킷이 나가도 실제 서비스에 닿지 않음

비슷한 개념들과 비교

종류예시특징
RFC5737 (테스트용)192.0.2.x라우팅 안 됨, 문서/테스트 전용
RFC1918 (사설망)192.168.x.x, 10.x.x.x내부망에서 실제 사용됨
Loopback127.0.0.1자기 자신에게만 도달
0.0.0.0"모든 인터페이스" 또는 "미지정" 의미

RFC1918 사설 IP(10.x, 192.168.x)와 혼동하기 쉬운데, 사설 IP는 내부망에서 실제로 쓰이는 주소인 반면, RFC5737은 내부망에서도 실제로 쓰지 말라고 예약된 주소입니다.

도메인 버전

IP와 마찬가지로 도메인도 예약된 것들이 있습니다 (RFC2606):

  • example.com, example.org, example.net → 문서용 도메인
  • localhost → 루프백 전용

한 줄 요약: "이 IP로 보낸 패킷은 인터넷 어디에도 닿지 않는다"는 게 IANA에 의해 보장된 주소 블록 — 그래서 문서·테스트·예제에서 안전하게 쓸 수 있습니다.