포트 포워딩 또는 포트 매핑은 컴퓨터 네트워크에서 패킷이 라우터나 방화벽과 같은 네트워크 게이트웨이를 가로지르는 동안 하나의 IP주소와 포트 번호 결합의 통신 요청을 다른 곳으로 넘겨주는 네트워크 주소 변환(NAT)의 응용이다.
인터넷을 사용하기 위해서는 전세계적으로 사용되는 IP주소가 있어야한다. 아이피는 고유한 값이기 때문에 중복되는 주소를 가지지 않습니다. 그렇지만 전세계의 모든 장비에 IP를 할당하기에는 현재의 IP 체계가 많이 부족합니다. 0~255까지의 숫자 4개로 구성되는 IPv4는 2^32 약 42억개의 주소만 할당할 수 있습니다. 그렇기 때문에 굳이 전세계적으로 네트워크가 필요하지 않은 장비들에 대해서는 별도의 사설 네트워크를 구축하게 됩니다.
앞서 언급한 인터넷이 가능한 아이피를 공인 아이피라고 합니다. 이러한 공인 아이피는 고유한 값으로 인터넷을 사용하는 기기에 하나씩 할당이 됩니다. 그런데, 이런 공인 아이피에서 몇몇 아이피대역은 사용되지 않습니다.
10.x.x.x 대역, 172.16~31.x.x 대역, 192.168.x.x 대역이 모두 사용되지 않습니다. 이러한 아이피 대역은 회사나 개인등이 별도로 구축하게 될 사설 네트워크에서만 이용됩니다. 사설 네트워크는 전세계적인 인터넷이 아닌 국지적인 네트워크로써 굳이 인터넷이 필요하지 않은 경우에 사용됩니다. 사설네트워크는 전세계적인 인터넷이 아닌 국지적인 네트워크로써 굳이 인터넷이 필요하지 않은 경우에 사용됩니다. 본래 이러한 사설 네트워크를 구축하기 위해서는 DHCP 서버와 라우터 등등이 필요하지만, 이러한 기능이 하나로 뭉쳐있는 개인용 장비가 공유기이다.
공유기의 역할은 간단하다. 공유기에 연결되는 모든 기기들에 사설 네트워클르 구축해주는 것입니다. 사설 네트워크이기 때문에 위에서 언급했던 공인 아이피 대역을 사용하지 않고 사설 아이피 대역을 이용하게 된다. 주로 이용되는 아이피 대역이 바로 192.168.x.x입니다. 이처럼 192.168 로 시작되는 아이피 주소를 가진 장비는 인터넷에 접속하기 위해서 반드시 공인 아이피를 보유한 장비가 필요하다.
이제 컴퓨터 1에서 웹서버 80번 포트를 열었다고 생각해본다. 인터넷을 통해서 다른 사람들이 컴퓨터 1의 웹서버에 접근하기 위해서는 컴퓨터 1의 아이피를 알려줄 수는 없다. 사설 아이피 대역은 여기 저기서 사용하기 때문에 공인 아이피처럼 특정한 기기를 가리키지 않는다. 그래서 공유기가 보유한 공인 아이피를 알려줘야한다. 그러면 사람들이 12.34.56.78:80 주소를 인터넷 브라우저에 입력하면 웹 서버에 연결이 될까?
공인 아이피의 80번 포트로 들어오는 연결은 공유기에 도달하면 끝내버린다. 왜냐하면 공인 아이피로 들어온 80번 포트의 연결을 공유기에서 컴퓨터 1,2,3 중에 어떤 곳으로 보내줘야 할 것인지를 판단하지 못하기 때문이다. 그렇기 때문에 공인 아이피로 들어오는 80번 포트의 연결을 컴퓨터 1의 80번 포트로 연결하라고 공유기에 설정을 해야하는 것이며, 이것을 포트 포워딩(=전달)이라고 하는 것이다.