공인 IP과 사설 IP, NAT

sunnyjjang·2025년 7월 7일

네트워크

목록 보기
23/26
post-thumbnail

공인IP (Public IP)와 사설 IP (Private IP)

사설망(Private Network)의 탄생

  • IPv4 주소 고갈 문제와 보안 및 비용 절감의 필요성으로 인해 등장한 내부 전용 네트워크
  • 가정, 사무실, 기업 등 한정된 공간에 사용한 네트워크
  • RFC 1918과 RFC 4193 표준 준수

사설망이란?

인터넷과 독립된 로컬 네트워크사설 IP 대역을 이용하여 내부 장치에 주소를 할당함. 외부와 통신할 때에는 NAT 기술을 사용

WHY? 외부와 통신 직접할 수 없나요? 외부와 통신하기 위해서는 꼭 NAT 기술을 이용해야하나요?

사설 IP는 내부 네트워크에서만 유효한 주소이기 때문에 인터넷 환경에서는 사설 IP 주소를 인식하지 못하기 때문 !!

→ 사설 IP가 내부망에서만 유효한 이유

  • 사설 IP는 중복이 가능하기 때문에 다른 네트워크에도 동일한 IP 존재할 수 있음 → 식별 불가능
  • 인터넷 상의 라우터들은 RFC 1918에서 정의된 사설 IP 주소를 폐기(drop) 하도록 설계되어 있어서 사설 IP를 가진 장비가 직접 인터넷에 나가면, 중간 라우터들이 해당 패킷을 버리게 됨.

사설 IP 대역

  • 10.0.0.0/8 (10.0.0.0 ~ 10.255.255.255)
  • 172.16.0.0/12 (172.16.0.0 ~ 172.31.255.255)
  • 192.168.0.0/16 (192.168.0.0 ~ 192.168.255.255)

공인 IP 대역

이 외의 나머지 IPv4 주소는 대부분 공인 IP 주소

NAT

NAT(Network Address Translation) 란?

사설 IP만 가진 내부 네트워크가 공인 IP로 외부 인터넷과 통신할 수 있도록 IP 주소를 변환해주는 기술 사설 IP → 공인 IP

NAT 의 등장 배경

IPv4 주소 부족 문제로 인해 많은 장비가 하나의 공인 IP 를 공유해서 인터넷에 접속할 수 있는 기술이 필요해짐

NAT의 목적

  1. 공인 IP 절약
    • 하나의 공인 IP로 여러 사설 IP 장치가 인터넷 사용 가능
  2. 사설망과 공인망 연결
    • 사설 IP만 가진 네트워크도 외부와 통신 가능
  3. 내부 네트워크 보안
    • 외부에서는 내부 IP 주소를 알 수 없음
  4. 동일한 사설 IP 중복 사용 가능
    • 각 사설망마다 동일한 IP가 존재할 수 있음 ❌ 공인 IP는 전 세계적으로 중복 없이 유일하게 사용됨

NAT의 동작 원리

  1. 내 PC(사설 IP) → 웹서버에 요청 전송

  2. NAT 라우터가 내 PC의 사설 IP를 공유기의 공인 IP로 변환

  3. 웹서버는 공유기의 공인 IP에서 요청을 받고, 해당 공인 IP로 응답을 반환함

  4. 라우터가 응답을 받아 내 PC의 사설 IP로 다시 변환하여 내 PC로 응답을 전달

    공유기는 사설 IP와 공인 IP를 모두 가짐

통신 예시

  1. 목적지 IP가 로컬 네트워크가 아님을 확인

  2. 내부 네트워크가 아니므로 외부로 요청을 보내기 위해 라우터로 전달

    • 원본 클라이언트는 라우터의 IP만 알고 mac 주소는 알지 못함
  3. ARP 프로토콜 사용

    • 라우터의 mac 주소 알아냄
  4. 라우터로 패킷 전달

    패킷 내부 정보인 소스 IP와 대상 IP는 패킷이 목적지에 도착할 때까지 변하지 않음. 홉을 지나면서 변경되는 데이터는 프레임 내부 정보인 대상 MAC 주소와 소스 MAC 주소

    • 패킷이 외부로 나갈 때 NAT 사용
      | 항목 | 변하기 전 (내부망) | 변한 후 (공인망 나갈 때) |
      | --- | --- | --- |
      | 소스 IP | 192.168.1.100 (사설 IP) | 203.0.113.5 (공인 IP) |
      | 목적지 IP | 8.8.8.8 | 8.8.8.8 (그대로) |
      | 소스 포트 | 43212 (랜덤 포트) | 53847 (NAT 장비가 변형) |
      
      → NAT 장비는 **내부 IP + 포트 <-> 외부 IP + 포트**를 매핑 테이블에 저장하여 응답이 다시 클라이언트로 돌아왔을 때, 매핑 테이블을 참조하여 전달함
      

HTTP 헤더

HTTP 헤더(HTTP Header)란?

클라이언트와 서버가 요청/응답 시 서로에게 주고받는 HTTP 요청과 응답의 시작 부분에 위치하여 데이터 처리에 대한 규칙과 조건을 알려주는 메타데이터로 키-값 쌍 의 데이터

HTTP 헤더의 목적

  • 데이터 형식 명시: Content-Type, Accept 등을 통해 어떤 형식의 데이터를 보냈고/받고 싶은지 전달
  • 보안 및 인증: Authorization, Cookie, Set-Cookie 등을 통해 인증 및 세션 관리
  • 클라이언트 정보 전달: User-Agent, Referer, Host 등을 통해 클라이언트의 환경 정보를 전달
  • 요청 조건 지정: If-Modified-Since, Range 등으로 조건부 요청 가능
  • 캐싱 제어: Cache-Control, Expires로 캐시 사용 여부를 정의

HTTP 헤더 종류

구분예시 헤더설명
요청 헤더Host, User-Agent, Accept, Authorization, Cookie- 클라이언트 정보 및 요청 조건
- 요청 헤더에는 메서드, 클라이언트의 OS, 브라우저 정보 등이 담깁니다.
응답 헤더Content-Type, Set-Cookie, Cache-Control, ETag- 서버 응답에 대한 부가 정보
- 응답 헤더는 서버의 소프트웨어 정보 등이 담깁니다
일반 헤더Connection, Date, Upgrade- 요청/응답 모두에 사용 가능
- 요청한 URL, 요청메서드, 해당 자원을 요청할 때 해당자원의 출처를 나타내는 URL을 노출시킬지 말지를 정하는 보안정도가 설정되어있는 Referrer Policy 등이 들어갑니다.
엔티티 헤더Content-Length, Content-Encoding, Content-Language전송되는 본문(Body)에 대한 설명
profile
지금 이 순간이 다시 넘겨볼 수 있는 한 페이지가 될 수 있게

0개의 댓글