자주 보는 단어가 바로 이 포트포워딩이다. 천천히 개념부터 정리해보도록 하겠다.
몇몇 사이트에서는 내가 현재 접속하고 있는 ip를 보여준다. 혹은 내가 직접 ip adress 같은 사이트에 가서 확인해볼 수 있다. 이때 ip 주소와, cmd의 ipconfig나 terminal의 ip a 같은 명령어로 확인해본 주소가 서로 다름을 알 수 있다.
아마 내부 터미널에서 확인한 주소는 192.168.xx.x 형태일것이다. 이는 공유기의 내부, 외부 아이피에서 오는 차이이다.
우리는 ISP로부터 인터넷을 공급받는데, ISP는 우리와 단 하나의 회선만을 계약했다.
예를 들어 내 아이피가 215.699.12.48 이라고 한다면 이 ip 주소 딱 하나만 받은것이다.
그렇다면, 인터넷에 접근해야하는 pc가 여러대라면 어떨까? 그떄마다 새로운 ip를 할당받기에는 돈이 너무 많이 들어간다. 따라서 우리는 공유기라는 장치를 이용해사설 네트워크를 구축하는것이다. 이때 사용하는거이 192.168로 시작되는 사설네트워크이다.
쉽게 비유하자면, 각 pc, 스마트폰, 노트북은 공유기라는 성 안에 살고있으며, 모든 물건(통신)은 공유기를 통해 받고 공유기를 통해 내보내는것이다.
위 그림처럼 외부 영역에서 내부영역으로 들어올때는 무조건 공유기를 지나야한다.
리눅스가 설치된 서버컴퓨터에서 웹서버를 열었다고 가정하자.
이 서버컴퓨터는 내부아이피로 192.168.35.211 을 받았다고하자. 이제 같은 내부망에 존재하는 네트워크에서는 192.168.35.211에 접근하면 index.html에 접근할 수 있다.
하지만 외부망(이를 집에서 쉽게 확인해보려면 스마트폰 데이터로 접속해보자)으로 아 주소를 입력하면 아무것도 안뜨게된다. 그럼 라우터의 ip를 입력하면 어떨까? 그래도 결과는 똑같다.
그것은 바로 라우터가 이 연결을 어느 포트를 통해 어떤 컴퓨터로 연결해줄지 결정하지 못하기 떄문이다.
이때 필요한것이 포트포워딩이다.
기기마다 다 다르기에 생략하겠다. 자신의 router 회사명 + port forwarding이라고 치면 잔뜩 나온다
참고로 학교나 회사 기숙사등에 살고있으면 이 기능이 대부분 막혀있는 경우가 많다. 보안문제라고 한다.
가끔 포트포워딩이 잘 안되거나하면 dmz를 설정하거나 twin ip를 쓰라고 권장하는 경우가 종종 있다.
DMZ란 쉽게 말해서 모든 포트를 다 열어버린다는 뜻이다. 공인 ip의 모든 포트를 지정된 ip주소로 연결한다는 뜻이다.
설명만 들어도 편리함과 동시에 엄청 위험해보이는 그런 방식이다.
Twin ip의 경우 superDMZ라고도 부르며, Mac Address를 기준으로 공인 IP주소를 직접 부여해주는 기술이다.
지정된 MAC 주소에 NAT(네트워크 주소 변환)을 이용하여 공인 IP로 변환되게 하고, 동시에 서버에 할당받는것이다.
이글을 참고하면 좋다.
다음 글 에서는 실제로 포트포워딩을 해보면서 알아보도록 하겠다.