CS/네트워크

공유기의 원리와 NAT 요약

alpacadabra 2023. 1. 12. 23:10


1.

ip는 사설(private) ip와 공인(public) ip의 두 종류로 나뉜다.

사설 ip는 말그대로 private하여 로컬에서만 사용할 수 있고, 인터넷 상에서는 사용할 수 없다.

반대로 공인 ip는 인터넷 상에서 나를 대표하는 유일한 주소이다.

 

2.

우리는 인터넷 공급자(KT, SKT 등)로부터 하나의 공인 ip를 부여받는다.

그러나 하나의 ip를 여러 기기들이 동시에 사용할 수는 없으므로(ip 충돌), 공유기를 활용해야 한다.

 

3.

공유기를 연결하면, 공인 ip는 공유기가 사용하게 된다.

그리고 그 공유기와 공유기에 연결된 기기들은 사설 ip를 부여받는다. (따라서 공유기는 사설과 공인 ip를 동시에 가진다)

사설 ip는 주로 192.168.x.x로 약속되어 있으며, 그 중에서도 공유기는 주로 192.168.0.1을 사용한다.

 

4.

공유기에 연결된 기기가 외부와 통신하려고 한다.

하지만 그 기기는 사설 ip를 사용하고 있으므로 현 상태로는 통신이 불가능하다.

 

5.

이에 공유기는 기기가 통신할 수 있도록 패킷을 변환해주는데, 이를 NAT(Network Address Translation)라고 한다.

기기로부터 전송된 패킷이 공유기를 거치면, 출발지의 ip 주소가 기기의 사설 ip에서 공유기의 공인 ip 주소로 변환된다.

또한, 통신중인 기기 및 세션을 식별하기 위해 출발지의 포트 번호가 임의의 번호로 변환된다.

 

6.

이러한 변환 정보들은 공유기를 거쳐서 나갈 때 캐싱되어, 추후 상대방으로부터 답신을 받았을 때 어떤 기기에게 전달해야 하는 지를 결정하는 데에 사용된다.

캐싱은 테이블의 형태로 이루어지며, 테이블의 키는 NAT 방식에 따라 다르지만 변환된 포트 번호는 항상 사용된다.