tunneling NAT 관계

agnusdei·2024년 12월 9일
0

Network

목록 보기
109/419

터널링(Tunneling)과 NAT(Network Address Translation)의 관계 및 작동 원리


1. 개념

터널링(Tunneling):

  • 네트워크 계층에서 한 프로토콜의 패킷다른 프로토콜의 페이로드(Payload)로 캡슐화하여 전송하는 기술.
  • 주로 IPv6 패킷을 IPv4 네트워크를 통해 전송하거나, 보안 통신(VPN)에 사용.

NAT(Network Address Translation):

  • IPv4 주소 부족 문제를 해결하기 위해, 사설 IP 주소(Private IP)공인 IP 주소(Public IP)로 변환하거나 반대로 변환하는 기술.
  • 주로 라우터게이트웨이에서 수행하며, NAT 환경에서는 호스트의 내부 주소가 숨겨짐.

2. 터널링과 NAT의 관계

왜 NAT와 터널링이 얽히는가?

  1. 터널링이 NAT 환경을 통과할 때 문제 발생:

    • 터널링은 캡슐화된 패킷(예: IPv6 over IPv4)이 NAT 디바이스를 통과해야 하는데, NAT는 헤더 정보를 변경하며 동작.
    • 캡슐화된 패킷의 외부 헤더(IPv4)는 NAT에서 수정되지만, 내부 캡슐화 데이터(IPv6)는 NAT가 처리하지 못함.
    • 결과적으로 패킷 유실(Packet Loss)이나 경로 오류 발생 가능.
  2. NAT 환경에서 터널링 기술의 한계:

    • 터널이 NAT 장치를 통과하려면, NAT가 캡슐화된 패킷을 정확히 처리해야 하지만, NAT는 보통 내부 데이터를 알지 못함.
    • 특히, NAT는 포트 번호와 IP 주소를 기반으로 매핑을 수행하기 때문에 터널링 프로토콜의 특수 포트(GRE, IPsec ESP 등)를 제대로 처리하지 못하는 경우 발생.

3. 작동 원리

(1) 터널링의 동작:

  • 입력 단계:
    • 원래의 IPv6 패킷을 캡슐화(Encapsulation)하여 IPv4 헤더를 붙임.
    • 캡슐화된 데이터는 IPv4 네트워크에서 전송됨.
  • 출력 단계:
    • 목적지에 도달한 패킷은 캡슐화를 해제(디캡슐화, Decapsulation)하여 원래 IPv6 패킷으로 복원.

(2) NAT의 동작:

  1. NAT는 사설 네트워크에서 나온 패킷의 출발지 IP 주소포트 번호를 공인 IP 주소와 매핑.
  2. 매핑 정보를 NAT 테이블에 저장하고, 응답 패킷이 들어오면 다시 사설 IP로 변환.

4. NAT와 터널링 간 문제 및 해결책

문제: 터널링과 NAT의 충돌

  1. 포트 번호 문제:

    • 일부 터널링 프로토콜(GRE, IPsec ESP 등)은 포트 번호가 없는 프로토콜을 사용.
    • NAT는 포트 번호 기반 매핑을 수행하므로, 터널링 패킷을 제대로 처리하지 못함.
  2. 내부 데이터 처리 문제:

    • NAT는 IPv4 헤더만 수정하며, 캡슐화된 내부 IPv6 데이터는 알 수 없음.
    • 이로 인해 터널링 패킷이 손실되거나 디캡슐화 오류 발생.
  3. 보안 정책 충돌:

    • NAT 디바이스가 터널링 패킷의 헤더를 수정하면 터널링 프로토콜(IPsec 등)이 제공하는 무결성 검증 실패.

해결책: NAT Traversal 기술

  1. NAT-T (NAT Traversal):

    • 터널링 패킷을 NAT 환경에서 전송 가능하도록 캡슐화 단계에서 UDP(User Datagram Protocol) 헤더를 추가.
    • UDP는 NAT에서 일반적으로 처리 가능한 프로토콜이므로 NAT를 통과 가능.
    • 주로 IPsec VPN에서 사용됨.
  2. Teredo:

    • NAT 뒤에 있는 IPv4 네트워크에서 IPv6 패킷을 전송하는 터널링 프로토콜.
    • Teredo는 NAT 환경에서도 UDP 포트(3544)를 사용해 IPv6 연결을 지원.
    • NAT 매핑 정보를 실시간으로 확인하고 터널을 유지.
  3. STUN(Session Traversal Utilities for NAT):

    • NAT 디바이스와의 연결을 테스트하고, NAT의 동작 유형(Full Cone, Symmetric 등)을 탐지하여 터널링 경로를 최적화.
  4. 기타 프로토콜:

    • 6to4ISATAP은 NAT 환경에서 동작하지 않음 → NAT-T 기반 프로토콜로 대체 필요.

5. 실무 예시

  1. IPsec VPN:

    • NAT 환경에서 IPsec 터널을 설정하려면 NAT-T 기술이 필수.
    • UDP 기반 캡슐화를 통해 NAT 환경에서도 암호화된 데이터 전송 가능.
  2. 기업 네트워크:

    • 사설 IP 주소를 사용하는 네트워크에서 IPv6 서비스를 제공할 때, NAT-T와 터널링을 병행하여 NAT 환경을 우회.
  3. 홈 네트워크:

    • Teredo를 사용하여 IPv4 기반 홈 라우터에서 IPv6 통신 구현.

6. 결론

  • 터널링과 NAT는 서로 다른 목적을 가지지만, IPv4와 IPv6 네트워크 간 상호운용성을 위해 함께 사용됨.
  • NAT 환경에서 터널링이 제대로 동작하려면 NAT Traversal 기술(예: NAT-T, Teredo)을 도입해야 함.
  • 미래에는 네이티브 IPv6로 전환하여 NAT-T와 터널링 의존성을 줄이는 것이 장기적인 목표.

0개의 댓글