IP란 무엇일까?
IP는 Internet Protocol의 약자로 인터넷에 연결되어 있는 모든 장치들을 식별할 수 있도록 하는 각각의 장비에 부여하는 고유 주소이다.
이러한 IP들은 공인 IP와 사설 IP로 분류할 수 있다.
공인 IP
공인 IP는 인터넷 업체가 사용자에게 할당하는 주소이며, 고유한 외부 IP주소이다.
이는 사용자의 전체 네트워크에 적용되기 때문에 공용 IP 주소라고도 불린다.
사설 IP
사설 IP 주소란 어떤 네트워크 안에서만 사용되는 내부적인 주소이다.
예를 들어, 특정 공유기는 공인 IP를 가지고 있지만, 해당 공유기에 연결되어 있는 가정이나 회사의 각 네트워크 기기는 사설 IP를 가지고 있다.
사설 IP는 특정 네트워크 안에서만 사용되기 때문에 네트워크 내에서 중복되지 않아야한다.
아래 그림은 1개의 공인 IP와 3개의 사설 IP가 있다.
해당 공유기는 59.6.66.238 이라는 공인 IP가 부여되어있다.
그리고 공인 IP 주소를 부여받은 공유기는 여러개의 사설 IP를 만들 수 있는 데, 192.168.0.2와 192.168.0.3 그리고 192.168.0.4가 사설 IP이다.
사설 IP들을 효과적으로 관리하기 위해서 사설망이라는 개념이 등장하였다.
위 그림에서 사설망은 192.168.0.1 이다.
여기에서 의문이 든다.
사설 IP는 중복될 수 있는 데 외부에서 해당 사설 IP를 어떻게 구분하는 것일까?
외부에서 사설 IP를 구분하는 방법
외부에서 사설 IP를 구분하는 방법은 NAT(Network Address Translation)을 사용하는 것이다.
NAT은 사설 IP와 공인 IP를 매핑하고 있다.
아래는 NAT 테이블의 일부이다.
공인 IP 주소 | 공인 포트 번호 | 사설 IP 주소 | 사설 포트 번호 |
124.111.46.91 | 10001 | 192.168.0.4 | 80 |
내부 -> 외부
서버 1이 외부 서버에 요청을 보낸다고 생각해보자!
공인 포트 번호 10001에 사설 IP 주소가 매핑되어 있으므로, OutBound시 출발지와 도착지는 아래와 같다.
출발지 : 124.111.46.91:10001
도착지 : 223.130.200.107
공인 포트 번호를 사용해서 출발지의 사설 IP 주소에대한 정보를 나타내고 있다.
외부 -> 내부
외부 서버가 서버1에 응답할 때는 공인 포트 번호를 사용하여 NAT 테이블에서 사설 IP로 이동할 수 있다.
출발지 : 223.130.200.107
도착지 : 124.111.46.91:10001 -> 192.168.0.4:80
이와 같이 NAT을 사용하여 외부에서 사설 IP를 구분할 수 있다.
외부 서버에서 서버1로 응답할 때 포트 포워딩이라는 방법을 사용하여, 10001 포트에서 192.168.0.4:80로 이동하였다.
특정 포트에 도달하는 방법
외부에서 특정 장치로 접속하기 위해서는 IP를 알아야한다.
NAT을 통해서 특정 공인 IP와 사설 IP와 각각의 포트들이 매핑되어있다는 정보는 알 수 있었다.
하지만, 매핑되어있는 정보를 사용해 공인 IP의 포트에서 특정 사설 IP로 이동하는 방법은 무엇일까?
이러한 방법을 포트 포워딩이라고 한다.
포트 포워딩
외부 IP 주소의 특정 포트에 접속하면 특정 사설 IP로 접속이 가능하게끔 만들어주는 것이다.
즉, NAT을 통해 공인 IP와 사설 IP를 매핑하고 포트 포워딩을 통해 "공인 IP + 포트"를 정의해 특정 사설 IP로 접속할 수 있는 길을 만들어주는 것이다.
감사합니다!
'인프라' 카테고리의 다른 글
왜 Private Subnet이 필요한가? (feat : 보안 그룹) (1) | 2024.11.18 |
---|---|
S3 퍼블릭 엑세스 차단을 활성화하면서 객체에 접근하는 방법, Pre-Signed-URL (0) | 2023.12.03 |
TCP/IP란? (2) | 2022.11.12 |
Port 8080 was already in use (0) | 2022.09.27 |