NAT는 네트워크 주소 변환이라고 하며 아래와 같이 정의되어 있습니다.
IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술
- https://ko.wikipedia.org/wiki/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC_%EC%A3%BC%EC%86%8C_%EB%B3%80%ED%99%98
간단하게 말하면 통신사의 회선 하나(하나의 공인 IP)에 공유기를 물려놓고 여러 개의 기기(여러 개의 개인 IP)를 물려놓은 것입니다.
NAT를 사용하는 제일 큰 목적은 위와 같이 하나의 IP로 여러 대의 기기를 사용하기 위함이며, 좀 더 큰 목적은 IP 주소가 한정되어 있기 때문에 기하급수적으로 늘어나는 모든 기기들에 공인 IP를 모두 할당하기 힘들기 때문입니다.
(IPv6 기준으로 3.4 x 10^38개가 사용 가능하긴 합니다.)
기업들에서는 NAT를 보안 목적으로 사용하기도 합니다. 라우터나 공유기를 통해 외부와 통신할 때에는 개인 IP (Private IP)가 공인 IP (Public IP)로 변경되기 때문에 외부에서는 내부의 기기를 특정하기가 어려워집니다.
NAT의 방식
크게 Cone NAT / Symmetric NAT 로 나눌 수 있고 총 네가지로 구분할 수 있습니다.
Cone NAT는 내부 Client A에서 외부 server A로 패킷을 발신할 때, 공유기에서 IP A, Port A를 할당했다면 외부 server B로 패킷을 발신할 때도 IP A, Port A를 사용하게 됩니다.
Symmetric NAT는 내부 Client A에서 외부 server A로 패킷을 발신할 때, 공유기에서 IP A, Port A를 할당했지만 외부 server B로 패킷을 발신할 때에는 IP B, Port B를 할당할 수 있습니다.
1) Full-cone NAT
- Client가 IP A, Port A를 사용한다면, 외부의 어떠한 서버에서 패킷이 들어오더라도 IP A, Port A을 목적지로 삼으면 Client로 전달됩니다.
2) (Address)-restricted cone NAT
- Client가 IP A, Port A를 사용하여 다른 server A로 패킷을 보냈을 때, server A에서는 Port 번호와 상관 없이 IP A로 보내면 Client로 전달됩니다. 대신, Client A는 server B로 패킷을 보낸 적이 없으므로, server B에서는 Client A로 패킷을 전달할 수 없습니다.
3) Port restricted cone NAT
- Client가 IP A, Port A를 사용하여 다른 server A로 패킷을 보냈을 때, server A에서는 IP A, Port A 로 모두 맞춰줘야만 다시 Client로 패킷을 보낼 수 있습니다. Address restricted cone NAT와 동일하게 Client가 패킷을 보냈던 server에서만 Client로 패킷을 전달할 수 있습니다.
4) Symmetric NAT
- Client가 server A로 패킷을 보낼 때, server B로 패킷을 보낼 때 각각 내부 IP와 Port가 변경됩니다. Client A 가 server A로 IP A, Port A를 사용하여 발신했다면 해당 server만 다시 IP A, Port A를 통해 패킷을 Client로 전달할 수 있습니다.
Reference
- ko.wikipedia.org/wiki/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC_%EC%A3%BC%EC%86%8C_%EB%B3%80%ED%99%98
'Acronym&Abbreviation' 카테고리의 다른 글
TURN (Traversal Using Relays around NAT) (0) | 2021.03.17 |
---|---|
STUN (Session Traversal Utilities for NAT) (0) | 2021.03.17 |