3편에서는 외부에서 보다 간편하게 접속하기 위해서 포트포워딩과 DDNS 설정하는 내용을 썼습니다.
여기서 말하는 포트포워딩과 DDNS이 무엇일까요? 일단 ip체계와, 포트 그리고 DNS에 대해 설명, 포트포워딩과 DDNS에 대해 설명한 다음에 iptime 공유기를 통해 설정하는 방법을 설명하겠습니다.
IP(Internet Protocol)
ip는 컴퓨터(호스트)가 네트워크에 연결될때, 발급받는 주소로 우편번호 개념과 비슷합니다. ip는 주로 ipv4 방식을 채택합니다.
위의 방식 ipv4 방식인데, 각 각의 숫자는 2의 8제곱으로 0~255중 숫자 하나를 선택할 수 있습니다.총 4개 있으니깐, ip주소를 만들 수 있는 경우 수는 (2^(8*4))으로 대략 43억개 이다. 만들 수 있는 ip가 많아 보이지만, 현재 모든 컴퓨터들은 네트워크 없이 살 수 없습니다. 현 인구가 80억인데, 43억개면 터무니 적습니다. 해당 문제에 대해 나온 고안은 서브넷(subnet) 개념입니다. 서브넷 즉 부분망으로, IP주소에서 네트워크 영역을 부분적으로 나눈 망이라는 뜻입니다.
설명을 하면, 위의 ip들은 사설 ip로 사용하고 나머지 ip는 공인 ip로 사용하는 것이다. 사설ip은 가정집에 있는 공유기 같이, 작은 규모의 집단에서 사용하는 ip로써, 두 가정집에 iptime 공유기가 있을 때, 각각의 가정집은 인터넷을 사용할때, 192.168.0.로 시작하는 동일한 ip를 사용할 것이다. 이렇게 사용하면, 각각의 가정집에 동일한 ip를 사용할 수 있게 되는데, 이때 사용되는 ip가 공인 ip이다. 공인 ip은 인터넷 상에서 서로 다른 pc끼리 통신하기 위해 필요한 ip로서, 공인 ip하나는 이 세상에 두개 이상이 아닌 무조건 한개만 존재 하게 된다. 사설ip와 공인ip가 공유기에서 어떻게 쓰이냐면, 내 PC로 네이버에 요청을 보낼 때와 네이버에서 내 pc로 응답하는 경우를 예를 들어 설명하겠습니다.
내 pc(주소: 192.168.0.172)가 iptime 공유기(192.168.0.1,게이트웨이)로 네이버에게 보낼 데이터를 보내줍니다. 데이터를 받은 공유기는 주소를 64.202.42.8로 해서 네이버 서버(223.130.200.107)에게 데이터를 보내집니다. 반대로 네이버 서버가 내 pc로 데이터를 보낼 때, 내 PC로 보낼 데이터를 iptime 공유기(64.202.42.8)로 보냅니다. 데이터를 받은 iptime 공유기는 192.168.0.1주소로 내 pc에게 데이터를 보내줍니다. 서버가 아닌 대부분의 컴퓨터는 위와 같은 방식으로 네트워크를 구성하게 됩니다.
포트(Port 또는 Port-Number)
Port는 내 컴퓨터(호스트)안에서 여러 프로세스(실행된 프로그램)들이 실행 되고 있을 때, 각 프로세스를 구분하기 위해 사용되는 번호입니다. 컴퓨터는 컴퓨터끼리 연결(작게 보면 컴퓨터 끼리 연결도 결국은 프로세스끼리 연결) 즉 인터넷 뿐만아니라, 하나의 컴퓨터 안의 프로세스 끼리 데이터를 주고 받는 네트워크를 구축합니다. ip주소 처럼 프로세스 끼리도 구분을 해주어야 되는 데, 이때, port로 구분하게 됩니다. 대표적인 port번호로는 80이 있는데, HTTP을 의미합니다. 실제로 우리가 www.naver.com로 입력하면 브라우저내에서는 223.130.200.107:80으로 변경됩니다. 우리가 좀 있다 설정할 ssh의 포트번호는 22 입니다.
DNS(Domain-Name-System)
DNS은 도메인 네임 시스템으로 도메인을 ip주소로 바꾸어 주는 시스템입니다. 여기서 Domain은 www.naver.com 같은 URL 주소입니다. 포트 설명에서 나오긴 했는데, www.naver.com로 접속할시, 해당 주소는 223.130.200.107으로 바뀌어서 연결됩니다. 번거롭게 ip를 쓰지 않고, 도메인을 Ip로 바꾸어 쓰는 이유는 무엇일까? 그 이유는 사람들이 편하게 쓰기 위해서 입니다. 컴퓨터 효율면에서 볼때, ip만 쓰는 것이 좋습니다. 하지만 사람은 해당 ip 숫자을 기억하기 어려울 텐데, 그에 반해 도메인은 사람들이 기억하기 쉬운 글자이기 때문에 도메인을 사용합니다.
포트포워딩(Port-Forwarding)
포트포워딩은 포트(Port)와 포워딩(Forwarding)의 합성어, 직역 포트를 발송한다 라는 의미 입니다. 포트포워딩은 주로 여러 컴퓨터가 연결된 공유기에 있는 기능 입니다. 포트포워딩은 언제 쓰이냐면, 외부에 있는 제가 집에 있는 컴퓨터에 데이터를 전송하고 싶을 때, 사용하게 됩니다. 제가 살고 있는 집에 1번 pc와 2번 pc가 공유기에 연결 되어 있습니다. 근데 각각 컴퓨터는 동일한 port를 사용하는 각기 다른 프로그램이 실행중입니다. 저는 1번 pc에 연결하고자 ip주소와 포트번호를 입력해서 데이터를 보냈지만, 데이터가 보내지지 않았습니다. 그 이유는 ip주소는 공유기의 공인 ip주소여서 각 pc의 ip를 구분할 수 없고, 포트 또한 같은 번호를 사용하게 되어서 구분할 수 없게 됩니다. 이때 공유기에서 포트포워딩 설정을 하면 해당 포트는 1번 pc로만 가게 할 수 있습니다.
DDNS(Dynamic Domain-Name-System)
DDNS(즉 Dynamic Domain-Name-System)을 직역하면, 동적 DNS 라는 뜻입니다. 공유기는 DNS기능을 가지고 있습니다. 그래서 해당 공유기로 접속할 떄, ip뿐만아니라, 직접 설정한 도메인을 통해서도 접속 할 수 있습니다. 여기서 DNS기능은 공유기가 가정에서 쓰일 때, 문제가 생깁니다. 가정집에 있는 공유기는 서버와 같이 공인 ip를 발급 받습니다. 하지만 서버와 차이점은 일정 시간이 지나면 가정내 공인 ip는 다른 공인 ip로 변경 될 수 있다는 점입니다. SKT, KT, LG등 같은 ISP(Internet Service Provider )에서 효율을 위해 가정내 공인 ip주소를 변경하게 됩니다. 만약 도메인으로 공유기에 접속할 시, 변경되지 않은 공인 ip주소로 변경되면, 공유기에 접속 할 수 없게 됩니다. 그래서 나온 기능이 DDNS로, DDNS는 동적으로 ip주소가 변경되면 변경된 ip을 도메인에 반영하게 해줍니다.
포트포워딩과 DDNS 설정하기
해당 기능은 iptime 공유기를 통해 설명합니다. 먼저 iptime의 기본게이트웨이 192.168.0.1로 연결해줍니다.
그러면 다음과 같은 화면이 나옵니다. 여기서 관리도구에 들어갑니다.
각각 포트포워드, DDNS 설정이 보입니다. 포트포워딩 설정 부터 들어 가겠습니다.
ssh 같은 경우 위와 같이 설정 해주면 됩니다. 여기서 규칙이름은 아무 이름이나 하시면 됩니다. 외부포트와 내부포트로 나뉘는 이유는 보안 차원으로 합니다. 왜냐하면 HTTP, SSH 같은 대중적인 port 번호는 해커의 위험에 노출되기 쉽습니다. 그래서 외부에서 접속하는 포트 번호와 내부포트가 다르게 합니다. ssh뿐만 아니라 서버에서 쓰는 다른 포트도 위와 같이 하시면 됩니다.
그 다음은 DDNS 설정을 하겠습니다.
호스트 이름은 외부에서 접속할 도메인 이름으로 숫자와 영어를 섞어 쓰면 좋습니다. 사용자 ip는 자신이 쓰는 이메일 주소 넣으면 됩니다.
그러면 포트포워딩과 DDNS 설정은 완료 됐습니다.
미흡한 점이나 잘못된 점을 주시면 감사합니다. ^^
'서버' 카테고리의 다른 글
docker 명령어 모음 (0) | 2022.06.17 |
---|---|
개인용 서버 만들기 5편(딥러닝 서버 구축 1편) (0) | 2022.06.17 |
개인용 서버 만들기 4편(code-server 구축) (0) | 2022.06.04 |
개인용 서버 만들기 2편(우분투 설치) (1) | 2022.05.27 |
개인용 서버 만들기 1편 (하드웨어 구축) (4) | 2022.05.27 |