NAT와 Port Forwarding

Kade Jeon·2024년 5월 21일

네트워크

목록 보기
3/3

NAT

네트워크 주소 변환(NAT, Network Address Translation)으로 사설 네트워크에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위함.

  • IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술
  • IPv4의 주소 문제를 해결하기 위한 방법으로서 고려되었으며, 주로 네트워크 주소를 사용하는 망에서 외부의 공인망과의 통신을 위해서 네트워크 주소를 변환
  • 내부 망에서는 사설 IP 주소를 사용하여 통신을 하고, 외부망과의 통신시에는 NAT를 거쳐 공인 IP 주소로 자동 변환

Public IP와 Private IP

Public IP(공인 IP)
공인 IP 주소는 인터넷 업체가 사용자에게 할당하며 공유기가 인터넷과 통신하도록 하는 역할을 하는 외부 IP 주소.

Private IP(사설 IP)
사설 IP 주소는 공유기가 노트북, 스마트폰 등 홈 네트워크에 연결된 장치에 할당한 내부 IP 주소.

Public IP(공인 IP)Private IP(사설 IP)
인터넷 통신 목적로컬 네트워크 통신 목적
인터넷 업체가 할당네트워크 관리자나 장치가 할당
인터넷에서 식별 가능인터넷에서 식별 불가
다른 IP주소와 중복되지 않음(전세계적으로 고유)다른 네트워크 IP 주소와 중복 가능 (동일 로컬 네트워크 내에서는 중복 불가능)

NAT 사용목적

  • 인터넷 공인 IP 주소 절약
    인터넷 공인 IP 주소는 한정적이므로 이를 공유할 필요가 있음. NAT를 이용하면 1개 공인 IP를 다수가 함께 사용할 수 있도록 할 수 있음.
  • 공공망과 연결되는 사설망을 침입자들로부터 보호
    외부 통신망과 연결하는 라우터에 NAT를 설정할 경우, 라우터에 할당된 공인 IP 주소만 외부 노출, 노출되지 않은 내부는 사설 IP를 사용하여 필요 시에 변환시켜서 통신하기 때문에 외부 침입자가 공격하기 위해서는 사설망의 내부 사설 IP주소를 알아야 함.

작동 방식

NAT작동방식

  1. 내부망에서 패킷을 전송. 이때 패킷의 source address에 사설 IP 주소와 Port를 설정하여 함께 보냄.
  2. NAT Router는 패킷의 source address를 라우터의 공인 IP 주소로 변환하여 패킷을 보낸다. 이와 동시에 NAT translation table에 매칭시킨 주소를 저장.
  3. 공인 IP를 통해 패킷이 NAT Router로 도착.
  4. NAT Router는 NAT translation table을 확인 후, 내부망 목적지에 해당하는 사설 IP 주소로 변환하여 전달.

Port Forwarding

포트 포워딩은 컴퓨터 네트워크 상에서 패킷이 방화벽이나 라우터 같은 네트워크 게이트를 지날 때, IP 주소와 포트 번호 결합의 통신 요청을 다른 곳으로 넘겨주는 네트워크 주소 변환의 응용.

  • 라우터에게 지시를 내려, 특정 데이터가 일부 제어 시스템을 우외할 수 있도록 하여 외부 서비스에서 장치에 쉽게 액세스 가능.
  • 특정한 포트로 들어오는 데이터 패킷을 다른 포트로 바꿔서 다시 전송해주는 작업.

Router의 역할

라우터(Router)는 연결된 모든 기기에 사설 네트워크를 구축해주는 역할뿐만 아니라 공인 IP를 할당 받는다. 따라서 라우터에 연결된 기기는 인터넷에 접속하기 위해 무조건 라우터를 거쳐야만 한다. 라우터에는 6만 개 이상의 포트가 있는데, 이중 표준 특정 기능에 이용하는 약 1천 개의 포트를 제외하고 나머지 포트를 이용하여 특정 기기에 할당한다.


💾참고자료
https://velog.io/@zigje9/NAT%EB%9E%80
https://btcd.tistory.com/430?category=927630
https://nordvpn.com/ko/blog/port-forwarding-vpn/
https://surfshark.com/ko/blog/vpn-port-forwarding
https://nordvpn.com/ko/blog/public-ip-and-private-ip/
Google Gemini
OpenAI ChatGPT

profile
안녕하세요. 백엔드 개발자가 되고 싶은 Kade 입니다.

0개의 댓글