읽기 전

  • 불필요한 코드나 잘못 작성된 내용에 대한 지적은 언제나 환영합니다.
  • 개인적으로 사용해보면서 배운 점을 정리한 글입니다.

NAT Traversal에 대한 개념을 찾던 중 STUN은 Symmetric NAT에서는 동작하지 않는다고 하는 등 사전 지식으로 NAT Type을 요구하기에 먼저 정리했습니다. 이번 포스팅에서는 Cone NAT와 Symmetric NAT 중심으로 작성했으며 Full Cone, Restriced Cone, Port Restricted Cone, Symmetric에 대해 설명합니다. 비록 본문의 출처인 RFC3489는 RFC5389로 대체되었으나 NAT Type에 대한 내용은 P2P 통신에서 필요한 개념으로 해당 문서를 참고하였습니다.

Cone NAT

Cone NAT는 NAT 장비가 NAT 네트워크의 Host에 대해 공인 IP:Port로 매핑한 주소가 변하지 않는다는 특징을 갖는다.

Full Cone NAT - 제한사항 없음

가장 개방적인 형태의 NAT 방식으로 외부 네트워크 누구든지 NAT 장비에 매핑된 Public IP:Port로 접근 시 내부 네트워크 Host에 통신을 시도할 수 있다.

Network_NAT_Type_001

앞서 Cone NAT 방식에 따라 NAT 장비가 Host의 외부 Public IP를 매핑해두면 외부 네트워크의 상대방은 해당 주소로 언제든지 통신을 시도한다. 따라서 Host가 Server A에 패킷을 전송하거나 Server A가 Host로 패킷을 전송할 수 있다. 게다가 연결했던 기록이 없는 Server B가 Host로 패킷을 바로 전송할 수도 있다.

Restricted Cone NAT - ip 검증

Network_NAT_Type_002

이전에 Host가 외부로 데이터를 전송한 적이 있는 ip만 허용한다. 따라서, Server B처럼 통신한 적이 없는 주소로부터 패킷을 받으면 드랍한다. 다만 Server A의 경우 통신한 적이 있기에 다른 포트인 Service a, b는 일방적으로 Host에게 패킷을 전송할 수 있게 된다.

Port Restricted Cone NAT - ip/port 검증

Network_NAT_Type_003

Restricted Cone NAT와 비교해서 Port까지 제한사항이 생겼다. 말 그대로 이전에 통신하던 IP 주소와 Port가 일치해야만 패킷을 수신하겠음을 의미한다. 즉, 기존에 통신하던 Service가 아니면 모든 Service는 일방적으로 Host에게 패킷을 보낼 수 없는 환경임을 의미한다.

Symmetric NAT - ip/port 검증

Symmetric NAT는 연결된 Destination에 따라 다른 외부 IP:Port로 매핑된다는 특징을 갖는다. 외부 네트워크 통신에서의 제약사항은 Port Restricted Cone NAT와 동일하게 적용된다. 다만, Host의 Private NAT에 대해 NAT 장비가 매핑하는 정보가 통신 대상에 따라 달라진다.

Network_NAT_Type_004

그림에 따르면 각 통신 대상에 따라 NAT 장비는 매핑 테이블에 각기 다른 정보를 기록해서 작업을 수행한다. 따라서 고정 매핑 방식이 아니라 가변적인 매핑 방식으로 이해할 수 있다.

출처 : RFC3489 - STUN

+ Recent posts