2014년 1월 7일 화요일

IP 네트워크 주소 변환(NAT) 프로토콜

IP NAT 개요

    • IPv4의 주소 공간 고갈, IP 주소 비용 증가, 보안 우려의 증가
    • IP 네트워크 주소 변환(IP NAT 또는 NAT, IP Network Address Translation)은 기관이 사설 주소를 사용한 네트워크를 구성하면서도 공중 인터넷과 통신할 수 있도록 하는 기술이다. NAT를 지원하는 라우터는 사설 주소를 공인 주소로, 또는 역으로 필요에 따라 변환한다. 이것은 여러 장비가 소수의 공인 IP 주소를 공유할 수 있는 등 여러 장점이 있지만 몇 가지 단점도 있다.
  • IP NAT의 장점
    • 공인 IP 주소 공유
    • 쉬운 확장
    • 로컬 통제력 강화
    • 인터넷 서비스 제공자(ISP) 선택의 유연성
    • 보안 강화
    • 투명함(대부분)
  • IP NAT의 단점
    • 복잡성
    • 공인 주소 부족으로 인한 문제
    • 특정 애플리케이션과의 호환성 문제
    • 보안 프로토콜 문제
    • 클라이언트 접근 지원 미비
    • 성능 감소

IP NAT 주소 용어
  • 내부 주소
    • 기관의 사설 네트워크에서 NAT를 사용하는 장비는 내부 네트워크에 위치해 있다고 표현한다.
    • 로컬 네트워크의 장비를 가리키는 모든 주소를 내부 주소(inside address)라고 부른다.
  • 외부 주소
    • 공중 인터넷(즉 로컬 네트워크 외부에 있는 모든 것)은 외부 네트워크에 있다고 간주된다.
    • 공중 인터넷에 있는 장비를 가리키는 주소를 외부 주소(outside address)라고 부른다.
  • 로컬 주소
    • 내부 또는 외부 주소를 가리키는가에 관계 없이 내부 네트워크의 데이터그램에 나타나는 주소를 의미
  • 전역 주소
    • 내부 또는 외부 주소를 가리키는가에 관계 없이 외부 네트워크의 데이터그램에 나타나는 주소를 의미

  • 내부 로컬 주소
    • 로컬 네트워크 장비 주소로 일반적인 로컬 장비 주소 지정 방법으로 표현됨
    • 예로 10.0.0.0 사설 블록을 사용하는 네트워크의 클라이언트에 10.0.0.207이라는 주소를 할당했다면 이것은 내부 로컬 주소임
  • 내부 전역 주소
    • 이것은 전역의, 공중 네트워크에서 라우팅 가능한 IP 주소로 내부 장비를 외부 세계에 표현하는 데 쓰임
    • NAT 구성에서, 내부 전역 주소는 NAT 라우터에서 사용할 수 있도록 기관에 할당된 공인 IP 주소를 의미
  • 외부 전역 주소
    • 공중 인터넷에서 참조하는 외부(공중 인터넷) 장비의 주소
    • 일반적인 공인 IP 주소를 의미
  • 외부 로컬 주소
    • 로컬 네트워크에서 참조하는 외부 장비의 주소

  • 내부 장비 표현
    • 내부 로컬 주소는 보통의 원래 주소
    • 내부 전역 주소는 내부 장비를 외부 네트워크에 표현하기 위한 변환된 주소
  • 외부 장비 표현
    • 외부 전역 주소는 보통의 원래 주소
    • 외부 로컬 주소는 외부 장비를 내부 네트워크에 표현하기 위한 변환된 주소

IP NAT 정적 주소 매핑과 동적 주소 매핑

    • 라우터의 NAT 소프트웨어는 변환 방법을 지시하는 변환 테이블을 관리
  • 정적 매핑
    • 내부 도는 외부 장비의 전역 표현과 로컬 표현 사이에 정의된 영구적이고, 고정된 관계를 의미
    • 예) 내부 로컬 주소가 10.0.0.207인 장비가 항상 내부 전역 주소로 194.54.21.10을 사용하게 할 때 정적 매핑을 사용
  • 동적 매핑
    • 전역과 로컬 주소 표현은 NAT 라우터에서 필요할 때마다 즉시 생성되며 사용이 끝나면 버려짐

