[네트워크] Network Address Translation (NAT)

나뭇잎으로코딩·2024년 8월 19일

네트워크

목록 보기
7/7

NAT: Network Address Translation

  • 라우터는 network address translation을 통해 로컬 네트워크를 생성할 수 있다

  • 소스 또는 목적지가 로컬 네트워크에 있는 데이터그램은 소스 및 목적지 주소로 10.0.0/24 주소를 사용한다 (기본 방식과 동일)
  • 로컬 네트워크를 떠나는 모든 데이터그램은 동일한 NAT IP 주소(138.76.29.7)를 소스 주소로 가지며, 서로 다른 소스 포트 번호를 사용한다

Motivation

Motivation: 외부 세계의 입장에서, 로컬 네트워크는 단 하나의 IP 주소만 사용한다.

  • 따라서 ISP(Internet Service Provider)로부터 주소 범위를 할당받을 필요가 없다: 모든 장치에 대해 하나의 IP 주소만 필요하다
  • 로컬 네트워크에 있는 장치의 주소를 변경할 때 외부 세계에 알릴 필요가 없다.
  • ISP를 변경해도 로컬 네트워크의 장치 주소를 변경할 필요가 없다.
  • 로컬 네트워크 내부의 장치들은 외부 세계에서 명시적으로 주소화될 수 없으며, 가시성이 없다 (보안상의 이점).

기능

NAT 라우터는 다음 기능을 구현해야 한다.

  1. Outgoing datagram
    모든 나가는 데이터그램의 (소스 IP 주소, 포트 번호)를 (NAT IP 주소, 새로운 포트 번호)로 대체
    • 원격 클라이언트/서버는 (NAT IP 주소, 새로운 포트 번호)를 목적지 주소로 사용하여 응답을 보냄
  1. NAT 변환 테이블에 모든 (소스 IP 주소, 포트 번호)와 (NAT IP 주소, 새로운 포트 번호) 변환 쌍을 저장
    • 즉, 원본 소스 정보와 변환된 NAT 정보를 매핑하여 저장
  1. Incoming datagram
    모든 들어오는 데이터그램의 (NAT IP 주소, 새로운 포트 번호)를
    목적지 필드에서
    NAT 테이블에 저장된 (소스 IP 주소, 포트 번호)로 대체

  • NAT translation table에, WAN / LAN side 주소가 매핑되어 있다
  1. 로컬네트워크의 호스트가 외부로 데이터그램을 전송
  2. NAT 라우터가 데이터그램의 source address와 Port number를 바꾼다 (LAN→WAN)
    • 원래 소스 주소, 포트: 10.0.0.1:3345 (LAN)
    • 변환된 소스 주소, 포트: 138.76.29.7:5001 (WAN)
  3. 외부로부터 응답이 도착한다
  4. NAT 라우터가 응답 데이터그램의 목적지 주소를 로컬네트워크의 원래 주소로 변환한다
    • 원래 목적지 주소: 138.76.29.7:5001 (WAN)
    • 변환된 목적지 주소: 10.0.0.1:3345 (LAN)

사설 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)
  • 로컬 네트워크에서 사용됨
  • 공용 주소로 사용되지 않음

사설 IP는 유니크하지 않다.

Port Forwarding

  • NAT의 문제점은 서버가 로컬네트워크 내부에 있을 때 발생한다
  • 클라이언트가 서버를 주소화할 수 없다
  • NAT 라우터는 특정 목적지포트로 들어오는 패킷을 특정 로컬 IP 주소로 포워딩하도록 수동으로 구성되어야 한다.

0개의 댓글