Tailscale 정리: WireGuard 기반 메시 VPN의 동작 방식과 활용

중앙 VPN 게이트웨이 없이 기기끼리 WireGuard로 직접 연결하는 Tailscale의 구조, 동작 방식, 서브넷 라우터 · MagicDNS · Kubernetes operator, Headscale, 클라우드 사설망 접근 구성 예를 정리합니다.

2026. 11. 13.
6개 태그

🔍 개요

Tailscale은 WireGuard로 기기끼리 직접 암호화 연결을 맺어 주는 VPN입니다.
중앙 VPN 장비를 거치지 않고, 로그인한 기기들이 tailnet이라는 사설망 하나로 묶입니다. 인바운드 포트를 열 필요가 없고, Tailscale 서버는 키와 정책만 나눠 줄 뿐 실제 트래픽은 대부분 기기끼리 바로 오갑니다.

질문답
무엇인가신원(로그인) 기반 제로 트러스트 연결 플랫폼. WireGuard로 기기 간 P2P 메시 망(tailnet)을 만듦
기존 VPN과 차이VPN 게이트웨이 하나로 모이는 구조가 아니라 기기끼리 직접 연결. 포트 포워딩 · 방화벽 개방 없이 NAT를 넘음
트래픽이 Tailscale 서버를 지나나보통 지나지 않음. 직접 연결이 안 될 때만 DERP 릴레이를 거치고, 이때도 이미 암호화된 상태라 Tailscale이 내용을 볼 수 없음
Tailscale을 설치할 수 없는 사설망 접근서브넷 라우터가 사설 대역을 광고하고, 관리 콘솔에서 승인
이름 해석MagicDNS(기기 이름으로 접속), Split DNS(특정 도메인은 내부 DNS 서버로)
쿠버네티스Kubernetes operator: API 서버 · 서비스를 tailnet에 노출, 클러스터 안에서 서브넷 라우터 실행
오픈소스클라이언트(대부분) · DERP 서버는 오픈소스, 컨트롤 서버는 Tailscale 회사가 운영. 직접 운영하려면 Headscale
요금Personal 무료(비상업용, 6명), Standard 사용자당 월 $8, Premium 사용자당 월 $18

1. 기존 VPN과 무엇이 다른가

구분전통 VPN (예: Azure VPN Gateway, OpenVPN)Tailscale
구조모든 클라이언트가 VPN 게이트웨이 한 곳에 붙음 (허브형)기기끼리 직접 연결 (메시형)
인바운드 포트게이트웨이에 공인 IP · 포트 개방 필요필요 없음. NAT 통과(STUN · ICE)로 연결
인증인증서 · 사전 공유 키회사 계정 로그인(OAuth2 · OIDC · SAML IdP)
접근 제어네트워크 대역 단위사용자 · 기기 단위 정책(ACL)
병목 · 단일 장애점게이트웨이기기별 직접 연결이라 중앙 병목이 없음 (서브넷 라우터를 쓰면 그 기기가 경유점)
Mermaid diagram

위쪽 전통 VPN은 모든 트래픽이 게이트웨이 한 곳을 지나고, 아래쪽 Tailscale은 기기끼리 바로 WireGuard 터널을 맺습니다.

2. 동작 방식

Tailscale은 크게 컨트롤 플레인(키 · 정책 배포)과 데이터 플레인(실제 트래픽)으로 나뉩니다.

  1. 컨트롤 플레인(코디네이션 서버): 기기가 로그인하면 각 기기의 공개 키와 접근 정책을 다른 기기들에 나눠 줍니다. 개인 키는 기기 밖으로 나가지 않으며, 사용자 트래픽은 거의 지나가지 않습니다.
  2. 데이터 플레인: 기기끼리 WireGuard 터널로 직접 통신합니다.
  3. NAT 통과: 양쪽이 사설망 안에 있어도 STUN · ICE로 경로를 찾아 직접 연결합니다.
  4. DERP 릴레이: UDP가 막혀 직접 연결이 안 되면 HTTPS로 릴레이 서버를 거칩니다. 이미 암호화된 패킷을 전달만 하므로 릴레이가 내용을 복호화할 수 없습니다.
Mermaid diagram

점선은 제어 신호와 예외 경로이고, 3번 실선이 실제 데이터 경로입니다. 코디네이션 서버는 키와 정책만 나눠 줍니다.

참고 자료의 시점

동작 방식은 Tailscale 공식 블로그의 "How Tailscale works"(2020년 글)를 바탕으로 정리했습니다. 세부 구현은 이후 바뀌었을 수 있습니다.

3. 자주 쓰는 기능

서브넷 라우터

Tailscale을 설치할 수 없는 장비(프린터, 클라우드 VNet 안 서버 등)에 접근할 때 사용합니다.

  • tailnet 안 기기 하나가 "이 사설 대역(예: 10.0.0.0/16)은 나를 거쳐 가라"고 광고합니다. 그러면 다른 tailnet 기기가 그 대역의 자원에 접근할 수 있습니다.
  • Linux · Windows에서는 IP 포워딩을 먼저 켠 뒤 아래 명령으로 대역을 광고합니다.
