IT 이야기

포트포워딩에 대하여

트리맨스 2020. 3. 7. 14:10
반응형

 

서론 : 공유기의 보급에 대하여


스마트폰이 보급되기 이전에는 개인 인터넷 사용자가 집에 공유기를 두는 것은 흔치 않았다. 왜나하면 PC의 가격도 비쌌을 뿐더러, 인터넷이 지원되는 전자 기기가 1대를 넘는 경우가 드물었기 때문이다. 하지만 2008년 애플에서 아이폰3G를 출시하고 (한국 출시는 2009년) 그에 맞서 삼성이 갤럭시S를 출시함으로서 그 때를 기점으로 스마트폰의 보급률이 빠른 속도로 늘어갔다. 한국의 빠른 인터넷 통신 속도, 삼성과 애플 및 다른 제조사들의 공격적인 마케팅으로 인해 스마트폰의 보급은 크게 증가했으나, 헨드폰의 요금제도 빠르게 올라갔다. 특히 무선 인터넷의 이용에 대한 대가로 많은 돈을 통신사에 지불해야 했는데, 이 요금을 크게 줄일 수 있는 기술이 '와이파이' 였다. 와이파이를 이용해 기존 유선 인터넷 망을 사용함으로서, 와이파이가 연결되어 있는 동안 무료 인터넷을 사용할 수 있었다. 이것으로 인해 각 가정마다 와이파이 공유기 보급이 빠르게 이루어졌다. 

 

하지만 와이파이 공유기가 들어서면서 기존의 인터넷 연결에 비해 약간 달라진 인터넷 환경으로 인해 필자는 약간의 어려움을 겪어야 했다. 웹 서버를 열때 기존에는 포트번호와 아이피주소만 맞추면 서버를 열 수 있었으나, 공유기를 사용한 이상 '포트포워딩' 이라는 기능을 알아야 했다. 포트포워딩의 정의와 사용법에 대해 간단히 알아 볼려고 한다.

 

 

포트포워딩?


자신의 집 주소를 예로 들어보자. 내가 택배를 시켰는데, 택배기사가 우리집에 올려면 무엇을 알아야 할까? 당연한 질문이지만, 집 주소를 알아야 한다. 공유기를 쓰지 않았던 시절에는 비유하자면 '단독주택' 을 이용하는 것이랑 비슷하다. 아파트처럼 동이나 호수를 알지 못해도 집의 위치만 알면 택배를 받을 수 있다. 하지만 공유기는 다르다. 예를 들어 '주공아파트 101동' 이라고 하면, 정확한 집의 주소를 알 수 없기 때문에 택배기사는 배달을 할 수 없다. 그렇기 때문에, 정확한 주문자의 주소를 알아야 한다. 이 정확한 주소를 알려주는 기능이 '포트포워딩' 이다. 

 

아이피 타임 공유기를 예시로 하자. 공유기랑 PC랑 연결하고나서, PC 자체의 아이피 주소를 확인하면 192.168.0.X 의 주소(A)가 나올 것이다. 하지만 네이버나 구글에서 아이피 주소를 검색하면, 전혀 다른 주소(B)가 나올 것이다. A의 값을 갖는 주소는 공유기 내부 주소이다. 그리고 포털 사이트에서 검색한 B 주소는 공유기 외부 주소이다. 포트포워딩은 이 외부 주소와 내부 주소를 이어주는 역할을 한다. 그렇다면 사용은 어떻게 하는가?

 

 

포트포워딩 하는 법


아이피 타임 공유기를 예시로 포트포워딩 방법에 대해 설명하겠다.

 

 

처음으로, 포트포워딩을 할 기기를 선택해야 한다. 

 

아이피타임 설정창 - 고급 설정 - 내부네트워크 설정 에 접속하면, 무슨 기기가 접속되어 있는지 알 수 있다. 포트포워딩 할 기기와 아이피 주소를 기억해둔다.

 

 

포트포워딩을 시작한다. 고급설정 - NAT/라우터 관리 - 포트포워드 설정 에서 포트포워딩을 할 수 있다.

규칙이름 - 보기 편한 이름으로 설정

내부 IP주소 - 앞에서 무슨 기기를 포트포워딩 할건지 봤다. 그 아이피 주소를 입력한다.

프로토콜 - 특별한 경우가 아니면 TCP로 설정한다.

외부포트 - 공유기 외부에서 접속할 포트

내부포트 - 공유기 내부에서 접속할 포트

 

 

이러한 방식으로 입력한다.

 

 

규칙을 추가하면 위에 사진처럼 규칙이 추가가 된다.

 

포트포워딩은 외부와 내부를 이어주는 약속 같은 것이다. 내부포트로 서버를 열어 놓아도, 외부에서 접근이 불가능하면 내부에서만 쓸 수 있는 것이다. 위에서 설정한 포트포워딩은 외부 10000번째 포트로 접속을 하면, 내부 10000번째 포트로 접속이 이어지게 하는 약속을 정한 것이다.

 

 

예시)


공유기랑 연결된 PC 에서 Flask를 이용하여 서버를 열었다. 서버의 포트는 3000번이다. ipconfig를 이용해서 아이피 주소를 확인하니 192.168.0.20 으로 나온다. 네이버에 아이피 주소를 검색하니 117.123.123.123 이라고 나왔다. 포트포워딩 설정은 192.168.0.20에 대하여 외부포트 2000번, 내부포트 3000번으로 열어 두었다. 이 때, 스마트폰의 데이터를 이용하여 이 서버에 접속할 때, 주소 입력을 어떻게 해야 하는가?

.

.

.

.

.

.

.

.

.

.

답은 117.123.123.123:2000 으로 입력하면 된다. 공유기 외부 아이피는 117.123.123.123 이고,포트포워딩으로 외부포트 2000번, 내부포트 3000번을 설정했기 때문에 위와 같이 입력하면 된다.

 

포트포워딩 시 예상치 못한 문제 발생 시


마지막으로, 드물지만 인터넷 공급 사업자 또는 서버 관리자가 일부러 특정 포트를 막아놓는 경우도 있다. 예를 들면 80번 포트, 22번 포트 등이 있다. 포트의 번호는 0~65535 (16비트 방식) 까지 있으니, 불가피한 경우가 아니라면 사람들이 쉽게 예측할 수 없는 포트로 하는 것을 권장한다. 포트 마다 어떠한 방식으로 인터넷을 연결할 건지는 INAN에서 권고한 사항이 있다. 강제적인 사항은 아니나, 암묵적인 룰 같은 것이라서 대부분의 인터넷 사업자는 이 권고사항을 따르고 있다. 아래의 사이트에 들어가서 포트포워딩을 정상적으로 했는데 뭔가 충돌하는 듯한 문제가 생긴다면, 아래 사이트에 접속해서 포트 번호를 확인해보자.

 

https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml

 

Service Name and Transport Protocol Port Number Registry

mpm 45 tcp Message Processing Module [recv]

www.iana.org

 

 

간단한 포트포워딩 설정으로 공유기가 있어도 서버를 외부랑 연결시킬 수 있다. 포트포워딩에 대해 간단한 정의와 사용법을 알아 보았다. 타 회사에서 제작한 공유기도 포트포워딩 설정이 있다. 타 공유기에 대한 포트포워딩 방법은 제조사에 문의하거나 설정 페이지에서 찾기를 바란다.

 

 

반응형