외부에서 홈서버(NAS) 접속하기. (공인IP,포트포워딩,DNS 연결 등등)

외부에서 홈서버(NAS) 접속하기. (공인IP,포트포워딩,DNS 연결 등등)

안녕하세요. 달소입니다.

오랜만에 헤놀로지 사용가이드입니다.

헤놀로지 설치후에 아마 외부에서 어떻게 접속하실지 고민이 많으실텐데요. 입문자 분들께서 NAS는 구축했으나 방법에 대해서 모르시는분들이 혹 계실까해서 이번 가이드를 고민하게되었고

이번 기회를 통해서 기본적인 네트워크 통신구조를 아시게 되신다면 추후 다른 서비스를 올리고 구축하시는데도 충분히 도움이 되리라 생각합니다.

먼저 외부에서 접속하기위해서는 여러가지 개념에 대한 이해가 어느정도 필요합니다.

공인 IP,포트포워딩, DNS 등을 통해서 아래와같은 네트워크 흐름으로 통신이 진행됩니다.

사용자 -> https://svrforum.com과 같이 도메인으로 접속요청 -> DNS에서 공인 IP확인 후 해당 IP로 접속 -> 공인 IP(내부 공유기)에서 포트포워딩 된 IP로 요청 전달 후 응답.

내용에 대해서는 아래에서 차근차근 알아보겠습니다.

공인 IP란?

일반적으로 IP에 대한 이해는.. 대부분있으리라고 생각합니다.

헤놀로지를 처음 설치하고 접속할때 내부에 할당된 IP로 접속하니까요. 여기서 IP를 할당해주는게 보통 공유기의 DHCP기능인데 이러한 내부에서 사용하는 IP들을 사설 IP라고 부릅니다.

하지만 실제로 외부에서 네트워크를 이용할때는 이러한 사설 IP를 사용하는게아니라 전 세계적으로 공용으로 사용하는 공인(Public) IP라는걸 사용하게됩니다. 다만 이는 한정된 수량이기때문에 내부에서는 사설 IP를 사용하는것이지요.

이렇게 공인 IP를 사용해서 통신을 하기때문에 외부에서도 내 서버(헤놀로지)에 접속할때는 공인 IP를 사용하게됩니다.

https://svrforum.com/myip

image.png.jpg

하지만 이렇게 공인 IP만 알수있다고 서버에 접속할수있을거라고 생각한다면..

경기도 오산입니다.

이제 나올개념은 포트포워딩 이라는 개념입니다.

포트포워딩이란?

위에서말씀드렸듯 공인 IP로 접근요청을한다면 해당 공인 IP를 가지고있는 공유기에서 응답을 하겠지만 기본적으로 공유기에서 서비스를 하는것이 아니기때문에 요청을 전달하지는 못합니다.

그래서 포트포워딩을통해 공인 IP를 통해 접근요청이 온다면 내부의 서버(헤놀로지,NAS등)으로 포트를 전달해서 요청에 대한 응답을 해줍니다.

포트포워딩 Port Forwarding 이름 그대로 포트를 전달 해주는건데요. 위키피디아에서는 아래와같이 정의하고 있습니다.

컴퓨터 네트워킹에서 포트 전달 또는 포트 매핑은 패킷이 라우터나 방화벽과 같은 네트워크 게이트웨이를 통과하는 동안 한 주소 및 포트 번호 조합에서 다른 주소로 통신 요청을 리디렉션

쉽게 말해서 외부의 공인 IP로 1.1.1.1을 사용하고 내부의 헤놀로지 IP가 192.168.1.9라면

1.1.1.1:5000 으로 요청이 왔을때 공유기에서 내부의 192.168.1.9의 5000번 포트로 요청을 전달해주는걸 의미합니다.

포트포워딩의 설정방법은 각 공유기마다 상이하나 기본적인 동작원리는 동일합니다.

여기서 포트는 헤놀로지의 기본 DSM의경우 5000번이나 5001번이 되겠지요.

가급적 http를 사용하는 5000번 포트를 여시는건 보안상 좋지않으니 테스트로 오픈하시더라도 일단은 5001번만 오픈하시고 추후에는 보편적인 웹포트인 80,443만 사용하시는걸 추천드립니다.

image.png.jpg
image.png.jpg

위처럼 공인 IP를 통해서 외부에서도 내부의 NAS를 잘 접속하실수 있으실겁니다.

이제 여기서 한단계를 더 진행해보자면 바로 도메인 연결입니다.

도메인 연결이란?

도메인이란 사람이 이해하기 쉽게 ip를 연결시키는것이라고 보면 됩니다. 보통 사람들이 google을 ip쳐서 들어가는것이 아닌 google.com 으로 들어가면 컴퓨터는 google.com의 ip를 확인하고 브라우저로 연결시켜주게 됩니다.

google.com을 쳤을때 실제로 들어가는건 위 IP 입니다.

이렇게 IP를 치고 서버를 접속하는건 여러가지 불편함을 야기하기때문에 DNS(Domain Name System) 에 내 공인 IP와 도메인간의 매핑을 해두고 사용을 하는게 일반적인 사용방법입니다.

여기서는 예를 위해 Duckdns라는 무료 DNS를 사용하지만 추후에 제대로된 서비스나 운영을 하고싶으시다면 Cloudflare나 구글등에서 도메인을 구매해서 사용하시는걸 추천드립니다.

DuckDNS를 통해 도메인과 IP연동하기

일단 Duck DNS로 가서 구글 ID로 로그인 하도록 합니다.https://www.duckdns.org/

Duck DNS free dynamic DNS hosted on Amazon VPC

그리고 domains 에서 사용하실 도메인을 정해서 add domain을 해줍니다.

저는 dalso.duckdns.org를 써보겠습니다.

그리고 아까 찾아온 공인 IP를 매핑하고 업데이트해줍니다.

그리고 nslookup과 같은 도메인 확인 툴을 써서 해당 도메인을 검색해보면 매핑해준 IP로 연결이되는걸 보실 수 있습니다.

연결 테스트

이제 직접 도메인과 공인IP 내부 NAS간의 연결이 제대로 됐는지 확인하시면됩니다.

외부DNS -> 공유기 공인 IP -> 포트포워딩 -> 내부NAS IP 로 가는게 통신 루트입니다

아까처럼 테스트를 한다면 https://daslo.duckdns.org:5001로 접근한다면? 내부 헤놀로지로 접속되겠죠

여기서 인증서가 올바르지않다고하는건 해당 도메인에 대한 인증서가 없다고 뜨는거지 보안이 적용이 안된건 아니기때문에 일단은 괜찮긴합니다만

추후에 해당 도메인에 대한 인증서를 발급받으시는걸 추천드립니다.