もし複数のコンピュータやネットワーク接続ストレージなどのコンピュータに隣接するデバイスを所有している場合、それらすべてのデバイスに常にアクセスできることを望むでしょう。
家にあるSynologyのファイルを車の助手席にいるときに確認したい場合、いつでもできるようにしたいのです。
これを最も簡単に実現する方法は、リモートアクセスに必要なデバイスのポートをルーターやファイアウォールで開放することです。
しかし、これによりデバイスがインターネット全体にさらされてしまい、望ましくありません。
従来のVPN
この問題の簡単な解決策はバーチャルプライベートネットワーク(VPN)です。これは、ネットワーク内にサーバーを設置し、外部のデバイスがそのネットワークにトンネル接続できるようにすることを意味します。
VPNに接続したデバイスは、そのネットワーク内のすべてにアクセスできます。
言い換えれば、自宅に設置したVPNにスマホが接続されていれば、スマホは自宅内のすべてのデバイスにアクセスできます。多くの企業VPNも同様に機能します。
やや簡略化して説明すると、従来のVPNは、トンネル先のネットワーク内に1台のサーバーが存在し、すべてのクライアントがそのサーバーに接続する形態の「ファネル」のようなものです。これにより設定は簡単ですが、VPNに接続するかしないかのどちらかの全か無かの状態になります。
もっと良い方法があれば?
Tailscale
Tailscaleは、世界中どこからでもデバイスやアプリケーションに安全かつ簡単にアクセスできるVPNサービスです。オープンソースのWireGuardプロトコルを利用した暗号化されたポイントツーポイント接続を実現しています。
基本的に、あなたのプライベートネットワーク内のデバイスだけが相互に通信できます。
Tailscaleのアプローチ
- 分散型 : ノードを直接接続して中央集権を回避します。
- 低遅延 : デバイスは直接通信するため、遅延が低減されます。
- 高スループット : マシン間の通信が直接行われるため効率が向上します。
- キー交換と調整 : Tailscaleは公開鍵交換とノード間の接続調整を管理します。
- ネットワークトラフィック : トラフィックは通常、最短経路かつ最良の性能となるようノード間で直接流れます。
- 使いやすさ : Tailscaleはユーザーフレンドリーに設計されており、ユーザーの設定負担は最小限です。
WireGuardプロトコルと分散型ネットワーク構造を活用して、Tailscaleはデバイスの場所を問わず安全かつ効率的に接続する方法を提供します。
動作の仕組み
Tailscaleは高速かつ信頼性が高いです。従来のVPNとは異なり、中央ゲートウェイサーバーを介して全トラフィックをトンネルするのではなく、ピアツーピアのメッシュネットワーク(tailnet)を構築します。
中央ゲートウェイはユーザーに近いとは限らず、それが遅延増加の原因になります。トラフィックが集中するため、ボトルネックとなり接続が遅くなることもあります。
Tailscaleでは各デバイスが直接他のデバイスと接続されるため、遅延が低減されます。
誰のため?
開発者はTailscaleを使って、ファイアウォールルールやネットワーク設定の煩わしさなしにチームに実験的サービスを公開できます。
小規模事業者は従来のVPNに何千ドルもかけず、在宅勤務の従業員に数分で安全な機密リソースアクセスを提供できます。
企業リーダーは内部ネットワークの複雑さを大幅に減らしてセキュリティリスクを軽減できます。アクセス制御リスト(ACL)と既存のIDプロバイダーを利用して、各ユーザーに必要なアクセス権だけを付与できます。会計担当者は給与システムへ、サポートチームはバグトラッカーへ、開発者はサーバーやデータベースへアクセス可能です。
用語と概念
アクセス制御リスト
アクセス制御リスト(ACL)はtailnetポリシーファイル内のルールでシステムアクセスを管理します。ACLを使い、誰がどのリソースを使用できるかを管理してトラフィックをフィルターし、セキュリティを強化できます。
CLタグ
タグはデバイスに(人間のユーザーとは別の)IDを割り当てます。アクセスルールでタグを使いアクセス制限を設定できます。
管理コンソール
管理コンソールはTailscaleネットワークを表示・管理する中心の場所です。ネットワーク上のノード、ユーザーとその権限、キーの有効期限などの設定を管理できます。クライアントの更新がある場合も通知されます。コンソールでの変更は、調整サーバーで即座にtailnetに反映されます。
API
APIはアプリケーションプログラミングインターフェースの略です。APIはプログラムからサービスやアプリケーションとやり取りするルールを定義します。Tailscale APIはアカウントとtailnetの管理が可能です。
CLI
CLIはコマンドラインインターフェースの略です。Tailscale CLIはGUIアプリにない機能も備えた豊富なコマンドセットを持ちます。Linux、macOS、WindowsでTailscaleをインストールすると自動で導入されます。
調整サーバー
調整サーバーは、Tailscaleネットワークのすべてのマシンと接続を維持する中央サーバーです。暗号鍵、ネットワーク変化、アクセスポリシーの変更を管理し、すべてのマシンと接続を保ちます。これはコントロールプレーンの一部であり、データプレーンではありません。トラフィックの中継を行わず、性能上のボトルネックを回避します。
デバイス
デバイスとはユーザー以外のものを指し、物理的または仮想的で、Tailscaleネットワーク上でデータの送受信や処理を行います。
デバイスキー
デバイスキーは特定のデバイス固有の公開鍵と秘密鍵のペアです。複数のユーザーが同一のデバイスキーを使うことは可能ですが、デバイスは1つのデバイスキーのみを持ちます。特定ユーザーとデバイスキーの組み合わせがユニークなノードを表します。
ファイアウォール
ファイアウォールは2点間のネットワークトラフィックを制限します。ハードウェアまたはソフトウェアで構成されます。Tailscaleにはドメインのアクセスルールで定義される組み込みファイアウォールがあります。
IDプロバイダー
IDプロバイダーはユーザーがtailnetへ認証する方法です。Google、Okta、Microsoftなどが例です。Tailscale自身はIDプロバイダーではなく、外部のIDプロバイダーに認証を依存しています。
キーの有効期限
キーの有効期限は暗号鍵の有効期間の終了です。有効期限切れのキーは暗号化や復号、Tailscaleネットワークへの認証に使用できません。
Tailscaleは鍵の管理を不要にします。鍵は自動的に期限切れとなり、定期的に再生成が必要です。管理コンソールから長期間使うデバイスで有効期限を無効化できます。
MagicDNS
MagicDNSはTailscaleネットワークのデバイスに覚えやすいホスト名を自動登録します。DNS機能を拡張し改善します。
NATトラバーサル
NATはネットワークアドレス変換の略です。NATトラバーサルはファイアウォールなどの障壁を越えてノード間をインターネット経由で接続する方法です。多くのインターネットデバイスはファイアウォールやNATのために直接通信できませんが、NATトラバーサルはそれを回避して通信を可能にします。
ネットワークトポロジー
ネットワークトポロジーはネットワーク内のノード配置を示し、接続関係を表します。スター型、バス型、ハブアンドスポーク、メッシュ、ハイブリッドなどがあります。
従来のVPNはハブアンドスポーク型で、すべての通信が中央ゲートウェイを通ります。Tailscaleはメッシュ型で、各マシンがNATトラバーサルを使い直接通信します。
ノード
ノードはユーザーとデバイスの組み合わせです。
ピア
ピアはノードが通信しようとする相手のノードです。同じドメインにいる場合もあれば異なる場合もあります。
リレー
リレーはネットワーク内の複数ノード間でデータを中継するサーバーです。TailscaleはDERP(Designated Encrypted Relay for Packets)と呼ばれる、失敗時のフォールバックとして機能するグローバル分散型リレーサーバーを使います。
SSO
SSOはシングルサインオンの略です。SSOによりユーザーは一つのサイトで別のIDを使ってログインできます。
Tailnet
TailnetはTailscaleネットワークの別称で、ユーザー、マシン、リソースの相互接続された集合体です。コントロールプレーンとデータプレーンが連携してアクセス管理とノード間通信を行います。
パーソナルtailnetは単一ユーザー向け共有ドメイン(例: gmail.com)で、組織tailnetはカスタムドメイン(例: example.com)です。
Tailnetポリシーファイル
TailnetポリシーファイルにはTailscaleネットワークのアクセスルールやその他tailnet設定が格納されます。ヒューマンJSON(HuJSON)形式で、Tailscaleポリシー構文に準拠しています。
Tailscale IPアドレス
Tailscale IPアドレスはTailscaleネットワーク内の各マシンに割り当てられる固有IPアドレスで、100.x.y.z形式(例: 100.101.102.103)です。自宅のインターネット接続や携帯ネットワーク、カフェのWi-Fiを切り替えても変わりません。
トンネル
ネットワーキングでトンネルは、ネットワーク内の1か所または複数間のカプセル化接続を指し、ユーザーやノード、リソースが公共のデータネットワーク上で安全に通信できます。
WireGuard
WireGuardはTailscaleの基盤となる暗号プロトコルです。
MacOS、Linux、iOS、Android、Windows向けクライアントのモダンな設計も忘れてはなりません。
ディスカッション
コメントを残す
ゲストコメントはサイトに表示される前に審査されます。
まだコメントはありません。最初のコメントを残してディスカッションを始めましょう!