IP주소는 유한한데 어떻게 스마트폰, 노트북, 인터넷을 이용하는 디바이스가 엄청나게 늘어날텐에 어떻게 모든 디바이스가 인터넷을 할 수 있을까요?

다음과 같은 개념도를 보면 그 이유를 알 수 있습니다.

image.png
출처 : How to Use Your Router and ISP’s Modem/Router Combo In Tandem - How-To Geek

ISP-Supplied Router/Modem : SK브로드밴드
YourWireless Router : IPTIME
간단하게 설명해서 인터넷 공유기( 예) IPTIME )가 한 대 있다고 가정해봐요.
공유기와 이 공유기에 연결되어 있는 모든 컴퓨터는 하나의 네트워크에 속하게 되요.
하나의 네트워크 즉, LAN에 연결되어 있는 모든 장치들은 사설IP를 할당받게 되고, 각 장치 사이에 통신은 사설IP를 통해서 이루어지게 된다.
이 공유기가 인터넷에 연결되어 있는 경우, 공유기는 인터넷으로부터 할당받은 공인IP를 이용하여 인터넷과 통신하게 된다.

잠깐 사설 IP와 공인 IP를 그림으로 보면 다음과 같아요.

image.png
출처 : 내 PC의 IP주소는 사설IP일까? 공인IP일까?

IP주소에서 가장 중요한 특징은 유니크하다는 것입니다.
그래서 IP주소가 충돌하면 인터넷을 사용할 수가 없어요.
IP주소는 유한한 자원이에요. 할당을 해주는 주체도 있습니다.
공인 IP는 전세계에서 유일한 주소에요.

반면 사설 IP는 IP번호를 부여한 주체가 공유기가 돼요. 집에서 사용하는 스마트폰, 노트북, 스마트TV등 유무선인터넷을 이용하는 디바이스는 공유기가 새로 발급해준 IP 주소라는 것입니다. IP주소를 할당하는 것도 일이겠죠~ DHCP에 대해서 검색해보시면 알 수 있습니다.

다시 돌아와서, 인터넷이 알 수 있는 것은 공인IP를 할당받은 기기까지의 경로뿐이며, 사설IP의 존재는 알지 못해요.
따라서 인터넷에서는 사설IP를 할당받은 컴퓨터까지의 경로를 탐색하는 것이 불가능하고, 이는 인터넷에서 사설IP를 할당받은 컴퓨터에게 패킷을 전달할 수 없어요.

사설 IP를 할당받은 컴퓨터가 인터넷과 통신하기 위해서는 공인IP를 이용해야 하는데, 이 과정은 해당 컴퓨터가 사설IP로 인터넷에 패킷을 보내면 공유기가 해당 패킷에 적혀있는 사설IP를 공인IP로 바꿔줌으로써 알아서 처리해줘요. 또한 인터넷에서 오는 패킷의 목적지도 해당하는 사설IP주소로 알아서 변경한 후에 전달해 줍니다.

image.png

공유기를 이용하여 VPN을 구축한 경우, 이 공유기를 VPN서버라고 부를 수 있대요.
LAN 외부의 컴퓨터가 공유기를 이용해서 구축한 VPN을 이용하게 되면, 그 컴퓨터에서 오고 가는 모든 패킷은 공유기를 거치게 되죠. VPN에 접속한 컴퓨터에서는 패킷을 보낼 때 특정 프로토콜에서 명시한 형태로 가공한 후 공유기로 전달한다. 공유기가 가공된 패킷을 전달 받은 후 원래 내용으로 되돌리는 과정에서 보낸 곳의 IP주소를 추가로 할당한 사설IP주소로 변경하게 해줘요. 그리고 공유기는 그 패킷을 다음 경로로 전달합니다.

image.png
출처 : VPN 및 방화벽 [MS Technet 펌] - 희망을 꿈꾸며

VPN에 접속한 컴퓨터가 보낸 패킷이 공유기로 전달된 후에, 공유기가 그 패킷을 다시 전달하는 시점에서는 사설IP를 이용하게 되므로, VPN에 접속한 컴퓨터에 추가로 사설 IP를 할당한 것과 같은 효과를 냅니다.

이러면 뭐가 좋을까요?
외부에 있는 다른 통신 장비(컴퓨터)가 VPN이 속한 사설망에 접속하여, 마치 내부 네트워크에 포함된 장비처럼 통신할 수 있도록 해줍니다.

VPN에 접속한 컴퓨터는 LAN내부의 기기들과 같은 네트워크의 사설IP를 사용하게 됨으로써, LAN에 속한 컴퓨터와 통신이 가능해집니다.
VPN에 접속한 컴퓨터에서 인터넷으로 보내는 패킷은, 사설IP를 할당받은 컴퓨터가 인터넷과 통신하는 과정과 동일하게 이루어져요. 따라서 공유기가 인터넷에 전달하는 패킷에는 공유기가 할당받은 공인 IP를 이용하게 됩니다.

VPN에 접속한 컴퓨터가 인터넷과 통신하는 경우에는 공유기의 IP로 인터넷에 연결되어있습니다. 특히 가상 사설망 자체가 보안이 필요한 전용선을 대신해서 쓰는 경우가 많으므로, VPN에 접속한 컴퓨터와 VPN서버 사이의 터널을 지나가는 패킷을 암호화 하는 경우가 많습니다. 그렇기 때문에 VPN서버의 로그를 보지 않는이상 원래 사용자를 알아내는 것은 사실상 불가능하대요. 프록시 서버에 비해 강력한 익명성이 보장된답니다.

image.png
출처 : Is your VPN secure?

레퍼런스 : How To Create A Free Personal VPN In The Cloud Using EC2 & OpenVPN - Tatiana Ensslin
레퍼런스 : VPN이란 - pasudo123@naver.com
레퍼런스 : 가설 사설망 - 나무위키
레퍼런스: VPN이란-무엇인가 - [일단은 프로그래머 나부랭이]