컴퓨터 네트워크 09 : NAT

728x90

컴퓨터 네트워크 09 : NAT

 

NAT이란?

Network Address Translation

 

하나의 공인 IP 주소를 사용하여 여러 대의 호스트(컴퓨터)가 인터넷에 접속할 수 있도록 하는 기술.

부족한 공인 IP를 절약할 수 있는 효과가 있다.

 

1:1 NAT

사설 IP 1개당 공인 IP 1개로 매칭시키는 것.

3대의 PC중 사설 IP를 가진 PC 하나가 DNS서버로 DNS 쿼리(특정 도메인의 IP주소를 물어보는 행위)를 시도한다.

 

Firewall이 외부로 나가는 패킷을 인식하게 되면, 출발지의 IP 주소를 자신의 공인 IP 주소로 변경하고, 별도의 NAT 테이블을 보관하게 된다.

따라서 192.168.0.1은 Firewall를 통과하는 과정에서 1.254.223.4로 IP가 변환된다.

 

DNS는 1.254.223.4로 부터 DNS 쿼리가 온 것으로 인지하고 응답도 그쪽으로 보내준다.

 

돌아오는 과정에서 Firewall이 아까 NAT 테이블에 저장한 정보를 토대로 본래의 IP 값을 찾아 패킷을 전달한다.

 

 

1:1 매칭의 경우 다음처럼 외부의 특정 공인 IP가 사설 IP에 연결하는 경우도 가능하다.

외부 PC에서 공인 IP 1.254.223.6으로 원격 접속을 시도한다.

 

Firewall이 NAT Table을 참조하여 공인 IP에 매칭되는 사설 IP 주소를 찾는다.

 

 

1:N PAT

여러 개의 사설 IP가 1개의 공인 IP를 사용하는 것.

사설 IP에서 Google DNS로 쿼리를 날리는 상황이다.

 

Firewall은 해당 사설 IP에 대해  NAT table을 참조하여 NAT를 시킨다.

이때, 60001은 port번호이다.

 

갑자기 다른 사설 IP에서도 쿼리를 날리는 상황이 닥친다.

 

마찬가지로 NAT table을 참조하여 공인 IP로 변경시켜주는 과정을 거친다.

다만 아까와는 다른 port번호로 지정이 된다.

 

Google DNS 서버에서 해당 패킷들의 요청을 처리한다.

 

어떤 사설 IP가 공인IP포트를 어떻게 할당 받았는지에 대한 정보를 참조한다.

 

이러한 방식은 사설 IP가 한 개의 공인 IP로 Portpool을 이용한 통신을 한 것으로, N:1 PAT 기능이라고 한다.

이 방식을 통해 공인 IP의 수를 절약할 수 있다.

그러나 먼저 외부에서 공인IP로 통신을 시도했을 때는 어느 사설 IP에게 전달해줘야 할지 알 수 없게 되기 때문에 이 경우에는 내부에서 외부로의 통신만 가능하다.

 

요약

1:1 NAT: 외부에서 공인 IP 찾아서 들아가기 가능 -> 사용자가 먼저 접근하는 경우(포털 사이트 서버)에 자주 사용

N:1 PAT 외부에서 공인 IP 찾아서 들어가기 불가능 -> 다수의 사용자들이 외부로 통신하는 경우(학교, 학원, 회사 등 공인 IP 한정적인 경우)

728x90