IP NAT 단방향 (전통적/아웃바운드) 동작

  • 순서와 데이터그램 출발지 주소 목적지 주소

  1. 내부 클라이언트가 요청을 생성하여 NAT 라우터에게 송신
    • 내부 로컬 : 10.0.0.207 (클라이언트 내부 IP)
    • 외부 로컬 : 204.51.16.12 (대상 서버IP)
  2. NAT 라우터는 출발지 주소를 변환한 뒤 외부 서버에게 송신
    • 내부 전역 : 194.54.21.11 (라우터 외부 IP)
    • 외부 전역 : 204.51.1612 (대상 서버IP)
  3. 외부 서버가 응답을 생성하고 NAT 라우터에게 회신
    • 외부 전역 : 204.51.16.12 (대상 서버 IP)
    • 내부 전역 : 194.54.21.11 (라우터 외부 IP)
  4. NAT 라우터는 목적지 주소를 변환하고 데이터그램을 내부 틀라이언트에게 전달
    • 외부 로컬 : 204.51.16.12 (대상 서버 IP)
    • 내부 로컬 : 10.0.0.207 (클라이언트 내부 IP)

  • 전통적 NAT는 오직 이러한 유형의 아웃바운드 트랜잭션(내부 네트워크의 장비에서 시작됨)만을 지원한다.
  • 그래서 공중 인터넷에서 내부 사설 IP를 갖는 서버로 요청을 보내는 경우를 처리하지 못한다.

IP NAT 양방향 (Two-Way/인바운드) 동작
  • DNS를 사용한다.
  1. 외부 장비는 접근하고자 하는 내부 네트워크 장비의 이름을 이용해 DNS 요청을 전송한다. 예를 들어 그 이름을 www.ilinenat.com이라 하자
  2. 내부 네트워크를 위한 DNS 서버는 www.ilikenat.com 이름을 해당 장비의 내부 로컬 주소로 변환한다.
  3. 이 내부 로컬 주소는 NAT로 전달되며 NAT는 이것을 이용해 외부에서 접근하고자 하는 서버의 내부 로컬 주소와 내부 전역 주소를 매핑한다. 이 매핑 정보는 NAT 라우터의 변환 테이블에 저장된다.
  4. DNS 서버는 외부 장비에게 응답할 때 내부 장비의 내부 로컬 (사설) 주소가 아니라 이전 단계에서 매핑한 내부 전역 (공인) 주소를 알려준다.


  • 양방향 (two-way/인바운드) NAT의 동작 순서와 데이터그램 출발지/목적지 주소
  1. 외부 클라이언트가 요청을 생성하여 NAT 라우터에게 송신
    • 외부 전역 : 204.51.16.12
    • 내부 전역 : 194.54.21.6
  2. NAT 라우터가 목적지 주소를 변환하고 내부 서버에 송신
    • 외부 로컬 : 204.51.16.12
    • 내부 로컬 : 10.0.0.207
  3. 내부 서버가 응답을 생성하고 NAT 라우터에게 송신
    • 내부 로컬 : 10.0.0.207
    • 외부 로컬 : 204.51.16.12
  4. NAT 라우터가 출발지 주소를 변환하고 데이터그램을 외부 클라이언트로 라우팅함
    • 내부 전역 : 194.54.21.6
    • 외부 전역 : 204.51.16.12


IP NAT 포트 기반 (과부하) 동작

  • 일반 NAT의 개선된 버전으로 사설 네트워크의 다수의 호스트가 동시에 하나의 내부 전역 주소를 공유할 수 있도록 한다.
  • 이것은 TCP와 UDP 메시지에서 사용하는 포트 번호를 변경하는 방식으로 동작한다.
  • NAT 라우터는 외부로 나가는 요청의 출발지 주소와 포트를 내부 로컬에서 내부 전역 형태로 변환한다.
  • 그리고 응답의 목적지 조수와 포트를 내부 전역에서 내부 로컬 형태로 변환한다.
  • 외부 로컬과 외부 전역 주소는 요청과 응답에서 동일하다.


IP NAT 중복/2회 NAT 동작

  • 내부 네트워크에서 사용하는 주소와 외부 네트워크에서 사용하는 주소가 겹칠 경우
    • 사설 네트워크와 사설 네트워크 간의 연결
    • 사설 네트워크에 공인 주소를 부적절하게 할당
    • 공인 주소 할당의 유효 기간 만료
  • 2회 NAT에서는 외부 로컬 주소와 외부 전역 주소가 다를 수 있다.

IP NAT 호환성 문제와 특수 처리 요구사항


  • TCP와 UDP 체크섬 재계산
    • 헤더의 IP 주소를 변경한다는 것은 IP 헤더의 체크섬을 다시 계산해야 한다는 것을 의미
  • ICMP 조작
    • NAT는 IP 헤더와 매우 직접적으로 연관되어 있고, IP는 "보조" 프로토콜인 ICMP와 밀접히 연관되어 있기 때문에 NAT는 특정 ICMP 메시지를 검사하여 그 안에 포함된 주소를 변경할 필요가 있다.
  • IP 주소를 내장하는 애플리케이션
    • FTP와 같은 애플리케이션
  • 포트 변환에서의 추가적 문제
    • PAT가 쓰일 때, 주소에 해당됐던 이전 문제들이 포트에도 해달되기 때문에
  • 주소나 포트 번호 변경에 의한 파급 효과
  • IPsec에서의 문제

댓글 없음:

댓글 쓰기