tailscale
https://avatars.githubusercontent.com/u/48932923?.png
https://tailscale.com/
概要
WireGuard ベースのメッシュVPN構築システム
アカウントを作ったあとはアプリケーションさえインストールすればすぐに使用できる
確認時点では、個人利用であれば以下の機能が使用できる
1アカウント
20デバイス
1サブネットルーター
暗号化されたPeer to Peer 接続
SSO MFA 対応
ファイルの共有(? Shareing とだけ記載がある)
MagicDNS (****.beta.tailscale.com で任意のドメインを指定できる)
https://internet.watch.impress.co.jp/docs/column/shimizu/1303751.html
現在とは状況が異なるが、窓の杜にも特集記事があった
仕組み
https://gyazo.com/df64bbebf9f70dc421c6fb890a9f505f
https://tailscale.com/blog/how-tailscale-works/
tailscale は WireGuard の仕組みをつかって UDP ベースのメッシュ型のVPN接続を簡単にセットアップできるようにする仕組み。
そのため、tailscale 自体はVPNサーバーとしては振る舞わず、VPN接続中のトラフィックも処理しない。
WireGuard でのVPN接続を実現するために、公開鍵の交換などが必要になるので、 tailscale の管理するサーバーの仕組みを使ってうまくやり取りしている。
そのための tailscale Coordination Server は OSS で公開されている (Go実装)
https://github.com/tailscale/tailscale
https://tailscale.com/blog/how-tailscale-works/mesh-network.svg
経路の問題で初手から直接接続できないデバイス同士をつなぐための中継点になるサーバーはいくつか用意している様子。
日本から使用できるものだと、東京のサーバーがある模様。
tailscale で接続したデバイスは、一般的なプライベートIPとして使用できるレンジではなく、ISP Shared Address (100.64.0.0/10) というISP(Internet Service Provider)がCGN(Carrier Grade NAT)で使用するレンジのIPが割り振られる
ref: https://www.geekpage.jp/blog/?id=2012/4/21/1
RFC: https://datatracker.ietf.org/doc/html/rfc6598
対応するVPNに接続したクライアントでなければ、割り振られたIPにアクセスしても通信はできない。