오히려 좋아..

상황이 나쁘게만 흘러가는 것 같을 때 외쳐보자.. .

궁금한 마음으로 포트폴리오 보기

Network

[네트워크] NAT(Network Address Translation)

junha6316 2022. 8. 24. 09:56

1. NAT란?

많은 회사들이 여러 이유(보안, 한정된 공인 IP)로 하나의 공인 IP에 여러 단말기(PC)를 서브넷으로 구성하는 경우가 많다. 외부에서 보기에는 하나의 IP로 보일텐데 어떤 식으로 서브넷의 특정 단말기와 통신가능 한 것일까? 이번글에서는 이러한 문제를 해결하는 NAT과 NAT의 종류에 대해 다루도록 하겠다. 기본적으로 서브넷이나 공인/사설 IP에 대한 이해를 바탕으로 진행하므로

아직 공인 IP, 사설 IP에 대해 모른다면 이 글을 참조하자! 

인터넷

잠깐 다른길로 잠깐 새보면 예전에는 친구랑 놀려면 친구집에 있는 집 전화기에 전화해야하던 때가 있었다.

 

민수가 병건이에게 전화를 한다.

민수가 병건이네 전화번호를 누르고 누군가 전화를 받는다.

민수 : ”여보세요. 병건이 있어요?”

병건이네 엄마 : “병건아! 민수한테 전화 왔다, 전화받아라"

 

바로 이것이 문제 해결의 핵심이다. 집이라는 서브넷에 포함된 병건이(단말기) 한테 전화하기 위해 먼저 병건이네 집에 전화하고 집 안에서 병건이와 연결해준다.

 

`사설 IP에서 공인 IP로` 또는 반대로 변환해 주는 서비스

 

이를 있어보이는 표현으로 NAT(Network Address Translation)라고 한다. 즉 NAT는 `사설 IP에서 공인 IP로` 또는 반대로 변환해 주는 서비스를 의미한다. 즉 서브넷에 구성되어 있는 단말기가 외부 서버로 요청시에는 사설 IP에서 공인 IP로 변경해주고 반대로 외부 서버에서 서브넷에 들어올때는 공인 IP에서 사설 IP로 변경해주는 것이다. 사용되는 장비는 router로 router 내부에 NAT Forwarding Table의 구현체를 이용해 요청한 주소(ip, port)와 내부 단말기를 매핑 시켜둔다.

 

즉 아래와 같은 테이블이 있어서 들어오는 패킷을 보고 서브넷의 특정 단말기로 꽂아주는 것이다.(예시를 위한 설명이다)

공인 주소 사설 주소
병건이네.거실안쪽방 병건이
병건이네.안방 병건이 아버지
병건이네.개집 병건이 개

 

2. NAT 정책

NAT Forwarding Table은 정책에 따라 다양하게 구성된다.

  1. Full Cone NAT(One To One NAT) :
    • 서브넷에 포함된 단말기 이병건의 컴퓨터에서 외부로 패킷을 보낼때 (IP1, PORT1) 라는 이름으로 패킷이 나가면 외부에서 (IP1, PORT1) 으로 요청하는 모든 패킷은 박준하의 컴퓨터로 전달
  2. Address Restricted Cone NAT
    • 서브넷에 포함된 이병건의 컴퓨터가 외부로 패킷을 보낼때 (IP2, PORT2)라는 이름으로 보내면 외부 서버에서 요청을 받고 응답을 PORT에 관계없이 IP2로만 보내주면
    • 즉 외부 서버에서 요청에 응답할 때 IP2로만 보내주면 자동으로 이병건의 컴퓨터로 꽂힘
  3. Port Restricted Cone NAT
    • 서브넷에 포함된 이병건의 컴퓨터가 외부로 패킷을 보낼때 (IP2, PORT2) 로 보내면, 외부 서버에서 요청을 받고 응답을 (IP2, PORT2)로 꼭 보내줘야함
    • Address Restricted Cone NAT보다 더 strict
  4. Symmetric NAT
    • 외부로 패킷을 보내는 서버마다 다른 NAT 매핑을 사용
    • 이병건의 컴퓨터에서 패킷을 특정 서버로 보내면 그 서버에서 보낸 패킷만 PC로 전달된다.
    • 다시말해 PC에서 외부 서버로 패킷을 한번 보내야 연결 가능함