[Information]/[용어&개념]

[용어/개념] Network - NAT (Network Address Translation)

starterr 2024. 10. 10. 15:25
반응형

1. NAT (Network Address Translation)

사설 IP를 공인 IP로 바꾸는 기술입니다. 이제 아시다시피, 공인IP는 엄청나게 모자랍니다.

KT와 같은 ISP에서도 B클래스는 한 손에 꼽을 정도로 적게 보유하고 있고, C클래스도 보유 중인 게 몇 개 안 된다고 알고 있습니다.

 

 

이 부족한 IP를 어떻게 써야 최대로 효율을 뽑아먹을수 있을까요? 사설 IP를 사용했었죠?

 

NAT (Network Address Translation)
NAT (Network Address Translation)

 

왼쪽의 192.168.1.2가 68.1.31.1의 웹사이트에 들어가고 싶다고 생각해 보겠습니다.

 

192.168.1.2는 자신의 IP주소와 목적지의 IP주소, 웹사이트 액세스 요청을 포함하는 패키지를 만들어서 보내게 됩니다.

//아래 표는 간단하게 요약한 것으로 사실 더 복잡하고 구체화되어 있습니다.//

Source ip address Destination ip address Requests
192.168.1.2 68.1.31.1 요청

 

그런데 68.1.31.1은 웹사이트를 192.168.1.2에게 보내줄 수 없습니다.

192.168.1.2와 같은 사설 IP가 어디 있는지도 모르고, 사설 IP를 사용하는 모든 대상에게 데이터를 보낼 수는 없으니까요.

 

Source ip address Destination ip address Responses
68.1.31.1 192.168.1.2(??????????) 응답

 

결과적으로 192.168.1.2는 응답을 받지 못해 웹사이트에 접속하지 못하겠네요.

 

 

 

다시 처음으로 돌아옵니다. NAT 라우터는 여기서 한 가지 기능을 추가로 수행하게 됩니다.

192.168.1.2가 다시 한번 패키지를 만들어 전송하면 NAT 라우터는 이 패키지에서 수신 IP를 자신의 공인 IP 주소로 바꾼 다음에, 192.168.1.2가 68.1.31.1로 접속하려 했다는 것을 기억하고, (테이블 생성) 전달하게 됩니다.

Source ip address Destination ip address Requests
192.168.1.2 -> 101.89.101.12 68.1.31.1 요청

 

 

- NAT 라우터가 보관하는 테이블

NAT Table
Private ip address Source ip address Destination ip address
192.168.1.2 101.89.101.12 68.1.31.1

 

다시 68.1.31.1은 웹사이트를 101.89.101.12로 보내면,

라우터는 테이블을 바탕으로 데이터를 192.168.1.2에게 보내줄 수 있게 되는 것입니다.

Source ip address Destination ip address Responses
68.1.31.1 101.89.101.12 응답

 

 

2. NAT 종 류

1) Static NAT (1:1)

공인 IP와 사설 IP가 1:1 매칭이 됩니다. 이 경우에는 IP주소의 절약 효과는 없습니다.

이 경우는 주로 사설 IP 주소를 사용하는 서버가 여러 가지 역할을 수행할 때 포트포워딩을 목적으로 사용합니다.

 

 

2) Dynamic NAT (1:N, N:N)

공인 IP보다 사설 IP의 개수가 더 많을 때 사용됩니다. 공인 IP가 하나일 경우는 위에서 설명드린 방식과 동일하게 동작합니다.

공인IP가 여러 개지만 호스트가 더 많을 경우에는 Global address Pool이라는 곳에 담겨있는 공인 IP를 필요에 따라 사설 IP가 사용하고, 사용이 끝나면 반환하는 형식으로 동작합니다.

 

이 경우, 내부망과 외부망이 명확히 분리되면서 보안의 효과까지 기대할 수 있게 됩니다.

따라서 내부망과 외부망 사이에 방화벽(Firewall)을 운영하여 외부 공격으로부터 내부를 지킬 수 있게 됩니다. NAT장비는 따라서 라우터일 수도 있고, 방화벽 형태일 수도 있습니다.

 

 

3) PAT (Port Address Translation), NPAT

위의 내용을 보고 천재라면 한 가지 허점을 발견했을 수 있겠습니다.

192.168.1.1

192.168.1.2

192.168.1.3

세 명이 각기 다른 서버에 접속한다면 문제 될 것이 없겠습니다.

NAT 라우터가 68.1.31.1에 접속한 건 192.168.1.3이다.

8.8.8.8에 접속한건 192.168.1.2이다. 이런 식으로 테이블을 보고 구분을 할 수 있을 테니까요.

 

