HTML, CSS, JS, 웹, 네트워크

NAT, PAT

swchung09 2025. 8. 27. 22:07

NAT은 Network Address Translation으로, 사설 ip를 공인 ip로 변경하는 서비스이다. 이 서비스는 가정용 공유기에 대부분 탑재 되어있으며, NAT이 있으면 여러가지 장점이 있다.

- NAT은 한 ip를 여러 기기가 사용할 수 있어, 경제적이다

- 근래에 ipv4주소가 부족해지면서, NAT이 공인 ip주소의 수를 줄여주는 역할을 할 수 있다

- NAT은 하나의 장치로 데이터가 나가기 때문에 방화벽을 구축하기 쉽다

NAT은 IP masquerading 방식으로 동작한다. 이 동작 방식은 하나의 공인 ip뒤에 여러 사설 ip를 할당하는 기법이다.


NAT에는 여러 종류가 있다.

- Static NAT(정적 NAT) : 공인 ip와 사설 ip를 1:1 방식으로 변환한다.

- Dynamic NAT(동적 NAT) :  공인 ip와 사설 ip를 1:n등으로 변환한다.

- Network Address Port Translation(NAPT) : Dynamic NAT에 포트까지 변환하는 방식이다.

- Source NAT(SNAT) : Static NAT와 유사하지만, 출발지 ip만 공개한다.

- Destination NAT(DNAT) : Static NAT와 유사하지만, 도착지 ip만 공개한다.

이 외에도 다양한 NAT가 있다.


PAT는 Port Address Translation으로, Dynamic NAT의 한 종류이다. 이렇게 변환된 ip 주소는 호스트를 구분할 수 없어서, 포트번호로 구분한다. PAT에서 사용하는 포트는 주로 well-known(http, ssh 등의 서비스가 대부분 서버로 사용하는 포트)을 제외하고 49152(or 1024) ~ 65535 중에서 사용한다.


 

 

이 이미지는 패킷트레이서에서 PAT를 실습하기 위해 만든 토폴로지다. 이 토폴로지에서는 공유기가 PAT역할을 하여, PC에서 온 데이터를 마치 공유기가 보내는 것처럼 해준다. (내부 IP를 외부 IP로 데이터를 전송한다는 점에서 프록시와 유사한 성격을 갖는다.)

 

아래는 PAT가 진행되는 예시이다.

1.  PC0이 기본 게이트웨이(공유기의 ip주소)로 서버로 향하는 데이터를 전송한다

2. 공유기에서 PC0이 보낸 데이터를 수신한다

3. 공유기는 PAT 변환 표에 PC0의 주소등을 기록하고, 포트 번호(공인 ip주소로 나갈때 쓰임)를 기록한다

4. 공유기는 이후 인터넷을 거쳐서 서버에 도착한다

(이때 서버는 공유기의 IP주소를 알 수 있지만, PC0의 IP주소는 알 수 없다)

5. 서버는 요청을 처리한 다음 공유기로 데이터를 전송한다. 이 때 서버는 공유기에서 요청할때 쓴 포트로 데이터를 전송한다

6. 공유기가 데이터를 받으면, PAT 변환 표에서 어디로 전송할지 찾고, 데이터를 PC0으로 전송해준다

'HTML, CSS, JS, 웹, 네트워크' 카테고리의 다른 글

VLAN, Inter-VLAN, VTP, Port-Security  (0) 2025.09.28
네트워크 기초 정리  (2) 2025.09.01
Express(Middleware, Router)  (0) 2025.08.01
Express(Cookie, Session)  (0) 2025.07.07
Express, pug  (0) 2025.06.23