😁 IP 주소란?
- IP란 인터넷 프로토콜(Internet Protocol)의 약자로 인터넷상에서 데이터를 주고 받기 위한 통신 규약입니다.
- 통신이란 데이터를 주고 받아야 하는데 출발지와 도착지가 있어야합니다.
- 인터넷의 주소를 IP 주소라고 합니다.
- 하나의 네트워크, 즉 하나의 브로드캐스트 도메인에 있는 IP끼리 통신하기 위해선 네트워크 영역이 같아야하며, 호스트 IP는 달라야합니다.
- 네트워크 영역이 달라도 라우터나 게이트웨이와 같은 통신장비를 통해 통신할 수 있습니다.
😁 IP 주소 방식
- IPv4 : 0부터 255까지의 숫자 4마디로 구분되는 방식
- 0.0.0.0부터 255.255.255.255까지의 주소를 사용하며 2의 32제곱, 대략 42억개의 주소를 나타낼 수 있습니다.
- IPv6 : 최근 IP 주소 부족 문제를 해결하기 위해 제안된 새로운 IP 주소 체계
- 128개의 이진수(128비트)로 처리하게 됩니다.
😁 공인 IP와 사설 IP란?
- 공인 IP는 공인기관에서 인증한 공개형(public) IP 주소입니다.
- 인터넷 공유기를 사용하지 않는 컴퓨터 등에서 사용하는 대부분의 IP 주소는 공인 IP 주소입니다.
- 사설 IP(또는 가상IP주소)는 공인되지 않은 주소라는 뜻이며 외부에 공개되지 않아, 원칙적으로 외부에서 검색, 접근이 불가능한 주소입니다.
😁 고정 IP와 유동 IP란?
- 고정 IP 주소는 사용자가 직접 IP 주소를 입력해 주소를 설정하는 방식을 말합니다.
- IP 주소가 변경되면 안되는 서버나 네트워크 프린터 등에 적합합니다.
- 유동 IP 주소는 IP 주소를 할당하는 서버나 공유기가 보내주는 정보 그대로 컴퓨터에 자동 설정되는 방식입니다.
- DHCP(Dynamic Host Configuration Protocol) 서비스라 하는데 컴퓨터가 부팅하면 DHCP 서버에 IP 주소 할당을 요청하고, 이를 수신한 DHCP 서버가 해당 컴퓨터에 IP 주소 등의 네트워크 정보를 전달하면, 컴퓨터에서는 이를 자동으로 등록, 설정하게 됩니다.
- 인터넷 공유기는 사설 IP 주소를 생성하여 각 컴퓨터 등에 자동 할당(DHCP 서비스) 해주는 역할도 하고 있습니다.
😁 IP 주소와 클래스
- IP 주소에는 클래스라는 개념이 있고 이 클래스의 개념을 알아야 어디까지가 네트워크 영역이고 호스트 IP 영역인지 알 수 있습니다.

