업데이트됨 1개월 전
인터넷에 닿지 않는 모든 IP 주소는 저마다 목적이 있다.
IPv4 주소 공간은 40억 개 이상의 고유 주소를 제공하지만, 상당 부분이 공개 라우팅에서 의도적으로 제외되었다. 이 예약된 범위들은 사설 네트워크를 가능하게 하고, 문서 예제가 실제 시스템을 공격하지 못하도록 막으며, 프로토콜이 자기 자신과 통신하는 데 쓸 주소를 제공하는 보이지 않는 아키텍처를 이루고 있다.
예약된 IP 주소란?
IANA(Internet Assigned Numbers Authority)는 어떤 IP 주소 블록이 예약되어 있는지, 그리고 그 이유를 문서화한 레지스트리를 관리한다. IETF RFC 문서를 통해 정의된 이 예약들은 해당 주소가 출발지 또는 목적지로 사용될 수 있는지, 라우터가 전달해야 하는지, 전 세계에서 도달 가능한지에 대한 메타데이터를 포함한다.
이것은 관료적 형식주의가 아니다—혼란을 막기 위한 것이다. 이런 조율이 없다면, 당신의 홈 네트워크의 192.168.1.1 라우터가 지구 반대편에 있는 누군가의 192.168.1.1로 라우팅하려 할 수도 있다.
사설 네트워크 범위 (RFC 1918)
1996년, IPv4 고갈이 가시화되면서 RFC 1918은 공개 인터넷에서 라우팅되지 않을 세 개의 주소 블록을 확보했다. 이 결정 덕분에 수십억 개의 기기가 공개 주소 공간을 소비하지 않고 사설 네트워크에 존재할 수 있게 되었다.
10.0.0.0/8 — 기업용 범위
1,670만 개의 주소를 가진 이것은 가장 큰 사설 블록이다. 기업들이 선호하는 이유는 복잡한 네트워크 계층 구조를 위한 충분한 공간을 제공하기 때문이다—부서, 데이터센터, 보안 구역 간에 명확한 경계를 유지하면서 광범위하게 서브넷팅할 수 있다.
172.16.0.0/12 — 클라우드 범위
중간 범위는 약 100만 개의 주소를 제공한다. 전통적인 네트워크에서는 덜 쓰였지만, Amazon Web Services가 VPC(Virtual Private Cloud) 구성의 기본값으로 선택하면서 새로운 역할을 찾았다. 현재 수백만 개의 클라우드 인스턴스가 이 범위에 존재한다.
192.168.0.0/16 — 가정용 범위
이 범위는 거의 모든 가정 네트워크와 소규모 사무실을 지원한다. 소비자용 라우터는 기본적으로 192.168.1.0/24 같은 서브넷을 사용하는데, 254개의 주소면 가정에 충분하고 범위가 작아 간단한 DHCP 서버로도 쉽게 관리할 수 있기 때문이다.
사설 주소가 격리되는 이유
사설 주소는 인터넷 라우터에 독이 된다. 에지 라우터는 사설 출발지나 목적지 주소가 담긴 패킷을 발견 즉시 드롭해버린다. 이 격리는 두 가지 역할을 한다: 사설 기기에 대한 직접적인 인터넷 접근을 차단하여 보안을 제공하고, 동일한 주소 범위가 수백만 개의 독립 네트워크에서 동시에 재사용될 수 있게 한다.
NAT(Network Address Translation)는 이 격리된 네트워크들을 인터넷과 연결하여, 경계에서 사설 주소를 공개 주소로 변환한다. 당신의 노트북의 192.168.1.100은 패킷이 게이트웨이를 통과하는 순간 ISP의 공개 IP로 바뀐다.
이것은 원래의 설계 의도가 아니었다. RFC 1918은 주소 보존에 관한 것이었다. 하지만 이 격리가 의도치 않은 보안 경계를 만들었다—사설 기기는 기본적으로 인터넷에서 도달할 수 없다. 이 아키텍처는 설계자들이 예상하지 못한 방식으로 동작을 형성했다.
공유 주소 공간 (RFC 6598)
100.64.0.0/10 — 통신사급 NAT
2012년에는 IPv4 보존만으로도 부족해졌다. ISP들은 부족한 공개 주소를 여러 가입자에게 공유하기 위해 CGNAT(Carrier-Grade NAT)를 배포해야 했지만, RFC 1918 공간을 사용하면 고객의 자체 사설 네트워크와 충돌이 발생했다.
RFC 6598은 ISP 인프라 전용으로 100.64.0.0/10을 예약했다. 서비스 제공자들은 CGNAT 장치의 고객 측에 이 주소들을 사용하여, 10.0.0.0/8이나 192.168.0.0/16을 사용하는 가입자와의 충돌을 방지한다.
이 타협의 대가는 결코 작지 않다: CGNAT는 포트 포워딩을 방해하고, P2P 애플리케이션을 복잡하게 만들며, 사용자와 인터넷 사이에 NAT 레이어를 하나 더 추가한다. ISP가 CGNAT를 사용한다면, 당신은 이중 NAT 뒤에 있는 셈이다—당신의 라우터가 기기들을 NAT하고, ISP가 다시 당신의 라우터를 NAT한다. 하지만 이것은 IPv6 배포가 무르익는 동안 IPv4의 생명을 몇 년 더 연장해주었다.
루프백 범위
127.0.0.0/8 — 어디에도 가지 않는 주소
전체 127.0.0.0/8 범위가 루프백을 위해 예약되어 있지만, 관례적으로 127.0.0.1이 사용된다. 루프백 주소로 전송된 패킷은 네트워크 인터페이스에 닿지 않는다—로컬 TCP/IP 스택에 의해 포착되어 처리된다.
이를 통해 중요한 작업들이 가능해진다: 실제 네트워크 없이 네트워크 서비스를 테스트하고, 표준 TCP/IP를 활용한 프로세스 간 통신을 하며, 서비스가 자기 자신에게 안정적으로 도달할 수 있도록 보장한다. 127.0.0.1에 바인딩된 애플리케이션은 외부 네트워크에 노출되지 않아, 개발 도구와 관리 인터페이스를 위한 보안 경계가 자연스럽게 만들어진다.
링크-로컬 범위
169.254.0.0/16 — 모든 것이 실패할 때
이 범위는 특정 실패 상황을 처리한다: DHCP를 통해 주소를 받도록 설정된 기기가 DHCP 서버에 도달하지 못하는 경우다. 완전히 구성되지 않은 채로 방치되는 대신, 기기는 APIPA(Automatic Private IP Addressing)를 사용하여 이 범위에서 스스로 주소를 할당한다.
APIPA 주소 덕분에 중앙 서비스가 다운된 상황에서도 같은 물리적 네트워크 세그먼트에 있는 기기들이 서로 통신할 수 있다. 하지만 한계가 분명하다—기본 게이트웨이 없음, 로컬 링크를 넘는 라우팅 없음.
기기에서 169.254.x.x를 보게 된다면, 뭔가 잘못된 것이다. 기기가 DHCP에서 제대로 된 IP 주소를 받으려 했지만 실패한 것이다. 링크-로컬 주소는 해결책이 아니라 증상이다—DHCP 서버나 네트워크 연결 상태를 확인해야 한다는 신호다.
특수 목적 범위
0.0.0.0/8 — 이 네트워크
주소 0.0.0.0은 알 수 없거나 지정되지 않은 주소를 나타낸다. 기기가 아직 IP 주소가 없을 때 DHCP DISCOVER 메시지를 브로드캐스트하면서 출발지 주소로 사용된다. 또한 라우팅 테이블에서 기본 경로를 나타내기도 한다. 이 범위는 일반 트래픽에서 나타나서는 안 된다.
192.0.0.0/24 — 프로토콜 할당
IANA는 특정 기술 기능을 위해 IETF 프로토콜이 사용하는 주소들을 위해 이 블록을 예약했다. 이 주소들은 프로토콜 사양과 구현에 등장하지만, 일반적인 네트워킹 용도가 아니다.
문서화 범위 (RFC 5737)
세 개의 /24 블록이 오직 예제, 문서, 기술 문서 작성을 위해 존재한다:
- 192.0.2.0/24 (TEST-NET-1)
- 198.51.100.0/24 (TEST-NET-2)
- 203.0.113.0/24 (TEST-NET-3)
이 예약 이전에는 기술 문서에 실제 IP 주소를 사용해서, 의도치 않게 영문도 모르는 네트워크로 트래픽을 유도했다. 수천 명의 독자에게 실제 운영 중인 비즈니스의 트래픽을 차단하라고 실수로 안내하는 방화벽 튜토리얼을 상상해보라.
이제 문서 작성자는 이 주소들이 실제 네트워크와 절대 충돌하지 않는다는 것을 알고 안심하고 사용할 수 있다. 절대로 프로덕션에 이 범위를 사용하지 말아야 한다—처음에는 동작하는 것처럼 보이지만, 여러 환경에서 필터링되기 때문에 예기치 않은 방식으로 실패한다.
멀티캐스트 범위
224.0.0.0/4 — 일 대 다
단일 인터페이스를 식별하는 유니캐스트 주소와 달리, 멀티캐스트 주소는 수신을 원하는 수신자들의 그룹을 나타낸다. 멀티캐스트 주소로 전송된 단일 패킷이 여러 목적지에 동시에 도달할 수 있다.
멀티캐스트는 효율적인 비디오 스트리밍, 라우팅 프로토콜 업데이트, 서비스 탐색, 실시간 데이터 배포를 지원한다. 멀티캐스트 없이 백만 명의 시청자에게 라이브 이벤트를 스트리밍하려면 백만 개의 개별 스트림을 전송해야 할 것이다. 멀티캐스트가 있으면 라우터가 필요한 지점에서만 패킷을 복제하여, 네트워크 전체에 부하를 지능적으로 분산시킨다.
멀티캐스트 주소는 유니캐스트와 근본적으로 다르게 동작한다. 일반적인 라우팅을 기대해서는 안 된다—이 주소들은 목적지를 가리키는 것이 아니라 그룹을 식별하는 것이다.
미래 사용과 브로드캐스트
240.0.0.0/4 — 미래 사용을 위해 예약됨
이 범위는 원래 미래 사용을 위해 확보되었다. IPv4 주소가 희소해지면서 이 공간을 재활용하자는 제안이 나왔지만, 기존 시스템과의 호환성 문제가 채택을 막았다. 많은 네트워크 장치들이 이 주소를 유효하지 않은 것으로 처리하기 때문에, 광범위한 장비 교체 없이는 이 공간을 활용할 수 없다.
이것은 기술적 화석이다—내일을 위해 마련해두었지만 어제의 가정에 갇혀버린 공간이다.
255.255.255.255 — 제한 브로드캐스트
255.255.255.255로 전송된 패킷은 로컬 네트워크 세그먼트의 모든 기기에 브로드캐스트되지만, 라우터는 절대 이를 전달하지 않는다. DHCP 클라이언트는 아직 자체 IP 주소가 없을 때 DISCOVER 메시지를 브로드캐스트하기 위해 이 주소를 사용한다.
이렇게 형성된 아키텍처
예약된 주소 범위는 행정적 부담이 아니다—인터넷이 작동하는 방식을 형성한 아키텍처적 결정들이다:
혼란 방지: 문서화 범위는 기술 예제가 실수로 운영 네트워크를 공격하는 것을 막는다. 이 예약 이전에는 모든 튜토리얼이 잠재적인 보안 사고였다.
규모 확장 지원: RFC 1918 사설 범위는 수십억 개의 기기가 공개 주소 없이 운영될 수 있게 한다. 이것이 없었다면, 인터넷은 IPv6가 준비되기 훨씬 전에 주소를 소진했을 것이다.
예상치 못한 보안 효과: 사설 주소 격리는 보안 기능으로 설계된 것이 아니었지만, 결국 그렇게 되었다. 방화벽으로서의 NAT, 기본적으로 인터넷에서 도달 불가능한 사설 네트워크—이것들은 주소 보존 결정에서 파생되었다.
우아한 장애 처리: 링크-로컬 주소는 중앙 서비스가 실패해도 기기들이 여전히 통신할 수 있게 한다. 네트워크는 완전한 마비가 아니라 로컬 전용 통신으로 자연스럽게 저하된다.
시간 벌기: 100.64.0.0/10 같은 범위는 서비스 제공자가 주소를 더 적극적으로 공유할 수 있게 하여 IPv4의 수명을 연장한다. IPv4가 살아있는 매 해는 IPv6 배포가 더 성숙해지는 또 한 해다.
공식 참조
IANA는 확정적인 특수 목적 주소 레지스트리를 관리한다:
레지스트리는 각 예약 블록에 대한 자세한 정보를 포함한다: 정의 RFC, 주소의 전달 가능 여부, 전 세계 도달 가능 여부, 출발지 또는 목적지 주소로의 유효성 여부.
보이지 않는 비계
예약된 IP 주소 범위는 보이는 인터넷을 가능하게 하는 보이지 않는 비계다. RFC 1918은 단순히 주소를 보존하는 것이 아니었다—사설 네트워크가 기본적으로 격리되고, NAT가 의도치 않은 보안 경계를 제공하며, 네트워크 토폴로지가 자연스럽게 조직 구조를 반영하는 아키텍처를 만드는 것이었다.
이 예약들은 복합적인 결정들이다. 각각은 즉각적인 문제를 해결하면서, 그 위에 구축된 모든 것을 형성하는 창발적 속성들을 만들어냈다.
인터넷에 닿지 않는 모든 IP 주소는 정확히 설계된 대로 작동하고 있다: 구조를 제공하고, 혼란을 방지하며, 더 나은 해결책이 성숙해질 시간을 벌어주고 있다.
예약된 IP 주소 범위에 대한 자주 묻는 질문
내 기기가 169.254.x.x 주소를 보여주는 이유가 무엇인가요?
기기가 DHCP 서버에서 IP 주소를 받으려 했지만 실패한 것입니다. 169.254.x.x 주소는 로컬 통신은 가능하게 해주지만 인터넷에는 연결할 수 없는 대체 수단입니다. DHCP 서버가 실행 중인지, 그리고 기기가 서버에 네트워크로 연결되어 있는지 확인해 보세요.
인터넷에서 10.x.x.x 주소를 사용할 수 있나요?
아닙니다. RFC 1918 사설 주소(10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)는 인터넷 라우터에서 드롭됩니다. 인터넷 통신을 위해 사설 주소를 공개 주소로 변환하려면 NAT가 필요합니다.
10.0.0.0/8과 192.168.0.0/16의 차이는 무엇인가요?
둘 다 사설 주소 범위이지만, 10.0.0.0/8은 1,670만 개의 주소를 제공하고 192.168.0.0/16은 65,536개를 제공합니다. 기업들은 일반적으로 복잡한 네트워크를 위해 더 큰 10.x.x.x 범위를 사용하고, 가정용 라우터는 가정용 기기에 충분하기 때문에 기본적으로 192.168.x.x를 사용합니다.
ISP가 CGNAT를 사용하면 왜 포트 포워딩이 안 되나요?
CGNAT는 당신이 이중 NAT 뒤에 있다는 것을 의미합니다—당신의 라우터가 주소를 변환하고, ISP가 다시 변환합니다. 포트 포워딩은 공개 IP를 제어할 수 있어야 가능한데, CGNAT 환경에서는 그 IP를 다른 가입자들과 공유합니다. 제어권이 없으니 포트를 포워딩할 수 없는 것입니다.
문서나 튜토리얼에서 어떤 IP 주소를 사용해야 하나요?
RFC 5737 문서화 범위를 사용하세요: 192.0.2.0/24, 198.51.100.0/24, 또는 203.0.113.0/24. 이 주소들은 예제 전용으로 예약되어 있어 실제 네트워크와 절대 충돌하지 않습니다.
출처
이 페이지가 도움이 되었나요?