본문 바로가기
CS

NAT 개념 공부

by 몰라몰라개복치 2021. 7. 27.

NAT

Network Address Translation의 약자. 즉 네트워크 주소 변환이란 뜻이다.

 

외부에 공개된 공인IP와 내부에서 사용하는 사설IP가 다른 경우, 네트워크 전송 수행 시 두 IP 주소를 매핑하여 원활히 운영할 수 있게 하는 기술. 즉, 하나의 공인 IP를 여러개의 사설 IP로 변환하는 시스템.

 

대표적인 ex) 공유기

 

 

 

NAT의 장점

 

1) IP 주소 부족 문제 해결: 공인 IP를 전체 사용자에게 할당하지 않아도 됨.

=> 집집마다 공인IP를 사용한다면 전세계 사람들이 사용하기에 IP의 갯수는 턱없이 부족하게 된다. NAT를 사용하여 1개의 공인IP에 여러개의 사설IP를 부여하여 건물 한 개에 여러 사람이 다른 IP를 쓰지만 실제로 나갈 땐 하나의 공인IP로 나가게 된다.

 

2) 보안성: 외부에서 내부 네트워크의 정보를 알 수 없음

 

 

 

 

+공인 IP, 사설 IP

더보기

1. 공인 IP

인터넷 사용자의 로컬 네트워크를 식별하기 위해 ISP(인터넷 서비스 공급자)가 제공하는 IP 주소. 공용 IP 주소라고도 불리며 외부에 공개되어 있는 IP 주소. 외부에 공개되어 있기에 인터넷에 연결된 다른 PC로부터의 접근이 가능.

2. 사설 IP

일반 가정이나 회사 내 등에 할당된 네트워크의 IP 주소며 라우터에 의해 로컬 네트워크상의 PC 나 장치에 할당된다.

 

 

 

사설 IP와 공인 IP의 차이

  공인 IP (Public IP) 사설 IP (Private IP)
할당 주체 ISP(인터넷 서비스 공급자) 라우터(공유기)
할당 대상 개인 또는 회사의 서버(라우터) 개인 또는 회사의 기기
고유성 인터넷 상에서 유일한 주소 하나의 네트워크 안에서 유일
공개 여부 내/외부 접근 가능 외부 접근 불가능

사설 IP 주소만으로는 인터넷에 직접 연결할 수 없다. 라우터를 통해 1개의 공인(Public) IP만 할당하고, 라우터에 연결된 개인 PC는 사설(Private) IP를 각각 할당 받아 인터넷에 접속할 수 있게 된다.

 

 

라우터:  네트워크를 통해 정보를 주고 받을 때 데이터에 담긴 수신처의 주소를 읽고 가장 적절한 통신통로를 이용해 다른 통신망으로 전송하는 장치

 

 

 

 

 

 

 

NAT의 통신 원리

 

사설망에서 외부망으로 통신을 시도하면 해당 패킷은 무조건 공유기를 거치게 되어 있다. (여기서는 의미상 게이트웨이라고 하자)

 

처음 발신자가 게이트웨이에게 패킷을 전달했을 때 '보내는 사람의 IP'를 나타내는 SRC_IP는 사설망 내부의 발신자 주소로 채워져 있다. 하지만 만약에 이것이 그대로 전달될 경우, 수신자가 응답하는 상대의 주소는 사설망 내부의 IP가 되므로 전 세계의 수많은 사설망 중 어디로 보내야 할지 알 수가 없게 된다.

 

그래서 통신을 위해 게이트웨이는 패킷을 받아서 패킷 안의 IP주소를 자신의 공인IP로 임의수정하여 목적지로 발신한다.

패킷을 받은 수신자는 목적지 IP 주소에 게이트웨이가 집어넣은 공인IP를 넣어서 패킷을 발신할 것이고, 해당 패킷은 게이트웨이에게 도달하게 될 것이다.

 

 

Q. 어떻게 다시 사설망의 특정 사용자에게 도달이 되는 것일까?

 게이트웨이가 발신자의 IP를 수정하여 발신할 때 게이트웨이는 내부에 갖고 있는 NAT 테이블에 이를 기록해 둔다. 어떤 주소에서 어떤 주소로, 무슨 프로토콜을 사용하여 발신했는지를 기록한 후, 응답 패킷이 되돌아오면 그 값을 찾아서 해당하는 사설망 기기에게 발신하는 것이다. 이렇게 테이블을 만들어서 저장해놓고 찾아가는 방법으로 해결한다. 

 

 

 

Q. 여러 개의 사설망 내의 기기가 동시에 같은 외부망 주소로 접속을 요청하는 경우는 어떻게 할까?

NAPT를 사용하면 됨. 이러면서 NAPT의 테이블은 NAT의 테이블에서 Port에 해당하는 컬럼이 추가된다. 이렇게 변경한 결과 게이트웨이는 발신자의 포트 번호를 보고도 구별할 수 있게 되었다. 만약 발신자의 포트 번호까지 같게 패킷이 보내지면 어떻게 되느냐고도 할 수 있는데, 그럴 경우에는 Private Port를 임의의 SRC 포트로 바꿔서 보내면 되므로 아무런 문제가 없다.

 

NAPT: Network Address Port Translation의 약자로, NAT에서는 발신자의 사설망-외부망 IP를 바꿔서 보내주는 역할만을 수행했다면 이제는 포트까지 바꿔서 보내는 역할.

 

 



 

 

 

 

 

 

 

참고: https://rednooby.tistory.com/25

 

[NAT] 기초 개념잡기(NAT PAT Port-Forwarding HTTP/HTTPS)

NAT를 공부하며 연결되는 PAT, Port-Forwarding, HTTP와HTTPS의 차이점까지 요점 정리하겠습니다 그림을 통해 쉽게풀어쓴 NAT의 기초 개념잡기 본 게시글은 네트워크 입문자에게 적합한 글입니다 NAT Netwo

rednooby.tistory.com

https://5kyc1ad.tistory.com/254

 

NAT와 NAPT의 개념과 원리

 네트워크를 공부하려면 필수적으로 거쳐야 하는 것이 바로 사설망이다. NAT가 무엇인지 알고는 있었지만 새로운 사실을 공부한 김에 다시 개념을 정리하도록 하겠다. NAT란 무엇인가  NAT는 Netw

5kyc1ad.tistory.com

 

'CS' 카테고리의 다른 글

NESTAT 명령어 설명(리눅스 기준)  (0) 2021.07.28
ARP 스푸핑, 공격 기법, 과정  (0) 2021.07.27
보안기술 4주차  (0) 2021.07.20
[보안기술 3주차]  (0) 2021.07.05
OWASP TOP 10, 국정원 8대 취약점  (0) 2021.06.28