서브넷 대역 광고
tailscale set --advertise-routes=10.0.0.0/16
  • 광고한 경로는 관리 콘솔에서 승인해야 합니다. 정책 파일의 autoApprovers로 자동 승인할 수도 있습니다. 경로 승인과 접근 권한(ACL)은 별개입니다.
  • 기본으로 SNAT가 적용되어, 사설망 쪽에서는 트래픽이 서브넷 라우터 IP에서 온 것으로 보입니다.
  • 서브넷 뒤의 기기는 기기 수 한도에 포함되지 않습니다.
  • 모든 인터넷 트래픽(0.0.0.0/0)을 보내려면 서브넷 라우터가 아니라 exit node를 사용합니다.

MagicDNS · Split DNS

  • MagicDNS: 기기 이름이 자동으로 DNS에 등록되어 ping monitoring처럼 이름으로 접속할 수 있습니다. 전체 이름은 기기이름.<tailnet>.ts.net 형식입니다.
  • Split DNS: 관리 콘솔 DNS 설정에서 특정 도메인을 광고된 서브넷 안의 내부 DNS 서버로 보내도록 지정할 수 있습니다.

Kubernetes operator

  • 쿠버네티스 API 서버를 tailnet에 노출합니다.
  • 인그레스: 클러스터 서비스를 tailnet 기기에 노출합니다.
  • 이그레스: 파드가 tailnet 자원에 접근합니다.
  • Connector 리소스로 클러스터 안에서 서브넷 라우터 · exit node를 실행합니다.
  • 클러스터 간 트래픽 연결, kubectl 세션 기록 · 감사도 지원합니다.
  • 모든 요금제에서 사용할 수 있습니다.

4. 오픈소스 범위와 Headscale

  • 기기용 클라이언트와 DERP 서버 코드는 오픈소스입니다. 하지만 컨트롤 서버는 Tailscale 회사가 운영하고, Windows · macOS · iOS GUI 클라이언트도 비공개입니다.
  • Headscale은 컨트롤 서버를 직접 운영할 수 있게 해 주는 오픈소스 구현(BSD-3)입니다.
    • tailnet 1개를 다루며, 개인 · 소규모 조직용입니다.
    • Tailscale 회사 제품은 아닙니다.
    • README에는 리버스 프록시 뒤나 컨테이너로 운영하는 방식은 지원 · 권장하지 않는다고 적혀 있습니다.
  • 즉 "Tailscale을 쓴다"는 보통 회사가 운영하는 SaaS 컨트롤 서버 + 오픈소스 클라이언트를 쓴다는 뜻입니다.

5. 요금

플랜가격메모
Personal무료비상업용. 사용자 6명, 기기 무제한, 태그 리소스 50개
Standard사용자당 월 $8사용자 무제한
Premium사용자당 월 $18
Enterprise별도 견적
업무용이라면 유료 플랜 확인

Personal 플랜은 비상업용입니다. 회사 업무에 쓴다면 유료 플랜 대상인지 먼저 확인하세요. (요금은 2026년 11월 기준이며 바뀔 수 있습니다.)

6. 클라우드 사설망 접근 구성 예

사무실이나 관리자 PC에서 클라우드 VNet 안의 사설 자원(프라이빗 AKS API, Private Endpoint 뒤 레지스트리 · DB 등)에 접근하는 구성 예입니다.

Mermaid diagram

구성 순서

  1. VNet 안 VM이나 쿠버네티스 파드(operator Connector)를 서브넷 라우터로 두고 VNet 대역을 광고합니다.
  2. 관리 콘솔에서 경로를 승인하면 1번 경로가 열립니다.
  3. 이름 해석을 따로 챙깁니다. Azure Private DNS 같은 클라우드 사설 DNS는 VNet 안에서만 해석되므로, Split DNS로 VNet 안의 DNS 서버(예: DNS Private Resolver 인바운드 엔드포인트)를 가리키게 합니다.
운영 시 주의사항
  • 서브넷 라우터가 하나뿐이면 그 기기 · 파드가 죽을 때 접근이 끊깁니다.
  • 서브넷 라우터를 클러스터 안에 두면, 그 클러스터에 장애가 날 때 다른 자원 접근도 함께 막힙니다.
  • 서브넷 라우터를 거치는 트래픽에는 클라우드 쪽 송신 · 데이터 처리 비용이 생길 수 있습니다.

이 구성은 공식 문서 내용을 조합한 예시입니다. 실제 환경에 적용하기 전에 직접 검증하세요.

✨ 결론

  • Tailscale은 중앙 게이트웨이 대신 기기끼리 WireGuard로 직접 연결하는 메시형 VPN입니다.
  • 코디네이션 서버는 키와 정책만 나눠 주고, 실제 트래픽은 기기 간 직접 연결이나 암호화된 DERP 릴레이로 오갑니다.
  • 서브넷 라우터 + Split DNS 조합으로 클라우드 VNet 안 사설 자원에 포트 개방 없이 접근할 수 있습니다.
  • 컨트롤 서버까지 직접 운영해야 한다면 Headscale을 검토할 수 있지만, 규모와 지원 범위의 제약을 함께 고려해야 합니다.

이 포스트는 2026년 11월 기준 Tailscale 공식 문서를 바탕으로 작성되었습니다. 최신 정보는 What is Tailscale, How Tailscale works, Subnet routers, MagicDNS, Kubernetes operator, Tailscale 요금, Headscale에서 확인하실 수 있습니다.