인터넷 사용자의 로컬 네트워크를 식별하기 위해 ISP(인터넷 서비스 공급자)가 제공하는 IP 주소이다. 공용 IP 주소라고도 불리며 외부에 공개되어 있는 IP 주소이다.
공인 IP는 전세계에서 유일한 IP 주소를 갖는다.
공인 IP 주소가 외부에 공개되어 있기에 인터넷에 연결된 다른 PC로부터의 접근이 가능하다. 따라서 공인 IP 주소를 사용하는 경우에는 방화벽 등의 보안 프로그램을 설치할 필요가 있다.
일반 가정이나 회사 내 등에 할당된 네트워크의 IP 주소이며, 로컬 IP, 가상 IP라고도 한다. IPv4의 주소부족으로 인해 서브넷팅된 IP이기 때문에 라우터에 의해 로컬 네트워크상의 PC 나 장치에 할당된다.
2.1. 사설IP 주소대역
사설IP 주소는 다음 3가지 주소대역으로 고정된다.
Class A : 10.0.0.0 ~ 10.255.255.255
Class B : 172.16.0.0 ~ 172.31.255.255
Class C : 192.168.0.0 ~ 192.168.255.255
공인 IP (Public IP) 사설 IP (Private IP)
할당 주체 ISP(인터넷 서비스 공급자) 라우터(공유기)
할당 대상 개인 또는 회사의 서버(라우터) 개인 또는 회사의 기기
고유성 인터넷 상에서 유일한 주소 하나의 네트워크 안에서 유일
공개 여부 내/외부 접근 가능. 외부 접근 불가능
❗ 사설 IP 주소만으로는 인터넷에 직접 연결할 수 없다. 라우터를 통해 1개의 공인(Public) IP만 할당하고, 라우터에 연결된 개인 PC는 사설(Private) IP를 각각 할당 받아 인터넷에 접속할 수 있게 된다.
아래의 그림을 보면 이해가 쉽다.
💻➡🌏 : 사설 IP를 할당받은 스마트폰 혹은 개인 PC가 데이터 패킷을 인터넷으로 전송하면, 라우터(공유기)가 해당 사설 IP를 공인 IP로 바꿔서 전송한다.
🌏➡💻 : 인터넷에서 오는 데이터 패킷의 목적지도 해당하는 사설 IP로 변경한 후 개인 스마트폰 혹은 PC에 전송한다.
라우터(router[a] 혹은 라우팅 기능을 갖는 공유기)는 컴퓨터 네트워크 간에 데이터 패킷을 전송하는 네트워크 장치다. 패킷의 위치를 추출하여, 그 위치에 대한 최적의 경로를 지정하며, 이 경로를 따라 데이터 패킷을 다음 장치로 전달한다. 이때 최적의 경로는 일반적으로는 가장 빠르게 통신이 가능한 경로이므로, 일반적으로는 최단 거리일 수 있지만, 돌아가는 경우라도 고속의 전송로를 통하여 전달이 될 수도 있다. 간단히 말해, 서로 다른 네트워크 간에 중계 역할을 해주는 장치다.
포트(port)는 "논리적인 접속장소", 특히 인터넷 프로토콜인 TCP/IP를 사용할
때에는 클라이언트 프로그램이 네트워크 상의 특정 서버 프로그램을 지정하느 방법으로 사용된다.
네트워크 상에서 통신을 할 때 IP를 토대로 해당 서버가 있는 컴퓨터에 접근한다.
인터넷 주소는 IP 이다.
123.123.134.124 과 같은 32비트 숫자이다.
한개의 호스트, 즉 아이피를 가지고 있는 컴퓨터(또는 서버)에서 여러가지 인터넷 서비스를 할 수 있다.
대표적으로 인터넷웹 서비스 , 메일 서비스, DNS서비스 , FTP 서비스 등이 있다.
한개의 호스트로 오는 패킷이 어떤 서비스에 대한 요청인지 파악하기 위해서 포트번호라는 것을 사용한다.
(포트는 프로세스 식별자라고도 한다. 4계층에서 해당 포트를 이용해 목적지로 전송한다. )
IP와 PORT의 차이
✅ 핵심
그런데 대부분의 경우 하나의 컴퓨터에는 여러 개의 서버가 실행될 수 있다.
컴퓨터에 여러 개의 서버가 실행되고 있다면, 어느 서버에 접속해야 하는지 컴퓨터에게 알려줘야 한다.
이때 사용되는 것이 포트 번호
가령 인터넷 웹 서비스, 즉 HTTP 서버는 80 포트를 이용한다.
메일 서비스, 즉 SMTP 서버는 25번을 사용한다.
DNS 서버는 52번 , FTP는 21번(passive port는 별도)을 사용한다.
HTTPS는 암호화되지 않은 HTTP 서버가 아닌 웹 서버와 암호화 된 연결을 설정한다.
HTTP와 HTTPS는 서로 다른 프로토콜이므로 두 개의 서로 다른 포트를 사용한다.
HTTP는 포트 80에서 사용할 수 있고 HTTPS는 포트 443에서 사용할 수 있다.
"https : //"로 시작하는 웹 사이트에 연결할 때마다 또는 자물쇠 아이콘이 표시 될 때마다 포트 443을 통해 해당 웹 서버에 연결된다.
한개의 호스트에서 두개 이상의 웹 사이트를 운영하고 싶을 때에 두가지 방법이 있다.
www.dream.com 과 dream.security.com 또는 아예 다른 도메인 www.dream123.com 등으로 나누어서 관리를 하자.
한개의 웹 서버(아파치 , IIS)에서 이렇게 도메일 별로 root directory 등 설정을 달리하여 따로 관리할 수 있는 기능이 있다.
80포트를 이용한 한개의 서비스이지만, 그 서비스 내에서 도메인에 따라 다르게 동작하도록 하는 것이다.
이 방법은 성격이 다른 서비스를 운영하고 싶을 때에 좋다.
80포트를 사용하는 웹서버 말고, 또 하나의 웹서버를 설치한다.
웹사이트의 특성에 따라 서버의 종류와 특성이 다를 수 있기 때문에 아예 서비스하는 데몬 자체가 달라야할 필요가 있을때이다.
다른 포트로 서비스를 할 때에 주로 쓰는 번호가 8080 이다.
8080 포트는 IANA 에서 HTTP Alternate(see port 80)라고 정의하고 있다.
대부분의 브라우저에서는 크롬이나 인터넷 익스플로러 등 모두가 웹 서비스 포트는 80 이라고 생각하고 동작한다.
만약 8080 포트로 서비스하는 웹 서버에 접속하려면 도메인 끝에 콜로(:)와 함께 포트번호도 명시해야 한다.
즉 http://www.dream.com:8080 이런식이다.
http://www.dream.com 으로 검색하면 웹 브라우저는 80 포트로 접속한다.(80은 생략 가능하기 때문)
**인바운드 규칙**은
외부네트워크에서 내부 네트워크로 데이터 패킷을 보내는 것을 의미 함
예 ) 전화를 받는 고객센터
보안상의 유지를 위해 포트를 다열어 주지 않고, 필요한 포트만 열어준다 .
- SSH : 다른서버 이용시 필요한 포트 22
- HTTP : 인터넷 웹서비스 포트 80
- HTTPS : 보안기능을 추가한 HTTP 443
- 사용자지정 TCP : 기존 웹서버와 다른 성격의 웹 서비스를 제공하기 위한 새로운 서버 사용시 주로 쓰는 번호는 8080
**아웃바운드 규칙**은
내부네트워크에서 외부네트워크로 데이터패킷을 보내는 것을 의미 함
웹서비스를 원활한 활용을 위해 보통의 경우 모든서버에 대해 열어 둔다 .
하지만 보안상의 문제로 제한할 경우도 있다.
참고
https://velog.io/@attosisss_/%ED%8F%AC%ED%8A%B8-80-vs-8080