Netwrok Address Translation

이태곤·2023년 11월 8일
0

컴퓨터망

목록 보기
21/32
post-thumbnail

1. NAT (Network Address Translation)

  • 로컬 네트워크에 연결된 모든 디바이스가 외부 인터넷과 통신할 때, 하나의 공용 IPv4 주소를 공유하도록 하는 기술

    • Private IP Address → Public IP Address로 변환하는 기술
    • 로컬 네트워크 내에서 호스트 간 통신은 로컬 주소를 사용하고, 외부로 나가는 트래픽은 NAT를 통해 하나의 공용 IP 주소로 변환되며 다른 포트 번호를 가진다.
  • 장점

    1. 하나의 공용 IP 주소로 다수의 디바이스 공유: IP 주소 부족 문제를 완화
    2. 내부 주소 변경을 외부로 노출하지 않음: 로컬 네트워크에서 디바이스의 IP 주소를 변경하거나 재구성해도, 외부 네트워크에서는 이러한 변경 사항을 알 필요 없다.
    3. 보안 강화: NAT를 통해 로컬 네트워크 상의 디바이스들은 외부 네트워크에서 직접적으로 접근하거나 보지 못하도록 보호된다.
  • 동작 구조

    1. 외부로 나가는 데이터그램을 전송할 때, 데이터그램의 IP주소와 포트 번호를 NAT IP 주소와 포트 번호로 변환
    2. NAT는 로컬 네트워크 내에서 어떤 IP 주소를 사용하는 호스트가 어떤 포트 번호를 할당받았는지를 기억하고 관리하기 위해 NAT translation table을 사용
    3. 외부 네트워크에서 로컬 네트워크로 들어오는 데이터그램을 받으면, NAT는 기록한 IP 주소 및 포트 번호 테이블을 확인하여 올바른 로컬 호스트로 전달하기 위해 목적지 IP 주소와 포트 번호를 변환 후 올바른 목적지에 전달
  • 동작 과정

    1. 로컬 네트워크의 호스트 (예: 10.0.0.1, 포트 3345)가 128.119.40.186으로 데이터그램을 전송
    2. NAT 라우터는 이 데이터그램의 출발지 IP 주소를 NAT IP 주소 (예: 138.76.29.7)로 변경하고, 출발지 포트 번호도 새로운 포트 번호 (예: 5001)로 변경
      → NAT translation table에 이 변환 정보를 기록
    3. 외부에서 138.76.29.7 IP 주소 및 5001 포트 번호로 들어오는 데이터그램이 수신되면, NAT는 이 정보를 NAT translation table에서 검색하여 올바른 로컬 네트워크의 IP 주소와 포트 번호 (예: 10.0.0.1, 포트 3345)로 변환
    4. 변환된 데이터그램은 목적지 정보가 10.0.0.1 IP 주소와 3345 포트로 변경되어, 올바른 호스트에게 전달
  • 문제점: 로컬 네트워크 내에서 사설 IP 주소 대역 (예: 10.0.0.X)를 사용하는 경우, 해당 주소 대역은 여러 네트워크에서 중복으로 사용될 수 있으므로 외부에서 해당 IP 주소로 접근하기 어려워진다.
    → 로컬 네트워크 내의 호스트가 서버 역할을 수행하는 경우, 외부에서 해당 서버에 직접 접근하기 어려울 수 있다.


2. IPv6

  • IPv4의 주소 부족 문제를 해결하기 위해 등장한 새롭게 고안된 주소 체계

  • Format

    1. 고정 헤더 크기: IPv6 헤더의 크기는 고정되어 있으며 40바이트로 정해져 있다.
      • 헤더 정보를 빠르게 처리하고 읽을 수 있다.
      • source address, destination address가 128비트로 늘어났기 때문에 주소를 담는 필드 크기 자체는 증가했다.
      • IPv4 헤더 크기: 20바이트 ~ 60바이트
    2. 향상된 우선순위 제어: Type of Service (TOS)와 유사한 역할을 하지만 더 상세한 우선순위 제어를 제공한다.
    3. Flow Label: 특정 패킷 흐름을 식별하고 QoS (Quality of Service)를 제공하기 위한 목적으로 사용된다.
    4. Next Header: IPv6 패킷 내에서 추가적인 확장 헤더를 지원하기 위한 공간으로 사용된다.
      → Extension header나 상위 계층 패킷의 프로토콜을 식별하는 데 사용될 수 있다.
    5. Hop Limit: IPv4의 TTL (Time to Live)와 유사한 역할을 한다.
      → 패킷이 무한순환 하지 않도록 각 라우터를 거칠 때마다 1씩 감소하며, "Hop Limit" 값이 0이 되면 데이터그램은 폐기된다.
  • 변경 사항
    • Checksum: IPv6에서는 헤더 체크섬 (Header Checksum) 필드가 없어졌다.
      • 대부분의 물리적인 링크 및 전송 계층에서 오류 검출 및 복구가 이루어지고 상위 프로토콜인 TCP/UDP 에 체크섬 필드가 있기 때문에, 네트워크 계층에서 중복된 체크섬 검사가 더이상 필요하지 않다고 판단
      • 전송 기술이 발달하면서 오류 발생↓
    • Fragmentation 필드: IPv6에서는 fragmentation 관련 필드가 없어졌다.
      • 출발지에서만 패킷이 목적지까지 도달하기 전에 경유하는 중간 라우터의 MTU (Maximum Transmission Unit) 중 가장 작은 MTU를 고려하여 패킷을 조절하고, 필요한 경우에만 fragmentation을 수행
        → fragmentation이 발생하지 않는 것은 아니며, 출발지에서만 fragmentation이 발생 할 수 있다.
  • Tunneling: IPv4 datagram의 payload 부분에 IPv6 datagram을 실어서 보내는 것을 의미
    → 모든 라우터가 IPv6을 지원하지 않기 때문에 IPv4 형식으로 전달해야 하 경우 터널링 사용

0개의 댓글