NAT (Network Address Translation)
네트워크 주소 변환
- 한 네트워크에서 자신만의 독립적인 주소 체계를 사용하고자 할 때,
외부와 연결된 노드(라우터, 스위치 등)에서 NAT를 수행하게 된다.
- NAT가 수행되는 경우는 아래와 같다:
- Site가 Private 주소 혹은 불법 주소*를 사용하는 경우
- Site의 내부 네트워크 구성을 감추고자 하는 경우
- Load Balancing을 수행하는 경우
- 인터넷 공유기를 사용하는 경우
* 불법 주소 : 주소 할당 체계를 무시한 주소를 의미한다.
1. Site가 Private 주소, 불법 주소를 사용하는 경우
- Site 내부에서는 Private 주소 체계를 사용하며, NAT를 수행하는 라우터 바깥에서는 200.24.5.8 주소 하나로 대표되는 모습이다.
- 내부 Private 주소와 외부에서 쓰이는 주소가 라우터의 Mapping Table에 의해 서로 Many to MAny Mapping된다.
- 여기서, Private 주소는 172.16.0.0/12 블럭을 사용하고 있다. (특수주소 참고)
2. Site의 내부 네트워크 구성을 감추고자 하는 경우
- 주로 보안상의 이유(해킹 방지)로 해당 네트워크의 구성을 은폐한 경우,
라우터에서는 외부와의 통신을 위해 NAT를 수행해야 한다.
3. Load Balancing을 수행하는 경우
- 클라이언트(\(\texttt{C}\))가 특정 WEB Service에 접속하고자 할 때, 특정 웹서버 머신에 접근하는 것이 아니라 웹서버 머신을 아우르는 \(\texttt{Load Balancer}\)까지만 전송을 완료하면, \(\texttt{Load Balancer}\)가 적절히 Task를 처리하게 된다.
- 즉, 외부(클라이언트)에서는 \(\texttt{Load Balancer}\)의 IP주소(\(\texttt{IP_{L}}\))와 포트번호(\(\texttt{P_{L}}\))만으로 웹 서비스에 접근하게 되는 것이다. (One to Many Mapping)
- \(\texttt{Load Balancer}\)는 들어오는 Task를 Round-Robin Scheduling(라운드-로빈 스케쥴링)* 기법을 통해 차례대로 웹 서버에 할당한다.
- 라운드-로빈 기법 대신, 각각의 웹 서버가 현재 작업 수행 복잡도를 주기적으로 \(\texttt{Load Balancer}\)에게 알려서 작업량이 적은 웹 서버에 우선적으로 Task를 할당하는 방식도 있다.
* Round-Robin Scheduling : 첫 번째로 들어온 Task는 1번 웹서버에, 두 번째로 들어온 Task는 2번 웹서버에 할당하는 것처럼 입력된 순서대로 각각의 웹 서버당 하나씩 분배하는 방식이다.
4. 인터넷 공유기를 사용하는 경우
- 공유기가 외부 Internet에 연결되는 순간, 연결된 ISP의 DHCP 서버로부터 초기 세팅에 필요한 정보*들을 받아오면서 외부 Internet 망 내에서 공유기를 식별하기 위한 주소(\(\texttt{I_{PUblic}}\))가 세팅된다.
- Source(\(\texttt{S}\))가 인터넷 공유기에 연결되는 순간, 소스는 공유기의 DHCP 서버로부터 초기 세팅에 필요한 정보를 받아오면서 자기 자신의 주소(\(\texttt{I_{PRivate}}\))를 세팅한다. (필요한 정보 중, 라우터 주소는 곧 공유기의 주소이다.)
- 공유기는 해당 사설망의 라우터 역할을 한다.
- 여기서, 소스의 주소는 Private Address 형태이다.
- 사설망 내부의 소스와 외부 인터넷의 목적지(\(\texttt{D}\))와의 통신과정에서, 패킷의 주솟값은 인터넷 공유기를 거치기 전과 후를 기준으로 약간의 변화가 일어난다. (사설망의 Private IP주소는 해당 사설망 내에서만 사용가능함을 상기하자.)
- 포트 번호 또한 바뀌는 것을 볼 수 있는데, 포트 번호는 머신마다 독립적으로 정하는 주소이기 때문에(중복 가능성이 있음), 공유기는 변환 테이블을 참조하여 IP주소와 더불어 포트 번호도 변환시킨다.
* 초기 세팅에 필요한 정보 : 자기 자신의 IP주소, 인접한 라우터의 IP주소, 네임서버 주소, 네트워크 마스크 (세부내용 참고)
Reference: TCP/IP Protocol Suite 4th Edition
(Behrouz A. Forouzan 저, McGraw-Hill, 2010)
Reference: Data Communications and Networking 5th Edition
(Behrouz A. Forouzan 저, McGraw-Hill, 2012)