- A 클래스
- 하나의 네트워크가 가질 수 있는 호스트 수가 제일 많은 클래스
- IP 주소를 32자리 2진수로 표현했을 때, 맨 앞자리수가 항상 0인 경우가 A클래스입니다.
- 0.0.0.0 ~ 127.255.255.255 범위(실제론 1부터 126까지)
- 호스트 주소가 가질 수 있는 갯수는 (2^24)-2 개입니다.
- 모두 1인 경우 브로드캐스트 주소로 사용하고 모두 0인 경우엔 네트워크 주소로 사용하기 때문입니다.
- B 클래스
- 반드시 10으로 시작함(2진수)
- 128.0.0.0 ~ 191.255.255.255까지의 범위
- 호스트 주소 갯수는 (2^16)-2개입니다.
- 모두 1인 경우 브로드캐스트 주소로 사용하고 모두 0인 경우엔 네트워크 주소로 사용하기 때문입니다.
- C 클래스
- 반드시 110으로 시작함(2진수)
- 192.0.0.0 ~ 223.255.255.255까지입니다.
- 호스트 주소 갯수는 (2^8)-2개입니다.
😁 서브네팅이란?
- 네트워크 성능 보장, 자원을 효율적으로 분배하기 위해 네트워크 영역과 호스트 영역을 쪼깨는 작업을 뜻합니다.
😁 서브넷 마스크란?
- 하위(sub) 네트워크(net)를 구분하는 표기(mask)법을 의미함
- 같은 IP 주소 대역이라도 네트워크를 A, B, C 클래스 등을 나눌 수 있는데, 이를 구분하는 기준을 의미합니다.
- 서브넷 마스크는 필요한 네트워크 주소만 호스트 IP로 할당할 수 있게 만들어 네트워크 낭비를 방지합니다.
- EX) IP주소에서 만약 192.168.0.1/24라고 하면 이는 C 클래스이고 기본 디폴트 마스크는 255.255.255.0입니다.
- IP 뒤에 /24라는 표현이 1이 24개가 있다는 뜻임(2진수)
- 1은 네트워크 영역으로 사용하겠다는 뜻이고 0은 호스트 IP로 사용하겠다는 뜻입니다.
- 사용자에게 0이 표현된 부분만 호스트 IP를 할당할 수 있게 만들겠다는 뜻입니다.
- 기본 서브넷 마스크로 쪼개진 네트워크 주소를 서브넷 네트워크라고 합니다.
- IP주소와 서브넷 마스크를 논리 AND 연산을 하면 서브넷 네트워크를 구할 수 있습니다.
- 서브넷마스크로 나뉘어진 서브넷 네트워크 간 통신은 라우터를 통해서 통신이 되어야합니다(서브넷네트워크는 하나의 독립적인 네트워크임)
😁 포트 포워딩이란?
- 포트를 전달해준다는 의미입니다.
- Port는 서버에서 실행되고 있는 많은 프로그램의 통신을 구분하기 위해 숫자로 표현한 개념입니다.
- 공유기를 설치하면 공유기와 연결된 PC들은 공유기로부터 내부 IP를 부여받습니다.
- 외부에서 내부 PC에 접속을 하려면 공유기 IP 주소를 통해 연결 요청을 해야합니다.
- 예를 들어 외부에서 11번 포트로 요청이 왔다면 공유기는 어느 PC의 11번 포트로 연결을 해줘야할 지 모르는 상태입니다.
- 이럴 때 공유기에게 해당 포트가 실행되는 기계의 IP주소를 이정표로 참조할 수 있게 하여 해당 PC로 정확하게 전달해줄 수 있게 합니다.

