NAT 기초

NAT 기초


이게 뭐지?

Network Address Translation 의 약자, 말 그대로 네트워크 주소 변환이다.

NAT는 외부 네트워크에 알려진 것과 다른 IP 주소를 사용하는 내부 네트워크에서 IP주소를 변환하는 것


그럼 왜 NAT(주소변환)를 해야 할까..?

공인 IP ( Public IP )가 부족하기 때문이다. 만약 전세계 사람들이 집집마다 공인 IP를 사용한다면 IP의 갯수는 턱없이 부족하게 된다

=> 따라서 NAT를 사용해서 공인 IP(Public IP)에 여러개의 사설IP(Private IP)를 부여하여 실제로 인터넷을 사용할 때 하나의 공인IP로 나가게 한다.

외부로부터 내부망을 보호하기 위해서다

=> Private IP는 나갈 때 공인 IP로 변환되어 나가기 때문에 외부에 Private IP는 노출되지 않는다.

image

위 그림을 보면

영업부는 192.168.0.? 이라는 사설 망으로 묶여 있다. 하지만 인터넷 통신을 하기 위해서 NAT가 공인 IP로 변환시켜 내보낸다

김인턴의 192.168.0.2(사설) => 120.160.10.123(공인)
최사원의 192.168.0.3(사설) => 120.160.10.123(공인)
정대리의 192.168.0.4(사설) => 120.160.10.123(공인)
이차장의 192.168.0.5(사설) => 120.160.10.123(공인)

switch는 공유기를 생각하자


그러면 응답을 받을 때 누가 요청 했는지 구별 하는 방법이 있나?

PAT에 라는 것에 의해 가능하다.

PAT는 사설 IP에서 공인 IP로 바꾸는 과정에서 포트번호를 부여한다. IP가 바뀌는 과정에서 포트번호는 그대로 기억된다.

예를들면 위 그림에서 김인턴의 네트워크 정보가

IP : 192.168.0.2

부여받은 Port: 3939 라면

//요청
192.168.0.2/3939 (private) -> 120.160.10.123/3939(public) 변환 -> internet
//응답
internet -> 120.160.10.123/3939(public) => 192.168.0.2/3939 변환 -> 192.168.0.2/3939 (private)

위와 같은 과정을 거친다.


Written by@[HongDongUk]
공부한 것을 소소하게 적는 블로그.

GitHubFacebook