본문 바로가기
프로그래밍/네트워크

[네트워크] NAT와 포트포워딩

by 준보틱스 2024. 6. 25.

NAT

NAT(Network Address Translation)은 IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술을 말한다.

패킷에 변화가 생기기 때문에 IP나 TCP/UDP의 Checksum도 다시 계산되어 재기록해야 한다.

NAT를 이용하는 이유는 대개 사설 네트워크에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위함이다. 하지만 꼭 사설 IP를 공인 IP로 변환하는데에만 사용하는 기술은 아니다.

사설 IP 대역들이 통신할 때 공유기에 할당된 공인 IP로 변경되어 통신한다.

하지만 바깥 네트워크에서는 공유기가 통신하는 것처럼 보인다. 하지만 공유기 안의 NAT 테이블에는 통신한 기록들이 저장되어 있다.

포트포워딩

포트포워딩 또는 포트 매핑은 패킷이 라우터나 방화벽과 같은 네트워크 장비를 가로지르는 동안 특정 IP 주소와 포트 번호의 통신 요청을 특정 다른 IP와 포트 번호로 넘겨주는 네트워크 주소 변환(NAT)의 응용이다.

이 기법은 게이트웨이(외부망)의 반대쪽에 위치한 사설네트워크에 상주하는 호스트에 대한 서비스를 생성하기 위해 흔히 사용된다.

사설 IP 대역의 컴퓨터가 보이지 않는 네트워크 대역의 컴퓨터와 통신하고 싶다면, 포트 포워딩을 이용한다.

직접 그 컴퓨터의 IP를 입력하는게 아니라 공유기의 공인 IP로 보낸다. 그리고 공유기에 포트 포워딩 설정을 해야한다. 목적지 IP주소를 공인IP주소로 전달해야한다.

특정 포트로 들어온 요청을 내부 네트워크 대역 중 특정 IP의 특정 포트로 전송한다.