IP : 인터넷에서 데이터 단위인 패킷을 올바른 목적지로 전송하기 위한 일련의 규칙들
개발자가 아니더라도 IP라는 용어는 많이 들어봤을 것이다. 그리고 IT에 관심이 있다면 IPv4라는 것이 있는데, 이는 모두 소진되었다는 이야기 또한(한 10년 전 부터...) 많이 들어봤을 것이다. 오늘은 IP란 무엇이고, IPv4는 왜 소진됐는지, 소진됐다면서 어떻게 아직도 쓰고 있는지 알아본다!
인터넷 프로토콜은 송신 호스트와 수신 호스트가 패킷 교환 네트워크에서 정보를 주고받는 데 사용하는 정보 위주의 규약이며, OSI 네트워크 계층에서 호스트의 주소지정과 패킷 분할 및 조립 기능을 담당한다.
- 위키피디아
네트워크 상에서 두 노드가 통신을 하기위해, 공통된 프로토콜을 따를 필요가 있다. IP는 인터넷을 위한 프로토콜이다. IP의 가장 큰 특징은 패킷 교환이다. 패킷 교환은 통신 방식 중 하나로 데이터를 패킷이라는 단위로 전송하며, 각 패킷은 개별적으로 노드들 사이에 경로가 제어된다. 이는 통신 기간 동안 독립적인 통신 연결을 구성하는 회선 교환 방식과 대비된다.
네트워크 상에서 노드를 특정하기 위해선 주소가 필요하다. IPv4는 IP의 대표적인 주소 체계로 4개의 8비트로 이루어져있다. 흔히 보기 편하게 하기위해 10진수로 표현한다. 총 32비트이기 때문에, 2^32 즉 4,294,967,296개의 주소를 표현할 수 있다. 1981년 9월에 정립되었을 당시 충분한 주소 개수 였을지 몰라도, 수많은 통신 장비가 있는 현대에 와서는 부족할 수 있게 되었다. 하지만 여전히 가장 널리 사용되는 주소 체계이다.
IPv6 주소는 기존 32비트의 IPv4 주소가 고갈되는 문제를 해결하기 위해 개발된 128비트의 주소 체계이다.
표현 가능한 주소 개수도 2^128개로 약 3.4*10^38이다(어떻게 읽는지도 모르겠다;) IPv4와 달리 보통 16진수로 표현한다. 주소 확장 이외에도 호스트 주소 자동 설정, 패킷 크기 확장, 보안 강화 등 여러 기능을 추가로 도입하였다. 사용률이 점점 높아지고는 있지만, 여전히 IPv4의 사용률이 더 높다.
IPv4와 IPv6는 한번씩 들어봐도, IPv5는 한번도 들어본적이 없을 것이다. 이는 IPv5가 정식 프로토콜로 채택되지 않았기 때문이다. 인터넷 스트림 프로토콜이라는 이름으로 애플과 NeXT, 그리고 썬 마이크로시스템에 의해 개발된 IPv5는 영상과 음성 데이터를 전송하기 위해 만들어졌다. IPv4에 비해 이런 형태의 데이터를 전송하기에는 효율적이었으나, 여전히 32비트 주소체계를 가지고 있었다. 따라서 IPv4와 같은 주소 고갈 문제가 있어 버려진 프로토콜이 되었다. 정식 프로토콜은 바로 IPv6으로 넘어가게 되었다.
실제로 IPv4는 사실상 모두 소진된 상태이다. 2011년 2월 4일에는 IPv4 주소가 소진되어 IANA에 의한 대륙별 관리 기관에 주소 할당이 중지되었고, 2015년에는 북미 IP 기관의 주소가 고갈되었다. 관리 기관에 따라 여분 주소가 소량 남아 있을 수는 있으나, 사실상 소진되었다고 볼 수 있다. 그렇다면 우리는 어떻게 새로운 AWS EC2 인스턴스에 IPv4 주소를 발급 받을 수 있을까?
우선 아직까지 IPv4가 쓰일 수 있었던 이유 중 하나는 사설 IP로 인한 고갈 시점의 지연이다. 보통 IP 주소라고 하면 공인 IP 주소를 말한다. 인터넷 상에서는 공인 IP가 있어야 노드의 특정이 가능하다. 하지만 이터넷에 연결하지 않고 개별적으로 구성한 네트워크에서는 사설 IP를 사용할 수 있다. NAT(Network Address Translation) 서버를 통해 사설 IP를 공인 IP로 바꾸어 인터넷에 접속할 수 있다. 헷갈리지 않도록 애초에 공인 IP 주소 범위와 사설 IP 주소 범위는 구분되어 있다.
대표적인 사설 IP의 사용처는 가정 내이다. 가족 구성원 각자의 핸드폰, 컴퓨터 태블릿, IoT 기기 등 다양한 단말이 인터넷 연결을 필요로 한다. 만약 각각의 기기가 공인 IP 주소를 가지고 있었다면, IPv4의 소진은 훨씬 빨랐을 것이다. 하지만 다행이도 각 기기는 사설 IP를 가지고, NAT(공유기)를 통해 인터넷에 접근한다.
사설 IP 덕분에 IPv4의 고갈을 늦출 수는 있었다고하나, 현재는 이미 고갈된 상태에서 클라우드 회사들은 어떻게 IPv4 주소를 사용할 수 있을까? 일단 주소의 고갈은 더 이상 할당할 주소가 없다는 것이지 모든 IPv4 주소가 사용중이라는 뜻은 아니다. 기업들은 IPv4를 소유하며 관리하고 있다.
가장 단순 무식한 방법은 당연히 IPv4를 추가적으로 구하는 것이다. IP 주소는 구매하고 소유가 가능한 자산이기 때문에 실제로 클라우드 회사들은 종종 IPv4 주소를 구매하기도 한다. 2017년에 MIT가 800만개의 주소를 판매 했을때도, 아마존 같은 기업들이 이를 구매했었다. 아마존은 2020년 기준 25억 달러의 가치인 약 1억개의 IPv4 주소를 가지고 있는 것으로 알려져 있다.
AWS EC2 인스턴스를 생성하면 기본적으로 IP 주소가 할당된다. 이는 아마존의 공용 IPv4 주소 풀에서 지정된 것으로 사용자 계정과는 무관하다. 이렇게 할당된 주소는 인스턴스가 중지되거나 탄력적 IP 주소를 인스턴스에 연결하는 경우에 해지되어 다시 사용 가능한 주소가 된다. 이후 다른 곳에서 이 주소는 재사용된다. IPv4는 소중한 자산인 만큼, 불필요하게 점유 중인 주소가 없도록 하기 위해 클라우드 프로바이더들이 관리하고 있다.
결국 IPv4 고갈의 근본적인 해결 방법은 IPv6를 사용하는 것이다. 비록 속도가 느려도, 전세계는 점점 IPv6 지원을 늘리고 있다. 국가별 IPv6 지원율을 정리한 웹사이트를 통해 IPv6 보급율을 짐작 해볼 수 있다. 초록색일 수록 지원율이 높고, 빨간색일 수록 지원율이 낮다.
전세계적으로 IPv6 지원율은 31%이다. 지원율이 가장 높은 지역은 인도로 60%의 높은 지원율을 가지고 있다. 반면 우리나라는 7.8% 수준의 지원율로 매우 낮은 지원율을 가지고 있다. 아마 국가에 할당된 IPv4 주소가 1억개이고 사설 IP를 많이 사용해 필요성을 크게 느끼지 못해 아직까지 지원율이 낮지 않나 싶다. 2000년대 초반에 우려했던 것처럼 IPv4의 고갈로 인한 문제는 크게 발생하지 않았으나, 앞으로 인터넷을 사용하는 기기는 더 늘 수 밖에 없기 때문에 자연스럽게 IPv6의 보급율도 올라갈것으로 예상된다.