- 포트 포워딩은 다음과 같은 상황에서 사용됩니다:
- 외부에서 내부 네트워크의 특정 장치나 서버에 접근해야 할 때
- 내부 네트워크의 다른 장치들을 보호하면서 특정 서비스에 접근이 필요한 경우
- 동일한 IP 주소를 사용하는 여러 개의 장치가 서로 다른 서비스를 제공해야 하는 경우
- 공유기 또는 방화벽에서 포트 포워딩 규칙을 설정합니다. 이 규칙은 외부에서 오는 특정 포트 번호의 데이터를 내부 네트워크의 특정 IP 주소와 포트로 전달하도록 지시합니다.
- 외부 사용자가 인터넷을 통해 해당 서비스를 이용하기 위해 공유기에 접속을 시도합니다.
- 공유기는 설정된 포트 포워딩 규칙에 따라 요청을 내부 네트워크의 적절한 장치로 전달합니다.
- 내부 네트워크의 장치는 요청을 처리하고 응답을 공유기로 전송합니다.
- 공유기는 응답을 외부 사용자에게 전달하여 통신이 완료됩니다.
- 포트 포워딩을 통해 외부에서 내부 네트워크의 특정 서비스나 어플리케이션에 접근이 가능해지지만, 동시에 보안 문제가 발생할 수 있으므로 주의가 필요합니다. 이러한 문제를 최소화하기 위해 필요한 서비스에만 포트 포워딩을 설정하고, 사용되지 않는 포트는 차단하는 것이 좋습니다.
😁 포트 포워딩 예시
- 웹 서버는 공인 IP 주소를 사용하여 외부에서 접근할 수 있지만, 내부 네트워크에 위치하고 있습니다. 이 웹 서버에 외부에서 접근하기 위해 포트 포워딩을 설정해야 합니다.
- 공유기 관리 페이지에 접속:
공유기 제조사와 모델에 따라 관리 페이지 접속 방법이 다릅니다. 일반적으로 웹 브라우저에 공유기의 IP 주소(예: 192.168.1.1)를 입력하여 접속합니다. 공유기 관리 페이지에 로그인하려면 사용자 이름과 비밀번호를 입력해야 하는데, 이는 공유기 사용 설명서나 제조사 웹사이트에서 확인할 수 있습니다.
- 포트 포워딩 설정 페이지로 이동:
공유기 관리 페이지에서 포트 포워딩 설정 옵션을 찾습니다. 이는 종종 '포트 포워딩', '포트 트리거', '가상 서버', '어플리케이션' 등의 이름으로 표시됩니다.
- 포트 포워딩 규칙 생성:
새로운 포트 포워딩 규칙을 생성합니다. 아래 정보를 입력합니다.
- 서비스 이름 (예: MyWebServer)
- 외부 포트 번호 (웹 서버의 경우 일반적으로 80)
- 내부 IP 주소 (웹 서버의 로컬 IP 주소, 예: 192.168.1.100)
- 내부 포트 번호 (웹 서버의 경우 일반적으로 80)
- 프로토콜 (웹 서버의 경우 TCP)
- 변경 사항 저장:
포트 포워딩 규칙을 저장하고, 필요한 경우 공유기를 재부팅합니다.
이제 외부 네트워크에서 공인 IP 주소와 외부 포트 번호(예: 80)로 웹 서버에 접속할 수 있습니다. 포트 포워딩이 정상적으로 설정되면, 외부에서 공유기가 해당 요청을 웹 서버의 내부 IP 주소와 포트로 전달하게 됩니다.
참고로, 이 예시는 일반적인 포트 포워딩 설정 과정을 설명한 것이며, 공유기 제조사와 모델에 따라 상세 설정 방법이 다를 수 있습니다. 따라서 구체적인 설정 방법은 공유기 사용 설명서나 제조사 웹사이트를 참고해야 합니다.
😁 FTP란?
- File Transfer Protocal의 약자로 TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일 전송을 하기 위한 프로토콜입니다.
😁 VPN란?
- Virtual Private Network의 약어입니다.
- VPN은 네트워크 A와 네트워크 B가 실제로 같은 네트워크 상에 있지만 논리적으로 다른 네트워크인 것처럼 동작하도록 하는 ‘가상사설망’을 의미합니다.
😁 VPC란?
- Virtual Private Cloud의 약어입니다.
- 서브넷은 VPC의 IP 주소 범위를 의미합니다.
😁 EC2란?
- AWS의 여러 서비스 중 독립된 컴퓨터 한대를 임대해서 사용할 수 있게 해주는 서비스입니다.
- AWS는 나라별로 데이터 센터를 가지고 있는데 데이터센터에 있는 컴퓨터를 임대한다는 개념입니다.
- EC2 Instance는 컴퓨터 한 대를 의미합니다.
- Instance 다섯 개를 사용중이다는 컴퓨터 5대를 사용중임을 의미합니다.
- 컴퓨터 임대 시(생성 시) 컴퓨터의 스펙과 OS를 설정할 수 있습니다.

- VPC가 없다면 EC2 인스턴스들이 각각 연결되어 매우 복잡한 구조가 됩니다.

- VPC를 적용하면 VPC 별로 네트워크를 구성할 수 있고 각각의 VPC에 따라 다르게 네트워크 설정을 줄 수 있음. 각각의 VPC는 완전히 독립적인 네트워크처럼 동작합니다.