본문 바로가기

WEB개념/NETWORK & PROTOCOL

공인IP, 사설IP, NAT, localhost, 0.0.0.0

 

1. 공인 IP 주소 (Public IP Address)

 

공인 IP 주소는 인터넷상에서 유일하고 전 세계적으로 고유한 주소입니다. 이 주소는 인터넷 서비스 제공업체(ISP)에 의해 할당되며, 인터넷을 통해 외부 네트워크와 통신하는 데 사용됩니다.

 

특징

  • 전 세계에서 유일: 공인 IP는 전 세계 어디서나 고유하며, 인터넷에 연결된 모든 장치가 이를 통해 서로 소통할 수 있습니다.
  • ISP 할당: 공인 IP는 인터넷 서비스 제공업체(ISP)가 사용자의 네트워크에 할당합니다. 예를 들어, 가정용 인터넷에서는 ISP가 집에 하나의 공인 IP 주소를 제공합니다.
  • 직접 접근 가능: 공인 IP는 외부 네트워크에서 해당 주소로 직접 접근할 수 있습니다. 이는 서버, 웹사이트, 클라우드 서비스 등에 사용됩니다.

 

 

사용 예시

  • 웹 서버: 웹 서버나 이메일 서버는 공인 IP를 사용하여 전 세계 사용자들이 접근할 수 있도록 합니다.
  • 네트워크 장비: 라우터나 게이트웨이와 같은 네트워크 장비도 공인 IP를 통해 외부와 연결됩니다.

 

 

공인 IP 주소의 종류

  • IPv4: 32비트 주소 체계로, 약 43억 개의 고유 주소를 제공합니다. IPv4 주소는 부족해져 가고 있으며, 이에 따라 IPv6로의 전환이 이루어지고 있습니다.
  • IPv6: 128비트 주소 체계로, 사실상 무한에 가까운 주소를 제공하여 주소 부족 문제를 해결합니다.

 


 

2. 사설 IP 주소 (Private IP Address)

 

사설 IP 주소내부 네트워크에서만 사용되는 주소입니다. 즉, 외부 인터넷에서는 직접 접근할 수 없으며, 주로 로컬 네트워크나 가정, 회사 내의 장치들 간에 통신하는 데 사용됩니다. 사설 IP는 공인 IP를 절약하고, 여러 장치가 하나의 공인 IP를 공유할 수 있도록 돕습니다.

 

 

특징

  • 로컬 네트워크 한정: 사설 IP는 인터넷을 통해 외부에서 접근할 수 없고, 오직 내부 네트워크 내에서만 유효합니다.
  • 중복 가능: 여러 조직이나 가정에서 동일한 사설 IP 범위를 사용할 수 있습니다. 사설 IP 주소 범위 내에서 주소를 중복해서 사용할 수 있습니다.
  • NAT(Network Address Translation): 사설 IP 주소를 사용하는 네트워크는 NAT를 통해 공인 IP로 외부와 연결됩니다. 즉, 여러 사설 IP를 하나의 공인 IP로 "변환"하여 인터넷과 연결됩니다.

 

 

사용 예시

  • 가정용 네트워크: 집에서 사용하는 Wi-Fi 라우터는 내부 네트워크에 연결된 장치들에게 사설 IP를 할당합니다. 예를 들어, 스마트폰이나 컴퓨터는 사설 IP를 사용하여 집 안에서 통신합니다.
  • 사내 네트워크: 회사 내의 서버나 장치들도 사설 IP 주소를 사용하여 서로 연결됩니다. 외부 인터넷과 연결될 때는 라우터가 NAT를 사용하여 공인 IP로 변환합니다.

 

 

사설 IP 주소의 범위

사설 IP는 특정 IP 범위 내에서만 사용됩니다. 일반적으로 다음과 같은 범위가 사설 IP 주소로 예약되어 있습니다:

  • IPv4 사설 IP 범위:
    • 10.0.0.0 ~ 10.255.255.255 (클래스 A)
    • 172.16.0.0 ~ 172.31.255.255 (클래스 B)
    • 192.168.0.0 ~ 192.168.255.255 (클래스 C)

 

 


 

