Network

Part 5. Port forwarding

cwchoiit 2023. 10. 2. 17:57
728x90
반응형
SMALL
728x90
반응형
SMALL

Port

호스트에는 포트가 65535개가 있다. 그리고 이 포트들을 잘 분배해야 한다.

만약 내가 내 PC에 웹 서버를 하나 만들었을 때 서버에 접속하려면 내 PC의 IP와 포트번호가 필요하다. 

왜냐하면 하나의 호스트에 여러 서버가 기동 되어 있을 수 있기 때문에 정확한 주소가 필요하다.

 

그리고 이럴 때 포트번호가 사용된다. 쉽게 설명해 보자면 IP는 아파트의 동, 포트번호는 호수라고 생각해 보면 좀 더 와닿을까?

그리고 이 포트는 일반적으로 사용되는 번호가 있는데 이를 Well known port라고 한다.

대표적인 http - 80, ssh - 22와 같은 포트 말이다.

이렇게 어떤 약속처럼 여겨진 포트를 잘 알려진 포트라고 하며 0 - 1023번까지 있다.

 

1024 - 65535까지의 포트는 사용자가 자유로이 설정할 수 있는 포트라고 보면 되는데 이 여유 포트를 통해 포트 포워딩을 하는 방법을 알아보고 포트 포워딩이 무엇인지도 알아보자.

 

 

Port forwarding

포트 포워딩이란 외부에서 특정 주소를 접속했을 때 주소의 IP와 포트를 입력하는데 (예를 들면 59.29.14.178:8888)이때 이 요청을 받은 공유기가 8888과 매핑된 주소와 포트를 찾아 요청을 포워딩해주는 것을 포트 포워딩이라고 한다.

 

공유기 얘기가 나왔으니까 아래 그림을 봐보자.

이러한 네트워크 구조를 가지고 있을 때, 192.168.0.4의 주소를 가진 호스트가 웹 서버를 기동 중이라고 가정해 보자.

그리고 그 웹 서버를 8088번 포트로 실행중일 때 외부에서 이 웹 서버에 접근하기 위해서 어떻게 해야 할까? 192.168.0.3은 사설 IP이기 때문에 외부에서 직접 접근이 불가능하므로 외부에서도 접근 가능한 공용 IP로 요청해야 한다.

그렇다고 마냥 59.29.14.178로 접근한다고 하면 원하는 결과를 얻진 못할 거다. 그 네트워크를 통해 들어와서 '어떤 호스트에 연결할 건데?'라는 질문에 대답하지 못할 테니까.

그렇기 때문에 포트포워딩이 필요하다. 즉 약속을 하는 것이다. 예를 들어 59.29.14.178:8088로 접속하면 192.168.0.4:8088로 접속할 수 있도록.

 

당연히 외부 포트와 내부 포트는 달라질 수 있다. 외부 포트는 59.29.14.178:8088을 의미하고 내부 포트는 192.168.0.4:8088을 의미하는데 외부 포트를 8000으로 사용해도, 8888로 사용해도 상관없다. 그 포트가 원하는 8088로 매핑만 되어 있다면.

 

그리고 이 포트 포워딩은 간단하게 공유기 아이피로 접속해서 설정해 줄 수 있다.

공유기 아이피를 브라우저에 쳐서 공유기에 접속하면 아래 화면처럼 포트 포워딩을 해줄 수 있다.

내부 IP 주소에는 원하는 호스트의 사설 IP를 작성하고, 외부포트와 내부포트를 설정해 주자. 외부포트는 위에서 말한 것처럼 비어있는 어떤 포트라도 상관없고 내부 포트는 원하는 웹 서버가 사용하고 있는 포트를 입력해 주면 된다.

 

 

728x90
반응형
LIST

'Network' 카테고리의 다른 글

Part 6. Dynamic VS Static IP address  (0) 2023.10.02
Part 4. Router  (0) 2023.10.02
Part 3. DNS Server 동작 원리  (0) 2023.10.02
Part 2. hosts file  (0) 2023.10.02
Part 1. DNS / DNS Server  (0) 2023.10.02