-> 블로그 이전

[Network] 네트워크 계층 : NAT

2022. 2. 21. 17:49Major`/컴퓨터 네트워크

NAT (Network Address Translation)

- 사설 IP → 공인 IP로 변경할 때 필요한 주소 변환 서비스

- NAT 라우터를 사용해서 다수의 사설 IP 주소를 하나의 공인 IP주소로 변환시키는 기술

  • NAT 라우터에는 NAT 변환 테이블이 존재한다
    • (사설 IP 주소 : 포트 번호) :: (공인 IP 주소 : 새로운 포트번호) 형식으로 저장해놓는다
    • 이러면 외부에서 NAT 라우터로 Response가 올 경우, Dest IP 주소(공인)을 서브넷 내의 특정 호스트의 IP 주소(사설)로 Dest를 변경시킨다

 

Example)

▶ Request :: 192.168.1.1 PC

- 서브넷에 존재하는 PC (사설 IP 주소 : 192.168.1.1)가 외부의 Host에게 Reqeust를 보내려고 한다

 

1. (192.168.1.1 : 9888) PC에서 (68.1.31.1 : 23) Host로 Request를 보낸다

2. 이 데이터그램이 NAT 라우터를 거쳐서 외부의 인터넷으로 나갈 때

  • NAT Router는 Source IP 주소:포트번호인 192.168.1.1:9688을 해당 서브넷 대표 공인 IP 주소:포트번호인 101.89.101.12:8801로 바꿔서 내보낸다
  • 이 때 NAT 변환 테이블에 해당 정보가 저장된다

3. 그러면 (68.1.31.1:23) Host측에서는 (101.89.101.12 : 8801)로부터 Request가 왔다고 인식한다

>> (private :: Source IP[192.168.1.1] : Port N[9888]) → (public :: Source IP[101.89.101.12] : Port N[8801])

 

▶ Response :: 68.1.31.1 Host

1. 당연히 Destination을 (101.89.101.12 : 8801)로 생각하고 해당 IP주소 + 포트번호로 Response를 보낸다

2. Response를 받은 NAT 라우터는 원래 이 Response를 받을 (192.168.1.1 : 9888) PC의 정보로 교환을 해서 해당 PC로 Response를 보내준다

>> (public :: Dest IP[101.89.101.12] : Port N[8801]) → (private :: Dest IP[192.168.1.1] : Port N[9888])


NAT의 목적

(1) 공인 IP 주소 절약

- 인터넷상의 공인 IP주소는 한정되어 있다

- 각 Host별로 별도의 공인 IP주소를 할당받으면 당연히 인터넷상 주소는 고갈된다

- 따라서, 해당 서브넷의 First-Hop Router (:: NAT Router)에게 공인 IP주소를 할당해주고, 서브넷에 존재하는 모든 Host들에 대해서는 사설 IP주소를 할당함으로써 주소 절약을 할 수 있다

 

(2) 보안

- 공인 IP주소는 외부에서 내부로 해킹/침입의 위험이 항상 존재한다

  • 공인/사설의 경계를 유지함으로써 내부 :: 사설 인터넷망의 보안을 지킨다
  • 사설 IP를 사용하면 외부에서 개인 PC/인터넷 장비로 직접적인 접근을 할 수 없다