하지만 세 명이 모두 같은 서버에 접속한다면 라우터는 받은 패킷을 테이블을 보고도 누구에게 전달해야 할지 모르게 됩니다.

Source ip address Destination ip address Responses
68.1.31.1 101.89.101.12 (?) 응답
68.1.31.1 101.89.101.12 (?) 응답
68.1.31.1 101.89.101.12 (?) 응답
NAT Table
Private ip address Source ip address Destination ip address
192.168.1.1 101.89.101.12 68.1.31.1
192.168.1.2 101.89.101.12 68.1.31.1
192.168.1.3 101.89.101.12 68.1.31.1

 

그래서 추가적으로 IP 뒤에 포트번호까지 붙여 이 대상들을 구분하는 것이 PAT입니다.

다시 이 그림과 표를 확인하며 PAT의 동작방식을 알아보겠습니다.

PAT (Port Address Translation), NPAT
PAT (Port Address Translation), NPAT

 

192.168.1.2:1253 은 라우터를 통해 패키지를 보내고 NAT 라우터는 Source ip address를 IP주소:포트 형태로 변경합니다. (101.89.101.12:8801) 호스트는 이제 응답을 101.89.101.12:8801로 보내게 됩니다.

NAT 라우터는 8801 포트에서 응답을 수신하면 192.168.1.2:1253으로 전달할 곳을 확실하게 알 수 있게 됩니다.

 

 

PAT (Port Address Translation), NPAT
PAT (Port Address Translation), NPAT

 

이해를 돕기 위해 이미지를 한 장 더 가져왔습니다.

 

1. HTTP 요청이 80번 포트로 NAT 라우터에 도착합니다.

2. 라우터는 테이블을 확인하고 80번 포트로 온 패킷을 192.168.100.2:7575로 전달합니다.

3. 정상적인 통신 가능.

 

 

반응형

3. 패킷 방향에 따른 NAT 종류 구분

1) SNAT (Source Network Address Translation)

내부에서 외부로 나가는 패킷의 출발지 IP주소를 변경하는 것. Source NAT, SNAT, IP 마스커레이드라고 함.

대표적으로 가정용 공유기 정도의 장비를 떠올리면 될 것 같습니다.

 

2) DNAT (Destination Network Address Translation)

외부에서 내부로 들어오는 패킷에 있는 목적지 IP주소를 변경하여 내부에 도달할 수 있게 하는 것.

대표적으로 방화벽, 로드밸런서의 장비가 있습니다.

 

3) Twice-NAT

출발지, 목적지 모두 주소가 바뀌는 방식으로 서로 다른 두 지점 간에 연결을 위한 중간 네트워크 허브 구조를 이용할 때 사용합니다.

 

4) 헤어핀 또는 NAT Loopback

접속하려는 목적지가 자기 자신일 경우에, 데이터를 내부에서 바로 전환해 주는 기술입니다.

DNS 웹 서버의 경우에 사용됩니다.

 


 

[금융보안] ChatGPT가 불러온 AI 혁명의 명암 - AI 도입 사례, 서비스 종류, 생성형 AI의 보안 이슈, LLM 10대 보안 위험, AI 활용 가능성

 

[금융보안] ChatGPT가 불러온 AI 혁명의 명암 - AI 도입 사례, 서비스 종류, 생성형 AI의 보안 이슈, LLM

A. AI 활용 시 이점1. 비용 절감AI와 지능형 자동차 솔루션을 도입해 상대적으로 가치가 낮고 반복적인 업무를 자동화하면 효율성과 품질을 개선해 비용을 절감할 수 있습니다. 그 예로 자연어 처

infoofit.tistory.com

 

[보안] 01. 악성코드 정의, 악성코드 종류, 감염 위치, 네이밍 스키마

 

[보안] 01. 악성코드 정의, 악성코드 종류, 감염 위치, 네이밍 스키마

A. 악성코드 정의 1) 이론적 정의 - 악성코드는 악성 소프트웨어 (Malicious Software)의 줄임말 -> 컴퓨터 작동을 방해 -> 민감한 정보를 수집 -> 개인 컴퓨터에 불법 접근 - 일반적으로 악성코드는

infoofit.tistory.com

 

[TIP] 작업 시간 단축을 위한 Windows 바로가기 키 정리 - 단축키 모음(100개)

 

[TIP] 작업 시간 단축을 위한 Windows 바로가기 키 정리 - 단축키 모음(100개)

A. 윈도우 단축키 모음바로가기 키라고도 불리는 윈도우 단축키는 알아두면 키보드만으로 컴퓨터를 사용할 수 있기 때문에 작업시간을 단축시키기 위해 아주 유용하게 사용할 수 있습니다. 이

infoofit.tistory.com

 

반응형