포트포워딩과 DHCP
공유기의 구조
공유기에 공인ip가 있고, 그 공유기에서 여러개의 내부ip를 라즈베리파이, 노트북, 스마트폰 등에 할당한다.
외부에서는 외부ip로 접근을 해야하고, 내부에서는 내부ip로 서로에게 접근할 수 있다.
DHCP IP 고정할당
공유기에 연결된 장비들의 내부ip는 모두 공유기에서 할당하는데 이러한 일련의 작업들은 공유기의 DHCP(Dynamic Host Configuration Protocol)가 맡고 있다.
그리고 비어있는 내부ip에 임의로 ip를 할당하도록 설정되어있는데, 그때 그때 다른 ip가 할당되기 때문에 매번 찾아서 접속하기는 매우 불편하다. 이때 공유기 설정 페이지에서 DHCP 고정할당을 해줄 수 있다.
(유플러스 공유기는 웹브라우저에 192.168.219.1을 입력하면 관리자모드로 접속할 수 있다 or cmd 창에서 ipconfig라는 명령어를 통해 기본게이트웨이 란에서 확인할 수도 있다)
이제 라즈베리파이에 접속할 때마다 ip주소가 바뀌던 것과 달리 항상 192.168.219.106이라는 동일한 ip주소를 할당받게 되었다.
포트포워딩
ip도 고정적으로 할당하였기 때문에 이제 라즈베리파이와 동일한 네트워크 망에서는 언제든 손쉽게 접속할 수 있게 되었다. 그렇지만 카페, 학교 등 외부 네트워트 환경에선 내부ip만으로 라즈베리파이로 접속 할 수 없다. 외부에서 원격으로 라즈베리파이에 접속하기 위해선 포트포워딩이라는 작업이 필요하다. 외부에서 라즈베리파이(내부pc)까지 접속하기 위해서 길을 열어주는 것이다.
우리가 인터넷을 통해 다른 기기에 접속하기 위해서는 집 주소를 사용하듯 온라인 상에서의 공인 ip주소를 발급받는다. 그리고 공인 ip를 입력받는 공유기에 기기들을 추가로 연결하여 내부 네트워크를 구축하게 되는데, 이때 공유기에서 각 기기들에 사설 ip를 별도로 발급하게 된다.
(라즈베리파이에 원격접속할 때 사용한 ip)
결국 결국 외부 네트워크에서 내부 네트워크의 기기에 접속하기 위해서는 공유기의 공인IP를 알고있어야하는데, 또 공인IP만 알고있다고 해서 공유기에 연결된 수많은 기기 중 원하는 기기만 골라 접속할 수는 없다.
이런 문제점을 해결하기 위해 원하는 기기의 사설ip와 포트를 공인 ip의 포트와 연결시켜주는데 이를 포트포워딩이라고 한다.
포트포워딩 설정
1. ssh의 경우 22번 포트가 기본 포트이다. 외부포트(서비스포트)는 임의의 숫자를 넣는다. ip 주소는 라즈베리파이에 고정으로 할당해준 ip를 입력했다.
2. vnc의 경우 5900번 포트가 기본 내부 포트이며 외부포트도 임의로 설정해주었다.
외부에서 접속하기
*내부가 아닌 외부 네트워크에서 접속해야한다고 한다. 그리고 사설 ip로는 접속할 수 없다.
SSH 접속
Host Name 칸에 공인 ip, Port란에 외부포트 12345을 입력한다.
VNC 접속
공인ip+ :1234 를 입력한다.
-아직 시도해보지 않아서 성공할지 아직 모르겠다.
++ 성공
간단하게 정리
매번 라즈베리에 할당되는 내부 ip가 변경되는 어려움이 있었지만, dhcp를 통해 끝이 106인 주소로 고정할당에 성공했다. 공인ipㅡ라즈베리ip 가 연결되어있기에, 외부에서 공인ip로 라즈베리에 접속이 가능하다.
공인 ip는 집 공유기의 ip이며, 물리적인 연결 없이도 접속 가능함을 의미힌다.
이를 위해 포트포워딩이라는 작업을 해주었다. 외부에서 106 ip주소로 들어간다고 쳐보자.
22번 포트로(ssh) 접속할 때 사용할 외부포트를 지정해주었고, 5900포트로(vnc) 접속할 때 사용할 외부포트도 임의로 지정해주었다.
이제 외부에서는 공인ip주소와, 지정해준 외부포트를 동시에 사용해 ssh와 vnc에 접속할 수 있다.
ssh는 putty로 이용할 수 있다.