포트 포워딩

하나의 IP 주소와 포트 번호 결합의 통신 요청을 다른 곳으로 넘겨주는 네트워크 주소 변환(NAT)의 응용.

 

"네트워크 구성 볼려고 왔는데, 갑자기 웬 포트포워딩?"

 

 내가 VirtualBox로 서버 환경을 구성한 이유부터 들자면, 회사에서는 외부로 유출되면 안되는 매우 중요한 자료가 많기 때문에, 대부분 폐쇄망을 사용한다. 그렇다고 한낱 인턴따리에게 교육을 위한 서버나 DB 한 곳을 내어줄 리도 만무하다. 그래서 VirtualBox를 사용하여 WAS와 DB 서버를 만들려고 했는데, 회사망의 특성상 아이피를 무제한으로 할당 받아 쓸 수도 없으니, 나의 VirtualBox 네트워크 방식을 'NAT 네트워크'로 채택할 수 밖에 없었다.

 

"아니 그래서, 포트 포워딩이 뭐냐고?"

 

  위에 설명해놓은 것처럼 정의로 설명하면 쉽게 와닿지 않을 것이다. 그래서 예시로 보이려 하는데, 예시로 보이기 이전에 공인IP사설IP에 대해 알아보자.  공인IP와 사설IP에 대한 정의 및 차이점은 아래 블로그를 많이 참고했다.

https://velog.io/@hidaehyunlee/%EA%B3%B5%EC%9D%B8Public-%EC%82%AC%EC%84%A4Private-IP%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90

 

공인(Public) && 사설(Private) IP의 차이점

💻➡🌏 : 사설 IP를 할당받은 스마트폰 혹은 개인 PC가 데이터 패킷을 인터넷으로 전송하면, 라우터(공유기)가 해당 사설 IP를 공인 IP로 바꿔서 전송한다.

velog.io

공인IP (Public IP)

인터넷 사용자의 로컬 네트워크를 식별하기 위해 ISP(인터넷 서비스 공급자 (ex) KT, SKT, LG유플러스 등)가 제공하는 IP 주소를 말한다. 쉽게 말해, 우리가 돈을 주고 구입하는 IP 라고 생각하면 된다. 공용 iP 주소라고도 불리며, 외부에 공개되어 있는 IP 주소이고, 외부 인터넷에서 실제로 식별하는 '주소'의 개념이다.

  • 전세계에서 유일한 IP 주소
  • 외부에 공개되어 있기 때문에 인터넷에 연결된 다른 PC로부터의 접근이 가능 
    • 때문에, 공인 IP 주소를 사용한다면, 방화벽 등의 보안 프로그램을 설치할 필요가 있다.

 

사설 IP (Private IP)

: 일반 가정 또는 회사 내부 등에 할당된 네트워크의 IP 주소. 로컬 IP, 가상 IP라고도 한다. IPv4의 주소 부족으로 인해 서브넷팅된 IP이기 때문에 라우터에 의해 로컬 네트워크 상의 PC나 장치에 할당된다.

  • 내부 네트워크에서 별도로 사용하는 것이기 때문에 타 네트워크의 IP주소와 동일할 수 있다.
    • ex) 회사A의 한 PC : 10.140.2.115 / 회사B의 한 PC : 10.140.2.115
      => 이런 케이스도 가능하며, 같은 IP 써도 충돌이 나지 않는다.
  • 해당 IP 자체만으로는 외부에서 접근이 불가능하다.
    • 포트포워딩을 활용하면 외부에서 접근이 가능하다! (물론 외부를 차단하는 시스템이 없는 경우에만...!)
  • 사설IP의 주소대역IPv4 프로토콜의 규칙으로 생각하면 된다. 이 대역은 공인IP로 사용하지 않고, 사설 IP로만 사용하기로 약속한 것이다.
    • Class A : 10.0.0.0 ~ 10.255.255.255
    • Class B : 172.16.0.0 ~ 172.31.255.255
    • Class C : 192.168.0.0 ~ 192.168.255.255

 

여기까지 내 글을 읽어준 당신, 대단하다. 이런 똥글을 보면서까지 네트워크에 대해 배우려 하는 당신의 그 열정을 감히 칭찬하고 응원합니다!

 

그러니까, 지금까지의 요점은 이렇다. 당신이 만약 사설IP로 이루어진 시스템을 만들 때, 외부 인터넷 또는 다른 공인 IP를 가지고 있는 라우터에서 접근을 원한다면, 포트포워딩을 활용해야 한다는 것이다.

 

자, 그럼 본격적으로 VirtualBox에서 포트포워딩을 사용하는 방법에 대해 알아보자.

 

1. [VirtualBox 관리자] - [파일] - [환경설정]

VirtualBox 초기 화면

 

2. [VirtualBox - 환경설정] - [네트워크 탭] - [새 NAT 네트워크 추가]

Virtualbox 네트워크 설정 화면

 

3. [NAT 네트워크에 추가된 'NAT 네트워크'] 더블클릭 - [아래 화면]에서 '네트워크 CIDR(C)' 항목 VirtualBox 라우터의 고정IP(개인 설정에 따라 다름) 로 수정. - [포트 포워딩] 클릭

NAT 네트워크 정보 화면

 

4. [핵심!!] [포트 포워딩 규칙] - [새 포트포워딩 규칙 추가] - 아래 항목 적절하게 수정 - 확인

[포트 포워딩] 클릭시 나타나는 [포트 포워딩 규칙] 화면

  • 호스트 IP : 당신이 설정한 VirtualBox 라우터의 고정 IP
  • 호스트 포트 : 외부에서 이용하려는 서비스의 포트
  • 게스트 IP : 나의 VirtualBox 환경에서 가상머신의 고정 IP
  • 게스트 포트 : 내가 지정해놓은 서비스의 포트

 

5. 네트워크 설정이 필요한 가상머신을 선택하고 마우스 오른쪽 클릭 - [설정] - [네트워크 탭]

네트워크 어댑터를 'NAT 네트워크'로 설정하여 준다.

 

 

6. 포트포워딩이 성공적으로 설정되었는지 확인해보기 위해, 'SSH' 를 실행해보자!

Windows10(Host PC)의 PowerShell 실행 화면

  • ssh '리눅스의 유저명'@'게스트PC(가상머신)의 IP주소' -p 22
    => ssh: 윈도우10의 'openssh' 서비스를 실행하겠다.
    => -p '포트' : 해당 '포트'로 연결하는 ssh의 옵션

다음과 같이 리눅스의 쉘 입력 화면( [junho@chazwindrewgvir ~]$ 부분)처럼 뜬다면, SSH 연결에 성공한 것이다.

즉, 10.0.2.15:22 포트에 대한 포트포워딩이 성공한 것이다!!

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기