기존 동적 DNS를 Tailscale Funnels로 교체한 경험

셀프 호스팅 워크스테이션과 실험 노드를 홈 네트워크에 연결했기 때문에 DIY 프로젝트를 진행하기 위해 언제든 로그인할 수 있습니다. 하지만 장기간 출장을 가야 할 때는 홈 랩 설정에 접근하기가 매우 어렵습니다. Tailscale은 엄밀히 말하면 셀프 호스팅 환경은 아니지만, 집 밖에서 서버를 손볼 때 제가 가장 좋아하는 도구입니다.

PC에서 Tailscale을 사용하는 Raspberry Pi

하지만 이 설정에는 작은 문제가 있습니다. Tailscale을 통해 워크스테이션에는 접속할 수 있지만, 친구나 가족이 홈 네트워크에 접속하려면 계정 정보를 공개해야 하는데, 저는 절대 그렇게 하고 싶지 않습니다. 다행히 Tailscale의 Funnels 기능을 사용하면 이 문제를 쉽게 해결할 수 있습니다. 단 한 푼도 내지 않고도 말이죠! Tailscale Funnels는 Tailscale 기반 사설 네트워크에서 특정 서비스를 안전하고 통제된 방식으로 공용 인터넷으로 "게시"할 수 있는 훌륭한 솔루션으로, 전체 네트워크를 손상시키거나 복잡한 구성 없이 웹 애플리케이션이나 소규모 서버를 다른 사람들과 공유할 수 있습니다.

테일스케일 퍼널이란 무엇인가요?

Tailscale Funnels는 Tailscale 네트워크 내에서 방화벽 뒤 또는 자체 사설 네트워크에서 호스팅되는 서비스와 애플리케이션을 외부와 안전하고 간편하게 공유할 수 있도록 하는 혁신적인 메커니즘입니다. 간단히 말해, 기존 포트 포워딩이나 역방향 프록시 서버의 복잡한 과정 없이 인터넷에 서비스를 배포할 수 있는 방법입니다.

훌륭한 웹 애플리케이션을 개발하여 동료나 고객에게 선보이고 싶거나, 어디서든 접속할 수 있는 미디어 서버가 있다고 상상해 보세요. Tailscale Channels를 사용하면 쉽고 안전하게 구현할 수 있습니다.

Tailscale 채널은 어떻게 작동하나요?

Tailscale 채널은 인터넷을 통해 접근 가능한 고유한 엔드포인트를 생성합니다. 누군가 이 엔드포인트에 접근하면 Tailscale은 트래픽을 사설 네트워크를 통해 지정된 서비스 또는 애플리케이션으로 안전하게 라우팅합니다.

Tailscale 채널을 사용하는 이점:

  1. 안전: Tailscale은 트래픽에 대한 종단 간 암호화를 제공하여 데이터가 간첩이나 가로채기로부터 보호되도록 보장합니다.
  2. 제목: 복잡한 설정이나 고급 기술 전문 지식이 필요하지 않습니다. 몇 번의 클릭만으로 Tailscale 채널을 설정할 수 있습니다.
  3. 유연성: Tailscale 채널은 웹 애플리케이션, 미디어 서버, 데이터베이스 등 광범위한 서비스와 애플리케이션을 지원합니다.
  4. 분류: 채널에 누가 액세스할 수 있는지 제어하여 권한이 있는 사람만 서비스를 사용할 수 있도록 할 수 있습니다.
    간편한 공유귀하의 채널 링크를 다른 사람들과 쉽게 공유하여 그들이 귀하의 서비스에 간편하게 접근하도록 할 수 있습니다.

Tailscale Channels 사용 사례:

  • 웹 애플리케이션 보기: 데모 웹 애플리케이션이나 프로토타입을 고객이나 동료와 공유하세요.
  • 미디어 서버 접근: 전 세계 어디에서나 미디어 라이브러리에 접속하세요.
  • API 테스트: 다양한 환경에서 API를 테스트하세요.
  • 원격 협업: 원격 팀과 도구와 리소스를 공유하세요.
  • 정적 웹사이트 호스팅: 정적 웹사이트를 쉽고 안전하게 호스팅하세요.

간단히 말해, Tailscale Channels는 안전하고 효율적인 방식으로 외부 세계와 서비스와 애플리케이션을 쉽게 공유할 수 있는 강력하고 유연한 도구로, 개발자, 원격 팀 및 어디서나 서비스에 액세스해야 하는 모든 사람에게 이상적인 선택입니다.

