본문 바로가기

AWS Cloud School

[04.01] NAT, PAT, DNAT

 

 

VLSM 예제 답

 

NAT

네트워크 주소 변환(network address translation, 줄여서 NAT)은 컴퓨터 네트워킹에서 쓰이는 용어로서, IP패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술을 말한다. 한 마디로 Network Address인 IP를 변환(Translation)하겠다는 뜻이다.

 

NAT를 이용하는 이유는 대개 사설 네트워크(Private Network)에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위함이다.

 

일상 생활 사례를 들어보자. 카페에서 노트북을 한다고 했을때 보통 와이파이로 노트북과 인터넷을 연결 할 것이다. 무선 공유기를 통해 IP를 할당받았고 그 정보는 다음과 같다.

 

 

IP를 확인해보니 172.30.1.36이다.

172.30.1.36은 Private Network에 속하는 약속된 Private IP(사설 IP) 범위대이다. 

 

따라서 카페에 있는 공유기에 연결된 모든 단말들은 Private IP(사설 IP)를 보유하게 된다. 그렇다면 인터넷을 사용할 때는 어떻게 되는 것일까?

인터넷은 공인 IP로만 연결되어 통신이 가능하다. 사설 IP를 Source Address로 유지한 채 인터넷으로 나아가는 것일까?

 

공인인터넷망과 제 컴퓨터 사이에는 내 컴퓨터에게 IP를 할당해주는 공유기가 있다. 그리고 공유기는 공인 IP를 보유하며 인터넷과 맞닿아있다.

Private IP(172.30.1.36)뿐인 내 컴퓨터가 외부 서비스(8.8.8.8)을 사용하고자 공유기로 나아가면, 공유기는 Private IP(172.30.1.36)뿐인 내 컴퓨터의 IP를 공유기 자신의 공인 IP로 변환(Translation)하게 된다. 즉 공유기를 지나 외부 인터넷으로 나아갈 때에는 공유기의 공인 IP를 가지고 원하는 Destination Address로 향하는 것이다.

이것이 바로 NAT이라는 기술이다.

 

 

그림을 통해 이해해보자.

공유기에 연결된 컴퓨터들은 각각의 사설 아이피를 부여받는다.
  예) 내 사설아이피 : 192.168.0.3


만일 우리가 위키피디아라는 사이트에 접속하고 싶으면, 컴퓨터는 게이트웨이 어드레스에 해당되는 IP 머신(공유기)에게 신호를 보낸다.

 

 

신호를 받은 공유기는 다음 순서에 따라 위키피디아에게 요청을 보낸다.

  1. 먼저 요청받은 내부ip를 기록한다. (192.168.0.4). 누가 요청했는지 알아야하니까.
  2. 요청한 컴퓨터 ip는 외부에서 접속할 수 없는 사설ip다. 따라서 사설ip를 공인ip로 변환한다.

 

이제, 공유기는 이 요청을 public ip address 로 위키피디아에게 요청을 하고 위키피디아는 그 요청을 처리한다. 그리고 다시 공인ip(59.6.66.238)로 보내고, 공유기에서 다시 사설ip로(192.168.0.4)로 보내서 통신을 완료한다.

즉, private ip 를 사용하고 있는 컴퓨터가 사설 바깥쪽에 있는 public ip에 해당되는 외부세계에 접속할 수 있게 된다.

이때 사용되는 기술이 바로 NAT 이라고 보면 된다.

단, NAT가 호스트 간의 통신에 있어서 복잡성을 증가시킬 수 있으므로 네트워크 성능에 영향을 줄 수도 있다.

 

https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-NAT-%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

 

🌐 NAT(Network Address Translation) 이란 무엇인가?

NAT (Network Address Translation) 개념 네트워크 주소 변환(network address translation, 줄여서 NAT)은 컴퓨터 네트워킹에서 쓰이는 용어로서, IP패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록

inpa.tistory.com

 

NAT의 장점

    • NAT를 이용하면 사설 IP주소를 사용하면서 이를 공인 IP주소와 상호변환할 수 있도록 하여, 공인 IP주소를 다수가 함께 사용할 수 있도록 함으로써 이를 절약할 수 있다.
    • 외부 통신망 즉 인터넷망과 연결하는 장비인 라우터에 NAT를 설정할 경우 라우터는 자신에게 할당된 공인 IP주소만 외부로 알려지게 하고, 내부에서는 사설 IP주소만 사용하도록 하여 필요시에 이를 서로 변환시켜 준다. 외부 침입자가 공격하기 위해서는 사설망의 내부 사설 IP주소를 알아야 하기 때문에 공격이 불가능해지므로 내부 네트워크를 보호할 수 있게 된다.

 

PAT

1개의 공인 IP와 다수 사설 IP 매핑 -> 1개 공인 IP에 port를 구분하여 사설 PC를 구분

 

 

ex)김인턴에 외부통신 하기위해서는 공인 IP가 필요하다. 하지만 여러사원들이 사설 IP를 사용하고 있다.

1. 사설(내부) --> 공인(외부)

- 김인턴은 (사설) 192.168.0.2:60000 IP를 이용하여 외부에 서비스를 요청한다.

- 외부로 패킷이 나가기전에 라우터에서 해당 IP를 (공인)120.160.10.123:60000 IP로 변환하여 내보낸다.

2. 공인(외부) --> 사설(내부)

- 외부에서 내부의 김사원 PC에 서비스 요청하려고 하는데 해당 LAN구간에 할당된 공인 IP는 1개이다. 이때 PORT 를 사용하여 사설 PC를 구분한다.

- 외부에서 공인120.160.10.123 IP로 서비스요청할때 PORT를 60000으로 설정하여 보낸다.

ex) 집에서 회사pc로 원격을 붙을때 뒤에 포트붙여서 접속한다. (192.168.123.56:4442)

- 라우터에서 외부 120.160.10.123:60000 과 매핑된 사설 IP 192.168.0.2 로 패킷을 보낸다. (포트포워딩)

ex) 이 매핑설정을 보통 iptime에서 해주어야 매핑되는 사설아이피를 찾아간다. 

 

SNAT과 DNAT

 

 

SNAT와 DNAT는 트래픽이 출발하는 시작 지점을 기준으로 구분한다. 어떤 주소를 변경해야 하는지는 서비스 흐름과 목적에 따라 결정된다.

SNAT와 DNAT의 기준은 NAT가 수행되기 이전의 트래픽이 출발하는 시작 지점이다. 즉, 요청 시 SNAT를 해 목적지로 전송하면 해당 트래픽에 대한 응답을 받을 때는 출발지와 목적지가 반대가 되므로 DNAT가 되는데 이때 트래픽을 요청하는 시작 지점만 고려해 SNAT 설정을 해야 한다.

 

 

 

 

NAT 실습 1

 

 

NAT 실습 2