기록

시놀로지 NAS 외부 드라이브 연결에 대한 고찰 (Tailsacle 설치 리뷰)

나스를 세팅해본 사람이라면 나스에 만들어진 볼륨을 원래 피시에서 유용하게 사용할만한 수단을 찾게 된다.
왜 우리가 흔히 윈도우에서 '네트워크 드라이브'라는 개념으로 연결하는게 SMB 라는 파일 프로토콜을 사용한 연결방식이라 보면된다.

당연히 맥에서도 파인더에서 이런류의 네트워크 위치 연결이 가능하다.
물론 SMB도 제대로 지원하기 때문에 윈도우의 경우와 마찬가지로 잡으면 그만이다.

근데 외부에서 접속하는 경우는 어떨까?


1. 외부접속

우리가 외부에서 집에 설치한 NAS를 연결하고 싶을때는 참 여러가지 상황에 맞딱트리게 된다.

1-1. 변동되는 IP

일단 일반적인 가정집의 아이피주소는 변동 IP이다. (가변 IP라고도 한다)
그러므로 고정 IP를 받아써야하는 현실이지만, 실제로 인터넷 업체(ISP)가 개인에게 고정아이피를 부여하는 경우는 거의없다.

하지만 꼼수랄게 하나 있긴한데 DCHP, 그러니까 자동으로 아이피를 부여하는 과정에서 한번 부여된 아이피는 거의 변동이 없다는 것을 노리면된다.
즉 항상 인터넷을 사용하는 가정집이라면 대부분 가변으로 받은 아이피가 변하는 일은 없다는 것이다.

시놀로지 NAS 외부 드라이브 연결에 대한 고찰 (Tailsacle 설치 리뷰)사실 KT도 고정아이피를 팔긴하는데... 굳이?

여기서 한술 더 나아가면 지속적으로 내 나스에 핑같은걸 보내서 가변 아이피또한 유동적으로 처리하게하는 시놀로지의 quickconnect 같은 기능도 있고 이와 유사한역할을 하는 무언가를 설치해 사용할 수 있지만, 일반적인 가정집에서 나스만 10년 운영해본 내 경험적인 말로는 사실상 어지간하면 한번 부여된 아이피가 변하는 경우는 없더라.

나는 이렇게 생성된 아이피를 숫자로 쓰는게 좀 짜쳐서 내 도메인에서 서브도메인을 하나 따두어서 그 아이피를 참조하게 라우팅까지 해놓긴 했다.
결론적으로 한번부여된 공인아이피는 거의 바뀌지않으니 새삼 문제랄것도 없는것이다.

1-2. 포트포워딩

외부접속을 다루기시작하면 가장많이 보는 단어가 이 포트포워딩이다.
왜냐하면 보통 가정집에는 들어오는 인터넷 라인이 1개이기 때문에 집에서 여러 사람과 디바이스가 사용하기위해서 공유기라는걸 사용한다.

그런데 외부에서 그 공유기 아래에 물려있는 나스를 짚어서 연결하고싶을때는 어떻게 해야할까?
우리가 알고있는건 공유기로 들어가는 단 하나의 공인 아이피에 불과하다.
이럴때 사용하는게 포트이다.

content_image443포트로 요청되면 다른 내부아이피로 요청이 빠지지 않는다

일반적으로 시놀로지 나스의 OS라 할 수 있는 DSM을 예로들면 이 DSM은 5000포트에서 서비스가 되고있다.
즉 외부 아이피에서 5000포트로 요청한 내용을 공유기가 NAS의 5000포트로 연결해주면 되는일인것이다.
이런 일련의 과정을 포트포워딩이라 한다.

즉 우리가 외부에서 집에있는 어떤 자원을 쓰기위해서는 이런 포트를 맞는 디바이스에 포팅해주는 과정이 필수일 것이다.


2. 외부에서 네트워크 드라이브 연결

그러면 사실상 내 집 아이피를 가지고 포트포워딩 설정만 잘 해놓으면 쉽게 네트워크 드라이브 연결 완료! 인걸까?

