tae_98 2025. 1. 5. 21:21

출처 : https://www.netmanias.com/ko/post/blog/5833/nat-network-protocol/nat-behavior-requirements-for-unicast-udp-rfc-4787-part-1-mapping-behavior

, gpt

 

 

NAT?

  • 라우터에서 ip를 변환하는 기술
  • ip 헤더를 수정하여 동작
  • static nat = 내부 네트워크 사설 ip를 고정
  • dynamic nat = 동적으로 매핑

STUN

  • 프로토콜임
  • nat 를 통해 p2p 통신을 하기 위함
  • stun 서버 <--> stun 클라이언트 사이 통신에서
    • 내가 사설망에 있는지 (nat 사용 하는지)
    • nat 동작이 어떻게 되는지
    • nat에 의해 변경되는 ip, 포트는 어떻게 되는지
  • 를 기술함

 


NAT 동작

(1) (2)

1.1.1.1:10 ====> NAT(5.5.5.5):50 ====> 2.2.2.2:20

라 가정하면

  • (1) 에서
    • src ip = 1.1.1.1 (=internal ip)
    • src port = 10 (internal port)
    • dst ip = 2.2.2.2
    • dst port = 20
  • (2) 에서
    • src ip = 5.5.5.5 (=external ip)
    • src port = 50 (external port)
    • dst ip = 2.2.2.2
    • dst port = 20

Address, port mapping

Endpoint independent mapping

  • 송신하는 패킷의 src ip, port 가 동일하다면
    • external ip, 포트가 동일
  • Endpoint 에 영향 안받음

Address Dependent Mapping

  • 송신하는 패킷의 src ip, port 가 동일, dst ip 가 동일하다면
    • external ip, 포트가 동일
  • endpoint 의 ip 주소가 다르면 다른 포트 사용

Address and Port dependent mapping

  • src ip 와 포트, dst ip 와 포트 모두 동일해야
    • external ip, 포트가 동일

IP Address Pooling

Arbitrary

  • 하나의 internal endpoint가 보내는 패킷이지만 session 이 다르면 다른 external ip로

Paired

  • 하나의 internal endpoint 가 session이 달라도 같은 external ip 로
  • rfc 4787에서 paired사용을 권고

Port Assignment

 

Port Preservation

  • internal endpoint가 보낸 source port값이 external 에서도 같음

Port Preservation

  • nat 장비가 임의의 포트로 변경

Port Overloading

  • 포트 충돌(할당 범위 초과 등) 이 나오면 entry를 새것으로 덮어씌워버림
    • ex) ~5까지 인데 192.168.1.6 이 들어오면 external 에서 그냥 ~.5로 새 entry
      • 이전 통신(.5배정) 통신 불가능

No Port Overloading

  • 충돌시 internal 포트 와 다른 포트를 할당
    • ex) ~5까지 인데 192.168.1.6 이 들어오면 external port를 다른포트로 변환

Mapping Timer

  • mapping timer 시간 후 엔트리 삭제
    • 짧을 경우 nat session을 유지하기 위해 keep alive 을 자주보내야함
    • 2분내로 expire 시키진 않도록..