서버를 구축하거나, 서비스를 제공할 때에 공유기를 거치게 되면 공인 및 외부 IP와 사실 및 내부 IP끼리 이어주는 포트 포워딩 작업이 필요합니다.
지금부터 포트 포워딩이 무엇이고, 왜 필요한지에 대해서 다뤄보겠습니다.
사설 네트워크
우리가 접속하는 Internet은 공유기를 거쳐 내부 네트워크로 연결되어있는 device에 연결됩니다.
따라서 게이트웨이의 외부망과 그 반대에 있는 내부망에 있는 호스트와 연결하기 위해서는 서로 통신을 할 수 있도록 특정한 포트를 개방시켜주어야 합니다.
이런 사설 네트워크로는 10.x.x.x대역, 172.16~31.x.x대역, 192.168.x.x대역 IP를 사용하고 있습니다.
위와 같은 상황에서, A라는 device는 192.168.0.1이라는 사설 IP를 가지고 있습니다.
또한, 이 IP는 22번, 80번, 8080번처럼 자신만의 포트를 가지고 있습니다.
만약 인터넷에서 192.168.0.1이라는 IP에 접근하려고 하여도, 이 둘은 서로 통신할 수 없습니다.
그 이유는 192.168.x.x인 사설 IP이기 때문에, 내부망에서만 해당 IP로 연결할 수 있기 때문입니다.
가장 쉬운 예시로 192.168.0.1을 아파트의 동으로 비교할 수 있습니다.
전국에 101동이라는 아파트는 굉장히 많기 때문에, '서울시 용산구 A아파트'와 같은 방식으로 더 명시적으로 알 수 있는 정보가 필요합니다.
그것이 바로 공인 IP인 123.123.123.123입니다.
그러면 인터넷이 123.123.123.123이라는 IP에 접근하면 B device와 통신할 수 있을까요?
이는 불가능합니다.
그 이유는 123.123.123.123이라는 IP는 A, B, C, D라는 device가 나누어 사용하고 있기 때문에 123.123.123.123에게 데이터를 보내도 A, B, C, D 중에 누구에게 가야할 지 알 수 없기 때문입니다.
포트 포워딩
위와 같은 상황을 해결하기 위해서 포트 포워딩을 사용합니다.
예시로, 인터넷이 공유기를 거쳐 B라는 device의 80번 포트에 데이터를 전송하고 싶다면
123.123.123.123:80으로 접근하면 192.168.0.2:80으로 바로 연결될 수 있도록 해주는 작업이 필요한데 이를 포트 포워딩이라고 합니다.
따라서 아래와 같은 방식도 가능해지죠.
123.123.123.123:1000 => 192.168.0.1:80
123.123.123.123:1001 => 192.168.0.2:80
123.123.123.123:1002 => 192.168.0.3:80
123.123.123.123:1003 => 192.168.0.4:80
이 때, 포트포워딩은 반드시 123.123.123.123:80으로 접근하였을 때 동일한 80번 포트가 아닌 8080번 포트 등 다른 포트로 연결(bypass)하는 것도 가능합니다.
또한, 하나의 포트는 하나의 포워딩만 가능합니다.
이런 포트포워딩은 별도의 작업이 필요하기 때문에 공유기 관리자 페이지에서 포트포워딩을 진행하는 절차가 필요합니다.
'컴퓨터 네트워크' 카테고리의 다른 글
[Network] IP 프로토콜과 TCP, UDP (0) | 2021.09.25 |
---|