1 분 소요

포트포워딩의 필요성

내부네트워크 또는 네트워크에 연결되지 않은 하나의 호스트만 사용하는 서비스들이라면 필요가 없는 기능입니다.

그러나 공유기에 하나의 호스트만 붙어있질 않습니다.

스마트폰을 이용하여 무선공유기에 접속을 하여도 호스트가 되는거죠

그리고 내부 IP는 특별한 작업을 거치지 않는 한 외부에서 접속할 수 없습니다.

제 공유기에 연결된 호스트가 3개라고 가정을 할때 3개모두 ssh를 작동중입니다.(3개 모두 ssh는 기본값인 22포트)

img

이때 공유기에 연결된 호스트들의 내부IP들은 각각 위와 같습니다.

이중 C호스트에서 A라는 호스트의 ssh접속을 하고자한다면 어떻게해야 할까요?

192.168.1.100:22라고 입력을 한다면 A라는 호스트에 22포트로 접속을 한다는것을 알 수 있겠죠

하지만 외부에서 접속을 할때에는 달라집니다.

서비스포트를 이용하여 외부에서도 접속을 가능하도록 해야하는데 여기서 문제가 생깁니다.

위에서 말했듯이 외부에서 A호스트를 ssh로 접속하고자할때 내부IP인 192.168.1.100를 볼 수 없거든요

서비스포트란?
여러 서비스를 구분하기 위해 번호를 지정하여 구분하도록 만든것이 서비스 포트입니다.
그중에서도 예약, 지정된 포트들이 있는데, 예를들어
기본적으로 ssh를 설정하게되면 22번포트로 설정되어있고 http를 구성하게되면 80포트로 설정됩니다.

내 공유기의 공인(외부)IP가 211.123.123.123이라고 할때 211.123.123.123:22를 입력해도 A호스트의 ssh로 접속할 수없습니다.

저 IP주소가 공유기를 지칭하는지 A호스트를 말하는지 B인지 그마저도 아니면 C호스트를 말하는건지 알 수 없거든요

이를 해결하기 위해 나온게 포트포워딩이라는 것입니다.

포트포워딩의 기능

외부에서 A호스트의 ssh로 접속하고 싶다.

이럴땐 공유기에서 구분하면 됩니다.

“외부에서 특정 포트번호로 들어오게 된다면 A호스트의 22번 포트를 지칭하는것이다” 라는 규칙을 설정하면 됩니다.

공유기의 공인IP 뒤에 서비스포트번호처럼 특정 포트번호를 입력하면 지정한 내부 호스트의 특정포트로 보내버리는거죠

포트포워딩 설정 시 1000-1010포트로 들어오는 것들을 A호스트의 22포트로 보내라 라는 규칙을 설정하면 아래와 같이 생각하시면됩니다.

img

공유기의 공인IP가 211.123.123.123이므로 211.123.123.123:1000 또는 1000~1010까지의 숫자를 입력하면 C호스트가 192.168.1.100:22라는 주소를 입력한 것과 동일하게 접속이 가능하게 됩니다.

이처럼 외부에서 접속 시 어떤 호스트의 어떤 서비스포트에 연결을 해주는지 설정을 해주는 것을 포트포워딩이라 합니다.

결론…

포트포워딩의 필요성 때에 왜 포트포워딩이 필요한가에 대해서도 작성 했지만 또다른 생각을 할 수가 있습니다.

“그럼 그냥 A호스트, B호스트, C호스트의 SSH포트를 다르게 주면안돼?”

답이 될 수 있습니다. 하지만 이것은 내부에서 사용할때 포트번호를 바꿔 주는 것이지 외부에서는 알 수가 없죠

결국에는 들어오는 경로가 있으면 목적지 경로도 설정을 해줘야하니 포트번호가 바뀌면 포트포워딩 설정을 다시 해야됩니다.

그리고 된다고 하더라도 각각의 호스트마다 접속을 해서 포트번호를 바꾸기에는 여간 귀찮은 일이 아닙니다.

그럴바엔 관리가 가능한 공유기에서 특정호스트들의 외부포트번호를 설정해주기만 하면 되거든요

위처럼 특정 호스트의 IP와 서비스포트로 전달해 주기위해 필요한 기능포트 포워딩이라는 기능입니다.

출처 - https://wooooon.tistory.com/4

댓글남기기