2025/04/13

Tailscaleがすごいという話

 Tailscaleがすごいのでいろいろ調べた、というメモ。

ここのところ出先から自宅リソースを使いたいことが割とあって、シン・テレワークシステムやChromeリモートデスクトップでWindowsに入ってそこから操作をしていたのだけれど、さすがに不便なので考え直そうかと。

せっかくなのでモダンにWireGuardで組もうとしていたのだけれど、調べたら「Tailscaleを知ってしまったらもう戻れない」みたいな声が多く、試しに入れてみたら、本当にゼロコンフィグのコストゼロでプライベート網が組めてしまい驚いた。めちゃくちゃすごい。

tailscale.com

Tailscaleとは?

クライアントをインストールするだけでVPN網が組めてしまうネットワークサービス。

Googleで分散システムを研究していたエンジニアたちが2019年にトロントで企業し、2020年にサービス開始。

個人利用はなんと無償。法人向けにも複数の契約プランがあるが、いずれもお安い。

サポートドキュメントもしっかり公開されており、わかりやすい。

tailscale.com

なお、基盤をTailscale社ではなく自分でホストするためのOSS、「headscale」もある。Tailscale社とは独立したOSSだが、Tailscaleとの互換性がある。

headscale.net

Tailscaleの基盤技術

WireGuardによるメッシュVPN

Tailscaleは中央集中型ではなく、ノード間をピアツーピアでメッシュ接続する。ベース技術であるWireGuardが軽量で低遅延なので、メッシュネットワークが負荷にならない。

すごいNATトラバーサル

ノードがルータ配下にいてプライベートIPしか持っていなくても、自動でNATを越えて通信経路を確立してくれる。ユーザ側でNATやポート、ファイアウォールの穴あけなどを一切考慮する必要がない。

具体的な動作としては、Tailscaleのコーディネーションサーバが仲介してUDPホールパンチングを行っている。コーディネーションサーバは接続時の認証や仲介を行っているのみで、実通信はノード同士で行われる。

DERPリレーによるフォールバック中継

DERP(Designated Encrypted Relay for Packets)サーバは、Tailscale独自のトラフィック中継サーバで、NATトラバーサルがどうしても成立せず、ノード同士の直接通信ができない場合のみ、トラフィックの中継を担う。

なお、通信自体はノード間でWireGuardにより暗号化されており、DERPサーバは通信を復号することはできない。

​MagicDNSによる名前解決

Tailscaleのプライベート網内で内部DNSが動作しており、各ノードのコンピュータ名と網内IPアドレスを自動で登録してくれる。これにより、ユーザはノードのIPアドレスを気にせず、コンピュータ名でアクセスができる。

ネットワーク的な特徴

ピアツーピアのメッシュネットワークである

前述のとおり、ノード間の通信は直接行われる。中央ノードでトラフィックを管理する仕組みではない。よって、全通信のログを取ったりもできない。仕組み上、トラフィックを監査する系のセキュリティ機能には対応できない。

通常は、ノード同士の通信のみがVPNを通り、その他の通信(インターネット通信など)は、通常どおりの経路でVPNとは関係なく通信する。

出口ノードを作ることが可能

特定のノードを出口ノードとして指定して、全通信を特定のノードからインターネットへ出す設定が可能。例として、海外にいるときにVPN接続して全通信を自宅から出し、接続先Webサイトの地域制限を回避する用途などに使える。

高い耐障害性

たとえばTailscaleに障害が発生して、コーディネーションサーバが利用不可となった場合でも、すでにピアツーピアで接続されたノード同士は影響を受けない。DERPで通信中継している場合や、新規に接続しようとした場合には、NGとなる。

コーディネーションサーバは、世界中のリージョンに展開されており、各リージョンに最低3台以上いるらしいので、そうそう問題はなさそう。日本は東京に設備があり、近隣では香港とシンガポールにあるので、たとえ日本が全台Downしてもどちらかにつながり利用可能。

ノードをルータ的に動作させることもできる

ノードと同じLANサブネット内にいる、Tailscaleクライアントが入っていない端末を、ノード経由でルーティングして通信させることができる。設定はデフォルトではOFFなので有効化が必要。

セキュリティ的な特徴

Tailscaleが通信を見ることはできない

前述のとおり、ピアツーピア通信かつエンドツーエンドで暗号化されるという仕組み上、Tailscaleが通信を覗き見することはできない。なお、Tailscaleの管理画面ではノードの接続履歴と、フローログ(有償プランのみ)を取ることはできる。

ACLの設定は可能

このノード同士は通信させる・させないといったルールは、ACLを書くことで設定可能。ユーザまたはグループを作って指定もできるので、たとえば組織外のゲストにはこのノードのみアクセスさせる、といった設定ができる。

その他の特徴

クライアントの対応が幅広い

Windows、Linux、macOS、iOS、Androidと基本的なところはしっかり対応している他、QNAP、SynologyのNAS用クライアントもある。

Tailscale SSH

Tailscaleに鍵管理を任せることで、自分で鍵作成せずにSSHできるようになる仕組み。前述のACLでアクセス元やユーザを絞ることもできる。地味にすごい便利。

個人利用での用途

  • 出先から自宅リソースにアクセスしたい
  • 遠方の実家NWをメンテナンスしたい
  • 海外から日本経由でインターネットに出たい
  • パブリッククラウドと自宅環境でクラスタリングしたい

とかか。用途はレガシなーVPNと大きく変わるものではなさそう。

法人向けとして使えるか?

メルカリでリモートアクセスに採用されている模様。

tailscale.com

もし自分のお客に勧めるなら、とにかくコストを安くしたくて、かつ自分で運用管理ができるならおすすめか。小~中規模のエンジニア組織であればバチッっとはまりそう。

仮に日本のレガシーな企業に入れようとすると、以下を考える必要があると思う。

TailscaleはあくまでVPNソリューションであり、通信部分のセキュリティ対策(Webフィルタリング、CASBなど)は別で必要。その辺を考えると2025年現在はSASE/SSEを入れる方針になりがちだが、そうするならばTailscaleでなくSASE/SSEが持っているプライベートアクセスソリューションを使ったほうがシンプルになるので、悩ましいかも。メルカリの構成が知りたい。

あと、ACL管理を真面目にやる必要がでるため、運用どうするかねという気もする。