동적 DNS와 다른 점은 무엇인가요?

TrueNAS Scale 인스턴스를 종료 노드로 보여주는 Tailscale 홈페이지의 스크린샷입니다.

로컬 서비스를 외부 네트워크에 제공하려고 할 때 VPN(자체 호스팅 및 기타)이 가장 일반적으로 사용되는 도구이며, Tailscale Connect도 비슷한 방식으로 작동합니다. 기본적으로 Tailscale 서버를 사용하여 메시 P2P 네트워크로 기기를 연결하여 계정에 연결된 모든 기기가 홈 랩 장비에 액세스할 수 있도록 합니다. 반면 Tailscale Funnels는 자체 호스팅 클러스터에 URL을 제공하여 Tailscale 네트워크에 등록된 시스템뿐만 아니라 인터넷에 연결된 모든 기기가 설정에 액세스할 수 있도록 합니다.

동적 DNS는 홈 랩 설정의 IP 주소에 고정 도메인 이름을 할당하는 기능입니다. 또한 자주 변경될 수 있는 서비스의 공용 IP 주소를 업데이트하는 역할도 하므로, 외부 네트워크의 여러 사용자에게 셀프 호스팅 애플리케이션을 제공하려는 사람들에게 유용한 도구입니다. 개인적으로 저는 Tailscale Funnels를 선호합니다.

Tailscale Funnels을 사용하면 어떤 이점이 있나요?

Tailscale Funnels를 사용하면 Tailscale 네트워크에서 실행되는 서비스를 Tailscale이 설치되어 있지 않더라도 인터넷에 연결된 모든 사람과 공유할 수 있습니다. 기존 네트워크 구성의 복잡성이나 관련 보안 위험에 대한 걱정 없이 웹 애플리케이션을 배포하고, 데모를 선보이고, 심지어 API를 임시로 호스팅할 수 있는 안전하고 간편한 방법이라고 생각해 보세요.

즉, Tailscale Funnels는 서비스 배포 프로세스를 간소화하고 더 많은 사용자가 접근할 수 있도록 하는 동시에 높은 수준의 보안과 제어 기능을 제공합니다. 이제 복잡한 설정이나 SSL 인증서 없이도 단 몇 번의 클릭만으로 잠재 고객, 동료 또는 친구와 애플리케이션과 서비스를 공유할 수 있습니다. 이를 통해 서비스 배포에 필요한 시간과 노력을 크게 줄여 인프라 관리 대신 애플리케이션 개발에 집중할 수 있습니다.

또한 Tailscale Funnels는 모든 통신이 암호화되고 Tailscale의 보안 네트워크를 통해 라우팅되므로 보안을 한층 강화합니다. 이를 통해 개인 네트워크 외부의 사람들과 서비스를 공유하는 경우에도 데이터가 무단 액세스로부터 안전하게 보호됩니다. 이 기능은 민감한 데이터를 처리하거나 엄격한 보안 규정을 준수해야 하는 기업에 특히 중요합니다.

따라서 앱을 쉽게 게시할 방법을 찾는 개발자이든, 고객과 서비스를 공유해야 하는 기업이든, 혹은 친구들과 흥미로운 것을 공유하고 싶은 사람이든, Tailscale Funnels은 간단하고 안전하며 효과적인 솔루션을 제공합니다.

CGNAT에 영향을 받는 네트워크에서 설정의 용이성

Tailscale 웹 UI

현재 ISP에서 제가 가장 큰 장점 중 하나는 네트워크를 CGNAT(Carrier-Grade Network Address Translation)로 보호한다는 것입니다. 잘 모르시는 분들을 위해 설명드리자면, CGNAT(Carrier-Grade Network Address Translation)는 각 고객에게 사설 IP 주소를 할당하는 대신, 여러 사용자에게 동일한 IPv4 주소를 부여하는 "지원" 방식입니다. 하지만 안타깝게도 이 방식은 자체 호스팅 VPN을 통해 외부 네트워크에 서비스를 노출하는 것을 더욱 어렵게 만듭니다. 홈 랩에서 트래픽을 주고받을 고유한 IP 주소가 없기 때문입니다.