실상은 그렇지 않다.
위에서 언급한 대표적인 파일 프로토콜인 SMB, 그리고 FTP, SFTP 등은 소위 말해서 '노출'되어있는 포트다보니까 인터넷 업체에서 이 포트에 대한 요청/전송을 아예 막아버리는 경우가 많다.
나는 KT를 쓰는데, KT의 경우에는 SMB용 포트인 139, 445번 포트를 아예 차단시켜놓았다.

즉 SMB 방식으론 연결할 수 없다는것이다.
그럼 어떤 우회방법이 있을까?

content_imageAFP 방식은 애플만들고 애플이 버린 비운의 프로토콜이 되어버렸다

바로 WebDAV와 AFP 방식을 이용하는것이다.
다만 두가지 방법 모두 문제가 있다.

전자의 경우엔 속도에 문제가있고, 후자의 경우에는 사장되는 기술이라는것.
격동의 2010년대때는 뭐가좋다 뭐가나쁘다 이런식의 경쟁이 붙은 각각의 프로토콜이지만 2020년대에 들어서는 파일 프로토콜은 SMB로 수렴되고 있다는것이다.

근데 위에서 SMB는 외부접속 안된다면서?
그래서 사람들이 찾아낸 방법이 외부에서 내부망으로 접속하는 기술인 VPN이다.


3. VPN, 사설네트워크망

VPN은 말그대로 가상 사설 네트워크로 외부에 있는 사람도 꼭 내부에 있는거마냥 처리하게 해주는 기법이라 할 수 있다.
우리가 가볍게 찾아볼 수 있는 여러가지 VPN(노드 vpn이라던지 그런거...)부터 OpenVPN 처럼 직접 구현하는것도 모두 특정 내부망에 사람을 모아두고 그 망에있는것처럼 취급하기위한것이다.


하지만 VPN을 사용만해보았지 이걸 직접 구현하려고하면 참 여러가지 문제에 부닥트리게 된다.
일단 VPN에 해당하는 서버를 구현해야하는데 이 과정이 솔직히 일반적인 개발자도 공부가 필요할정도로 머리가 절여지는게 현실.

그런 부분을 최소화 하기위한 좋은게 없나? 찾아보니까 그게 있긴하더라.
그게 바로 이번 글의 핵심요소인 Tailscale이다.


4. Tailscale

테일스케일, 이 VPN 서비스는 종단간 사설망 구축을 위한 서비스를 제공해준다.

content_image

기존에 VPN은 서버를 구현해야하는 과정이 필요하지만 테일스케일은 그 서버역할은 자기내들 자원으로 처리해주고 연결이 필요한 각 지점에 대한 설정만해주면 꼭 VPN 처럼 작동하게 만든 개념이라 볼 수 있다.

우리가 해줘야할것은 접속이 필요한 두 디바이스에 테일스케일 앱을 깔아서 테일스케일의 VPN에 물려주기만 하면 되는것이다.


문득 이런생각도 든다.
이게 쓸만한가?
나도 처음에 이 서비스에 대해서 알아봤을때는 결국 기업 서비스에 의존한거다보니까 현실적인 제약과 과금이 있지않을까? 라는 생각이 들었다.

하지만 알아볼수록 테일스케일의 비즈니스모델은 일단 편한 시스템을 유저들에게 제공해주고 궁극적으로 과금을 시키게하는 매력을 느끼게 해주는 방식이라는걸 알게되었다.

일단 나는 개인 플랜으로 무료로 사용하고있다.
그도그럴게 연결해야하는 디바이스가 외부에있는 내 맥북과 집에있는 나스, 이렇게 2개만 있기 때문이다.

이렇게 소규모로 특수목적에 맞게 이용한다면 테일스케일은 정답이 될 수 있다.


4-1. 세팅

세팅은 워낙 글을 잘써준 분이 있어서 그분의 블로그 포스팅으로 안내드린다.