패킷의 흐름 및 구분 방법

  1. 공유기에서 패킷 수신
    • 외부에서 들어오는 패킷은 공유기의 공인 IP 주소로 수신됩니다.
    • 이 패킷은 TCPUDP 같은 프로토콜을 사용하여 전송되며, 해당 패킷은 특정 포트 번호를 포함하고 있습니다.

  2. 포트 번호에 따른 라우팅
    • 공유기는 패킷의 목적지 포트 번호를 기준으로 패킷을 내부 네트워크의 적절한 장치로 전달합니다.
    • 예를 들어, 컴퓨터가 HTTP(80번 포트)로 연결을 기다리고 있고, 팩스는 FTP(21번 포트)나 다른 특정 포트를 사용하고 있다면, 패킷의 포트 번호를 통해 팩스컴퓨터를 구분할 수 있습니다.

  3. 포트 포워딩 (Port Forwarding) 설정
    • 포트 포워딩은 공유기나 라우터에서 특정 포트로 들어오는 트래픽을 내부의 특정 장치로 전달하도록 설정하는 기능입니다.
    • 예를 들어, 공유기에서 포트 포워딩을 설정하여 21번 포트로 들어오는 패킷은 팩스 장치로, 80번 포트로 들어오는 패킷은 컴퓨터로 전달되도록 할 수 있습니다.

  4. NAT (Network Address Translation)
    • NAT는 공인 IP 주소와 내부 사설 IP 주소 간의 변환을 담당합니다. 공유기는 외부에서 들어오는 트래픽을 적절한 내부 장치로 전달하기 위해 포트 번호를 기준으로 NAT 테이블을 확인하여, 해당 트래픽을 적절한 사설 IP 주소로 라우팅합니다.
    • 예를 들어, 공인 IP의 203.0.113.1 주소에서 들어오는 80번 포트 트래픽은 컴퓨터의 사설 IP(192.168.0.2)로, 21번 포트 트래픽은 팩스의 사설 IP(192.168.0.3)로 라우팅됩니다.

 

 

예시 시나리오

  1. 공유기 설정:
    • 포트 80192.168.0.2 (컴퓨터)
    • 포트 21192.168.0.3 (팩스)
  2. 패킷 전달 흐름:
    • 외부에서 오는 HTTP 요청 (80번 포트):
      • 요청이 공유기의 공인 IP 주소로 도착합니다.
      • 공유기는 패킷의 포트 번호(80번)를 확인하고, 이를 컴퓨터로 전달합니다.
    • 외부에서 오는 FTP 요청 (21번 포트):
      • 요청이 공유기의 공인 IP 주소로 도착합니다.
      • 공유기는 패킷의 포트 번호(21번)를 확인하고, 이를 팩스로 전달합니다.
  3. 공유기의 역할:
    • 패킷을 수신한 후, 공유기는 포트 번호를 기준으로 해당 패킷을 내부 네트워크의 적절한 장치로 전달합니다.
    • 포트 포워딩을 통해 컴퓨터팩스는 서로 다른 포트를 사용하여 구분됩니다.

 


 

로컬호스트 ( 127.0.0.1 ) vs 0.0.0.0

 

netstat에서 0.0.0.0과 127.0.0.1은 IP 주소로, 각각 의미가 다릅니다. 각 주소는 서버가 어떤 네트워크 인터페이스에서 수신하는지를 나타냅니다.

1. 0.0.0.0

  • 모든 네트워크 인터페이스에서 연결을 수신한다는 의미입니다.
  • 즉, 외부 네트워크와의 연결도 허용하며, 로컬 네트워크나 모든 IP에서 접근이 가능합니다.
  • 보통 서버나 데몬이 모든 네트워크 인터페이스에서 요청을 받을 때 사용됩니다.
  • 예를 들어, 로컬 머신뿐 아니라 외부의 다른 시스템에서도 접근이 가능하게 하려면 0.0.0.0에 바인딩됩니다.

2. 127.0.0.1

  • 로컬 루프백 주소로, 자기 자신만을 대상으로 합니다.
  • 즉, 이 주소에 바인딩된 서비스는 현재 시스템 내부에서만 접근할 수 있습니다. 외부에서 이 주소로 접근할 수 없습니다.
  • 로컬 서버나 테스트 서버가 외부와의 연결 없이 자기 자신과만 통신하려 할 때 사용됩니다.