한편, Tailscale Funnels는 회사 자체 릴레이 서버를 중개자로 사용합니다. 사용자가 로컬 워크스테이션과 연결된 URL에 접속하려고 하면 트래픽이 Tailscale의 릴레이 서버를 거쳐 제 노드로 전달됩니다. 이를 통해 CGNAT 제한을 쉽게 우회할 수 있어 공용 IP 주소 제한이 있는 환경에서도 자체 호스팅 서비스에 대한 접속이 더욱 원활하고 안정적으로 이루어집니다.

복잡한 포트 포워딩이나 역방향 프록시 서버가 필요 없습니다.

반면, 동적 DNS는 라우터의 특정 포트를 열어야 하는데, 제 홈 네트워크는 CGNAT(고객 생성 네트워크 주소 변환) 때문에 거의 불가능합니다. 포트 포워딩을 활성화할 수 있다 하더라도, 자체 서명 인증서 설정과 역방향 프록시 서비스 보안에 많은 노력을 기울여야 하기 때문에 아마 사용하지 않을 것입니다. 또한 도메인 등록 기관과도 거래해야 하는데, Nextcloud 파일을 동료 프로그래머와 공유하고 싶을 때 이 모든 것이 엄청나게 번거로워 보입니다.

오해는 하지 마세요. Tailscale Funnels는 자체적인 보안 취약점을 가지고 있지만, 초보자가 만든 포트 포워딩 설정보다 훨씬 안전합니다. 하지만 공개 URL에 접근하는 기기와 로컬 서비스 간의 트래픽은 TCP 프록시를 사용하여 암호화됩니다. 또한, TCP 프록시는 자체 호스팅 앱의 IP 주소를 숨기고, 엄격한 ACL(액세스 제어 목록)을 사용하는 권한이 있는 사용자를 생성하여 "노출된" 앱의 보안을 더욱 강화할 수 있습니다. 이를 통해 추가적인 보호 계층을 제공하고 해킹이나 민감한 데이터에 대한 무단 접근 위험을 줄일 수 있습니다. 또한, Tailscale은 2단계 인증(XNUMXFA) 시스템과 쉽게 통합되어 보안을 더욱 강화할 수 있습니다.

Tailscale Funnel 게시

Tailscale Funnel 서비스를 사용하면 로컬 머신이나 개인 네트워크에서 실행되는 웹 애플리케이션 및 기타 서비스를 안전하고 간편하게 인터넷에 배포할 수 있습니다. 이 기능은 복잡한 인프라 설정이나 보안 위험에 대한 걱정 없이 애플리케이션을 테스트하거나 고객에게 선보이고 싶은 개발자에게 특히 유용합니다.

Tailscale 채널은 인터넷을 통해 접근 가능한 안전하고 안정적인 엔드포인트를 생성합니다. 서버나 애플리케이션을 인터넷에 직접 노출하는 대신, Tailscale 채널은 중개자 역할을 하여 암호화된 트래픽을 자체 Tailscale 네트워크를 통해 라우팅합니다. 이를 통해 애플리케이션 접근이 Tailscale의 강력한 암호화로 보호되어 사이버 공격 위험을 크게 줄일 수 있습니다.

Tailscale 채널 게시 단계:

1. Tailscale 설치: 배포하려는 앱이나 서비스를 호스팅하는 기기에 Tailscale이 설치 및 구성되어 있는지 확인하세요. 기기는 Tailscale 네트워크에 연결되어 있어야 합니다.

2. Funnel 활성화: 애플리케이션을 호스팅하는 머신에서 Funnel 기능을 활성화합니다. 일반적으로 Tailscale의 명령줄 인터페이스(CLI)를 통해 이 작업을 수행할 수 있습니다. 예를 들어, `tailscale funnel on 80` 명령을 사용하여 80번 포트에서 실행되는 웹 애플리케이션을 배포할 수 있습니다.

3. DNS 구성(선택 사항): 퍼널 주소를 가리키는 DNS 레코드를 구성하여 쉽게 접근할 수 있습니다. 이를 통해 사용자는 IP 주소 대신 친숙한 도메인 이름을 사용하여 앱에 접근할 수 있습니다.

4. 테스트 및 확인: Funnel을 설정한 후 Tailscale 네트워크에 연결된 다른 기기나 인터넷(Funnel 설정에서 허용하는 경우)에서 앱에 액세스하여 제대로 작동하는지 확인하세요.

Tailscale Funnel을 사용하면 특별한 기술 지식이나 대규모 인프라 투자 없이도 쉽고 안전하게 애플리케이션과 서비스를 인터넷에 배포할 수 있습니다.

