posted by SoundHacker 2019. 11. 13. 14:36

NAT(Network Address Translation)이란?

라우터가 광역망이랑 로컬(지역, 내부)망과 통신을 할때 사용 가능한 기능으로,

외부의 서버나 컴퓨터의 입장에서 보면 라우터(요즘은 공유기에도 NAT기능이 있다.)만 확인가능하고,

그 밑의 하위망은 PC가 몇대가 있던간에 확인 할 방법이 없다.(그야 공유기의 공인IP만 서버에겐 보이므로) 그러므로 보안에 도움이 되기도 한다.

 

한개의 인터넷 회선만으로도 여러 PC를 연결하여 사용할 수 있도록 해주는 것이 바로 이 NAT덕분이다.

외부 서버의 입장에서는 라우터 하위의 망에 있는 PC 0과 PC 1을 알 수 없다. 

또한 직접적인 외부와의 통신은 라우터가 맡아서 하기 때문에 공인IP의 소모 또한 줄일 수 있다.(다만 무수히 많은 사설IP를 배정한다면 이야기가 달라지지)

 

예시를 들어보자면, 

집에있는 공유기를 예로 들 수 있다. 3대의 PC가 집안에 있는 공유기를 거쳐 통신을 한다고 가정하자.

PC1 = 192.168.22.1 / PC2 = 192.168.22.2 / PC3 = 192.168.22.3 이라는 사설IP를 부여받았다.

공인IP는 132.423.23.1 이라고 가정한다.

 

공유기는 이 사설IP들을 가진 PC들과 통신을 거쳐서 패킷을 외부의 서버를 통해 전달하게 된다. 이 때 서버의 입장에서는 공유기에 부여된 공인IP (132.423.23.1)와 통신을 하게 된다. PC1번이든 2번이든 3번이든 상관없이 공인IP (132.423.23.1)와 통신하는것이다.

그렇다면 IPv4의 갯수가 부족해서 IPv6이 나왔다는데 공유기를 문어발처럼 연결- 연결 - ... 해나가면 무한대로 늘릴수 있을까?

 

그건 불가능하다.

 

공유기가 부여받은 것은 공인IP 1개이고, 그 공인IP의 포트를 각각의 사설 IP에 부여하는 방식으로 통신을 하게 된다.

즉 65535개라는 포트갯수의 제한에 발이 묶여서 사용 불가능할 뿐더러...

65535개의 사설IP를 통한 통신을 감당할 만한 스펙의 (어마무시한)공유기가 있어야 하고, 시분할방식으로 나눠야 되는데 그렇다면 어마어마한 딜레이가 생길 것이다. 게다가... 공유기 하나 거칠때마다 TTL이 1씩 줄어드는걸 감안하면(time to live / https://soundhacker.tistory.com/7) 돌다가 폐기당할 가능성도 있다.(물론 조절은 가능하지만)

 

 

'해킹보안 > Network' 카테고리의 다른 글

서브넷팅  (0) 2019.12.16
DHCP(Dynamic Host Configuration Protocol)이란?  (0) 2019.11.13
TCP Retransmission(TCP 재전송)  (0) 2019.09.10
SSL터널링  (0) 2019.09.10