-
공인 IP 주소와 사설 IP 주소 / 포트 포워딩CS/Network 2024. 5. 8. 00:04
LAN 과 WAN
공유기(router)는 공인 ip주소와 사설 ip주소라는 두가지 주소를 갖고있다.
공유기는 주변의 여러 장치와 연결돼어 하나의 네트워크를 형성한다. 이 네트워크 내부의 ip주소가 사설 ip주소이다. (이 내부 네트워크를 LAN이라고 한다)
이 네트워크는 또 다른 네트워크들과 네트워크를 형성하고 있다. 이런 네트워크를 WAN이라고 하는데, WAN 에서 네트워크 끼리 통신하기 위한 ip주소가 공인 ip주소이다.
공유기를 통한 통신
공유기에 연결된 여러 장치중 하나의 장치가 서버 300.x.x.x 에 어떤 메세지를 보낸다고 하자.
그러면 공유기는 클라이언트의 주소를 공인 ip 주소로 바꾸어 서버로 보내고, 서버는 해당 공인 아이피 주소에 응답을 한다.
예를들어 다음과 같을 때, 서버에 요청하고 응답하는 과정은 다음과 같다.
공유기의 사설 ip주소 100.x.x.0
공인 ip주소 123.45.67.8
요청 서버 128.90.11.12
1. 클라이언트는 해당 메세지를 공유기로 보낸다.

2. 공유기는 source 주소를 공인 ip 주소로 바꿔 목적지 서버로 메세지를 보낸다.

3. 메세지를 받은 서버는 응답을 공인 ip 주소로 보낸다.

4. 서버의 응답을 받은 공유기는 클라이언트 ip로 바꿔서 전달한다.

가상 머신의 가상 공유기
가상 머신으로 컴퓨터를 생성할 경우, 가상 공유기를 통해 네트워크가 연결된다.
가상 공유기라고 해서 다를 것 없이 일반 공유기와 똑같이 생각하면 된다.
가상 공유기 또한 공인 ip 주소와 사설 ip 주소를 갖고 있다.
가상 공유기의 공인 ip 주소는 자동으로 내 컴퓨터의 ip 주소로 설정이 된다.
즉, 가상 공유기의 공인 ip 주소 = 내 컴퓨터의 ip 주소
가상 머신에서 서버로 요청을 보내고 응답을 보내는 과정 또한 일반 공유기와 똑같은 과정을 거친다.

포트 포워딩
공유기에 연결된 장치가 공유기 외부의 서버에 요청을 보낼 때는 공유기를 통해 요청을 보내고, 해당 요청은 기록이된다.
이 기록을 통해 어떤 장치가 어떤 서버에 요청을 했다는 정보를 얻을 수 있다.
하지만 사설 네트워크 외부의 서버는 공인 ip 주소만 알 수 있기 때문에 내부에 연결된 장치의 ip 주소를 알지 못한다.
(공유기 안쪽에서 바깥쪽으로는 통신이 가능하지만, 공유기 바깥에서 안쪽으로는 통신이 불가하다.)
그렇다면 외부 서버가 사설 네트워크 내부의 서버에 요청을 보내려면 어떻게 해야할까?
이런 경우에 포트 포워딩이라는 것을 해주면 된다.
포트 포워딩이란, 공유기에 연결된 장치에 대한 요청이 들어왔을 때, 미리 설정해둔 포트 번호로 연결시켜 해당 장치로 요청을 전달해주는 설정이다.
이렇게 하면, 외부 서버가 사설 네트워크에 포함된 장치의 아이피 주소를 몰라도 요청을 보낼 수 있다.
가상 머신의 포트 포워딩
가상 머신을 통해 포트 포워딩을 한번 더 이해해보자.
1. virtual network editor 에 들어가기
2. VMnet8 클릭 -> NET setting 클릭 -> Add 클릭
3. 해당 과정을 거치면 Map Incoming Port 창이 뜬다.
4. Host Port 에 원하는 포트 번호 입력 ex) 9876
5. Virtual machine IP address 에 연결할 서버 ip 주소 입력 ex) 192.168.198.10 (외부의 접속을 허용할 서버의 ip 주소)
6. Virtual machine port에 80 입력 (웹 브라우저에서 80을 통해 공유기에 접속) -> ok 눌러서 설정 완료
7. 내 윈도우 컴퓨터의 ip 주소 확인 ex) 192.168.0.152
8. 외부 컴퓨터 브라우저에서 192.168.0.152:9876에 접속
9. 요청 메세지를 받은 가상 공유기(192.168.0.152)는 9876에 연결된 ip 주소(192.168.198.10)를 찾아 연결

💡왜 내 윈도우 컴퓨터 ip 주소로 연결할까?
앞에서 말했듯이 외부의 컴퓨터는 서버의 ip 주소와 직접 통신할 수 없고 공유기의 공인 ip주소를 통해서만 요청/응답을 주고받는다. 또한, 가상 공유기의 공인 ip 주소는 가상 공유기가 설치된 컴퓨터의 로컬 ip 주소로 설정이 된다.
즉, 외부 컴퓨터는 가상 공유기의 공인 ip 주소(=로컬 컴퓨터 주소)로 요청을 보내고, 해당 요청을 받은 가상 공유기는 연결된 서버 중 9876 포트와 연결된 서버 ip 주소를 찾아 연결해 주는 것이다.💡포트 포워딩을 하지 않았을 때, 내 컴퓨터에서 가상 머신의 서버에 접속하면?
엄밀히 말하면 가상 공유기의 네트워크 내에 내 로컬 컴퓨터까지 포함된다.
따라서 가상머신과 같은 네트워크에 속해있기 때문에 포트포워딩 없이도 가상 머신의 서버로 접속할 수 있다.'CS > Network' 카테고리의 다른 글
로드밸런싱 (3) 2024.09.08 네트워크 인터페이스 / MAC 주소 (0) 2024.05.11 네트워크 연결 상태 확인 (1) 2024.05.07 REST, REST api, RESTful api, stateless (0) 2024.04.10