이 포스팅은 2024.09.17에 작성되었습니다.
최근에 네트워크를 공부하며 IP주소에 대한 궁금한 점이 생겨 포스팅해보려고 한다.
우리가 일반적으로 IP주소라고 부르는 IPv4
주소체계는 43억개의 IP주소밖에 할당할 수 없다는 한계가 존재한다. 이를 극복하기 위한 다양한 방법들이 있지만, 인터넷의 발달로 전 세계 사람들의 전자기기를 감당하기에는 부족한 양이다. (실제로 인터넷에 검색해보니 IP주소가 소진되었다는 이야기가 많이 보였다)
IPv4의 한계를 극복하기위해 등장한 것이 IPv6
이지만, 아직까지는 IPv4가 주로 사용되고 있는 것 같았다.
한정적인 자원인 IP주소를 어떻게 현재까지 잘 사용하고 있는걸까? 그리고 지난 주에도 나는 AWS에서 서버를 열고 IPv4주소를 할당받았는데, 부족한 IP주소를 이렇게 쉽게 할당받아도 되는걸까?
또한 왜 IPv6은 아직까지 범용적으로 사용되지 않는지도 궁금해졌고, IPv6으로 변환하려는 움직임이 있는건지도 궁금했다. 그래서 이번 포스팅에서 정리해보려고 한다!
본론을 알아보기 전에 IPv4와 IPv6에 대해 간단히 정리해보겠다.
192.168.1.1
IPv4에서의 IP주소는 4바이트로 표현된다.
그러므로 이론적으로 할당 가능한 IPv4 주소는 2^32 = 약 43억 개
이다.
일단 전세계 인구수는 43억보다 많다. 또한 요즘 시대에는 스마트폰, 데스크톱, 스마트워치, 냉장고 등 한 사람이 여러 대의 IP주소를 필요로하는 경우가 많다. 이 많은 기기들을 감당하기에는 43억은 턱없이 적은 양인걸 알 수 있다.
이를 극복하고자 등장한 것이 IPv6
이다!
2001:0230:abcd:ffff:0000:0000:ffff:1111
IPv6에서의 IP주소는 16바이트로 표현된다.
그러므로 이론적으로 할당 가능한 IPv6 주소는 2^128 개
이다. (사실상 무한이다)
충분히 많은 양이므로, IPv4의 IP주소 문제를 해결할 수 있다.
IP주소 부족 문제를 해결할 수 있는 IPv6의 사용실태를 조사해봤다.
한국인터넷정보센터 사이트를 참고하였다.
2023년에서 2024년까지 IPv6 주소 보유 현황은 딱 1개
증가했다고 한다... (1K개도 아니고 딱 한 개 맞다) 그리고 2021년부터 2024년까지 17개 늘어났다.
IPv6으로 바꾸고자 하는 움직임이 전혀 없거나, 집계가 제대로 되지않은 것처럼 보인다.
전세계적으로는 어떨까?
아래는 구글 IPv6 통계 사진이다.
2020년 30%에서 2024년 45%까지 늘어나긴 한 것을 볼 수 있다. 서서히 증가하는 느낌으로 보인다.
나라별 통계는 stats.labs.apnic.net 사이트에서 확인할 수 있다. (우리나라는 21%밖에 되지 않는다)
IP주소가 부족하다기에는 IPv6를 사용하려는 움직임이 크게 증가하는 것처럼 보이진 않았다. 사실 IPv4에서 IPv6으로 전환하기에는 큰 걸림돌이 하나 있다. 그것은 바로 기존의 IPv4 시스템이 IPv6 데이터그램을 처리할 수 없다는 것
이다.
당장 엔드포인트에 IPv6을 처리할 수 있는 시스템을 구축하더라도, 패킷이 지나다니는 중간 네트워크 장치가 IPv6을 처리할 수 없다면 제대로 동작할 수 없다. IPv6을 위해 모든 네트워크 장비를 교체하는 것도 비용 문제가 발생할 수 있다.
그렇기 때문에 완전히 IPv6으로 바뀌기 위해서는 IPv4와 IPv6이 공존하는 시기가 필요하다. 이 기간동안 점진적으로 IPv6 사용을 증가시키는 방안이 가장 현실적일 것이다. 그래서 현재는 IPv4와 IPv6을 같이 사용하고 있고, IPv6 지원이 점점 늘어나고 있다.
1983년 1월 1일, NCP에서 TCP/IP로 전환하는 플래그 데이가 있었다고 한다. TCP/IP로의 전환을 위해 NCP와 TCP/IP가 오랜 기간 같이 공존했고, 플래그 데이에 완전한 전환을 완료했다고 한다. 이 경우는 현재보다 인터넷 커뮤니티가 작았던 시절이었기 때문에, IPv4에서 IPv6의 전환은 더 오래걸릴 것 같다. 관련 글 더 알아보기
IPv6으로의 전환이 힘든 것은 이해했다. 하지만 당장 IP주소가 부족한 것은 사실인데, 이러한 문제는 어떻게 관리되고 있을까?
사설 IP주소를 공인 IP주소로 변환하는 기술
요즘 대부분 사람들은 공유기를 사용한다.
공유기는 공인 IP를 할당받고, 공유기에 연결된 Host들에게 사설 IP를 부여하는 역할을 한다. 이를 통해 하나의 IP주소로 여러 대의 기기가 인터넷에 접속할 수 있다.
네트워크에 접속하는 기기에 동적으로 IP주소를 할당하는 프로토콜
기기가 네트워크에 접속할 때, DHCP서버가 일정 시간 사용할 수 있는 IP주소를 할당해주고 시간이 지나면 다시 회수한다. 이 기술을 통해 IP주소를 효율적으로 사용할 수 있다.
NAT와 DHCP 외에도 CGNAT과 같이 IP주소를 아껴쓸 수 있는 기술들이 있다.