[Synology] DS723+ 테일스케일(Tailscale) 설치 및 이용 방법
[Synology] DS723+ 테일스케일(Tailscale) 설치 및 이용 방법
대부분 가정집에서 시놀로지를 사용하신다면 공유기에 연결하기 때문에 DHCP에 의해 자동으로 사설 IP 주소를 할당받습니다. 그래서 개인 PC 클라이언트가 관리자「DSM」에 접근하기 위해서는 같은 공유기에 랜선이 연결되어있어야 합니다. 네트워크 흐름도를 잘 이해하시는 분들은 외부에서 내부로 접근하기 위한 별도의 VPN 서버를 이용하거나 공유기를 이용해 특정 포트를 포트포워딩「Port forwarding」 하는 등 다양한 방법을 이용하지만 일반사용자는 복잡하고 어렵습니다. 하지만 테일스케일「Tailscale」라는 서비스를 이용하면 아주 쉬운 방법으로 안전한 직결 네트워크를 구축할 수 있습니다. 무료 사용자도 큰 제한 없이 이용할 수 있어 많은 인기를 얻고 있습니다. 이제 어떻게 설치하고 사용하는지 알아보도록..
https://foxydog.tistory.com/188

워낙 예시 이미지와 설명을 잘해주셔서 나도 이분걸 따라하니까 10분도 안되서 세팅이 완료되었다.
별도로 내 환경(DS925+, 맥북 외부접속)에 대해서 세팅이력을 남겨보자면 아래와 같다.

1) 시놀로지 패키지 다운로드(https://pkgs.tailscale.com/stable/#spks) 페이지에 들어가서 "tailscale-x86_64-1.90.4-700090004-dsm7.spk: 64-bit x86 (amd64)" 이 설치 패키지 다운로드
2) DSM에 접속 후 패키지 센터 -> 우측 상단 수동설치에서 다운받은 패키지로 설치
3) 설치완료후 패키지 열기를 통해 안내하는 테일스케일 화면에서 회원가입 및 로그인
4) 테일스케일 화면에서 두번째 디바이스(add a Second device) 관련 내용이나오면 하단의 "Skip this introduction" 링크로 스킵

content_image재부팅시 테일스케일와 재연결을 위한 자동화 스크립트

5) DSM 설정->작업스케쥴러->생성에 가서 나스 부팅시 테일스케일이 켜질 수 있도록 사용자 정의 스크립트 추가 (https://tailscale.com/kb/1131/synology#enable-outbound-connections )
5) 맥북 앱스토어에서 Tailsacle 검색 후 앱 설치
6) 테일스케일 앱애서 로그인

content_image
여기까지해두면 테일스케일 홈페이지에서 위와같이 2개의 디바이스가 붙어있음을 확인할 수 있다

7) DSM에서 설정->파일서비스->SMB 프로토콜을 활성화하고 하단 smb 요청 내용을 그대로 복사해 맥 파인더에서 상단메뉴의 이동->서버에 연결 창에서 요청주소를 붙여넣기하고 나스의 사용자 계정으로 로그인한다.

content_image작업그룹은 기본이 WORKGROUP 임

이러면 외부접속이 순식간에 완료가된다.
정말 편하다...


4-2. 요금 플랜

위에서도 약간 설명하긴했다만 무료플랜으로도 충분히 테일스케일의 서비스를 사용하는게 가능하다.
다만 처음에는 엔터프라이즈급 플랜으로 14일 트라이얼이 잡혀있으니 테일스케일 사이트에 들어가서 Setting -> Billing -> Your Plan 에서 플랜을 Personal Plan으로 교체해주자.

content_image

퍼스널 프리플랜만봐도 3개의 유저가 100개의 디바이스까지 연동이 가능하므로 충분히 무리없게 사용할 수 있다.
물론 이런  vpn 세팅을 여러명이서 사용한다면 한계가 빨리 다가올수 있겠지만 보통 세팅한사람 한명만쓰니까... 충분한 플랜이다.


5. 마무리

VPN에 대해서는 속도가 딸리지만 어쩔수없이 쓰는 사설망이라 생각이되었는데, 테일스케일마냥 피어투피어 방식으로 붙이는 서비스가 있다라는걸 이번에 처음알게되었다.

속도도 꽤나 훌륭하고 여러가지 의미로 정말 괜찮은 외부접속 방법이 아닌가 싶다!
정말 강추한다.

그리고 이 모든 내용을 더욱 쉽게 포스팅해준 "폭시독"님한테도 감사의 말씀을 전하고싶다!

#NAS #문제해결 #유용한사이트
0 개의 댓글
×