매우 쉽습니다

꼬리비늘 경로 만들기

대부분의 복잡한 네트워킹 애플리케이션과 달리 Tailscale은 설정이 매우 쉽고, Funnels 기능도 마찬가지입니다. Tailscale이 가상 머신에서 실행되면 `tailscale funnel` 명령어 다음에 사용 가능하게 할 포트 번호를 입력하기만 하면 됩니다.

Tailscale은 경로를 활성화하는 웹 UI를 표시하며, 이것이 거의 전부입니다. HTTPS 인증서 생성, 릴레이 연결, DNS 레코드 구성 등 나머지 과정은 Tailscale이 자동으로 처리합니다. 이러한 편의성 덕분에 Tailscale은 복잡한 관리 없이 안전하고 효율적인 네트워킹 솔루션을 원하는 개발자와 IT 전문가에게 매력적인 옵션입니다.

Tailscale Funnels에는 여전히 제한 사항이 있습니다.

Tailscale Funnels가 제공하는 많은 장점에도 불구하고, 이 기능을 사용할 때 고려해야 할 몇 가지 제한 사항이 있습니다. 사용자는 최적의 사용을 보장하고 잠재적인 문제를 방지하기 위해 이러한 제한 사항을 이해해야 합니다. 제한 사항은 다음과 같습니다.

  • Tailscale 연결에 의존: Funnels 기능은 전적으로 활성 Tailscale 연결에 의존합니다. Tailscale 연결에 장애가 발생하면 Funnels를 통해 제공되는 서비스에 액세스할 수 없습니다.
  • 대역폭 제한: 특히 사용자 수가 많거나 서비스에 높은 대역폭이 필요한 경우 퍼널을 통해 사용 가능한 대역폭에 제한이 있을 수 있습니다. 최적의 성능을 보장하려면 대역폭 사용량을 모니터링해야 합니다.
  • 설정 시 잠재적인 복잡성: Tailscale은 사용하기 쉽게 설계되었지만, 특히 복잡한 네트워크 구성을 다룰 때 Funnels를 설정하려면 약간의 기술 지식이 필요할 수 있습니다.
    잠재적인 보안 문제: Tailscale은 강력한 보안 계층을 제공하지만, 퍼널을 통해 서비스를 인터넷에 노출할 때는 필요한 보안 조치를 취해야 합니다. 서비스가 적절하게 보호되고 모니터링 및 위협 탐지 메커니즘이 제대로 구축되어 있는지 확인하십시오.
  • 잠재적인 지리적 제한: 일부 서비스나 현지 법률에 따라 지리적 제한이 있을 수 있으며, 이는 특정 지역에서 Funnels을 통해 서비스에 접근하는 데 영향을 미칠 수 있습니다.

사용자는 Tailscale Funnels를 원격 접속을 위한 주요 솔루션으로 사용하기 전에 이러한 제약 사항을 신중하게 평가해야 합니다. 적절한 계획과 제약 사항을 숙지한다면 Funnels를 효과적이고 안전하게 사용할 수 있습니다.

하지만 Tailscale 측에서는 Funnels가 아직 베타 버전이라고 변명하고 있습니다.

10GbE 어댑터에 연결된 일부 저장 장치

안타깝게도 Tailscale Funnels는 몇 가지 제약이 있어 자체 호스팅 애플리케이션 데모에 이상적인 솔루션이 아닙니다. 예를 들어, Tailscale Funnels는 443, 8443, 10000번의 제한된 네트워크 포트에서만 패킷을 수신할 수 있습니다. 마찬가지로, 제 tailnet에서는 DNS 이름만 사용할 수 있기 때문에 낯선 URL을 사용하여 홈 랩을 설정할 수 없습니다.

하지만 이 서비스가 아직 베타 버전이라는 점을 고려하면 Tailscale Funnels는 놀라울 정도로 강력합니다. 사실, 제가 직접 호스팅하는 앱 모음을 친구 및 가족과 공유하는 데 가장 좋아하는 방법입니다. 간편한 설정과 안정적인 성능 덕분에 현재 제약에도 불구하고, 특히 더 복잡한 대안과 비교했을 때 가치 있는 도구입니다. Tailscale이 Funnels를 계속 개발함에 따라 앞으로 더욱 향상된 유연성과 기능을 기대할 수 있습니다.

댓글이 닫혀있다.