-
NAT와 포트포워딩 - 패킷의 IP와 Port 번호 변환하기Computer Science/Network 2021. 11. 1. 22:23
NAT
: Network Address Translation
IP 패킷의 TCP/UDP Port Number와 출발지(Source), 목적지(Destination) IP 주소를 재기록 하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술
위의 그림처럼 Host - Router - Server를 거치는 과정에서 패킷은 많은 네트워크 단말을 거치게 되는데, 그 과정에서 출발지의 (IP, Port Num)과 도착지의 (IP, Port Num)과 같은 데이터는 계속해서 변할 수 있다.
패킷에 변화가 생기기 때문에 IP나 TCP/UDP의 체크섬도 다시 계산해서 재기록해야 한다.
IPv4를 사용할 때 가능한 최대 IP 개수는 255^4 = 4,228,250,625(약 40억)로 한정되어 있기 때문에, 제한된 수의 공인 IP를 사용하는 라우터와 해당 대역에 속한 사설 IP 대역으로 나뉠 수 있다. 따라서 사설 네트워크에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용해서 인터넷과 통신하기 위해 사용된다.
그 과정에서 변환된 IP, Port 번호는 원활한 송수신을 위해 라우터의 NAT 테이블에 기록된다. 꼭 사설 IP를 공인 IP로 변환하는 데에만 사용하는 기술은 아니다.
Port Forwarding
패킷이 라우터나 방화벽과 같은 네트워크 장비를 가로지르는 동안 특정 IP 주소와 포트 번호의 통신 요청을 특정한 다른 IP와 포트 번호로 넘겨주는 NAT의 응용 기술이다. 게이트웨이와 같은 외부 망의 반대쪽에 위치한 사설 네트워크의 호스트에 연결하기 위해 주로 사용된다.
그림과 같은 상황에서 원격 클라이언트가 200.100.10.1:1025로 접속하려 하면 IP인 200.100.10.1은 10.1.1.2로, Port 번호인 1025는 1024로 변환하여 LAN 내의 단말로 전달한다.
'Computer Science > Network' 카테고리의 다른 글
HTTPS는 어떻게 신뢰성있는 통신을 보장할까❓ (412) 2022.11.12 [Network] ARP 프로토콜 (0) 2021.08.02 [Network] 네트워크를 설명하는 두 가지 모델 - TCP/IP, OSI 7계층 (410) 2021.07.17 [Network] 데이터 링크 계층의 역할과 Ethernet 프로토콜 (0) 2021.07.15 유/무선 공유기와 스위칭 허브의 차이 (0) 2020.03.06