Apple が macOS のリモートネットワークコネクタ「Back to My Mac」を廃止して以来、自宅の LAN 外からでも自宅の LAN 上のデバイスにフルアクセスできるシステムを探していました(「Apple、Mojave で Back to My Mac を廃止」2018 年 8 月 25 日の記事参照)。そして見つけたのが Tailscale です。これは企業レベルの仮想ネットワークシステムで、無料プランもあり、ボタンをクリックするだけで簡単に使えます。
Tailscaleのアプリは、インストールされた各デバイスを仮想LAN(VLAN)にリンクします。VLANは、安全な仮想プライベートネットワーク(VPN)接続を使用して、マシンを相互に接続します。このVLANにより、各デバイスは他のすべてのデバイスにアクセスできますが、デフォルトでは、他のデバイスからの受信トラフィックはすべてブロックされます。私がテストしたところ、オープンソースのWireGuardプロジェクトをベースに構築されたTailscaleのテクノロジーは、シームレスで堅牢であることが確認されました。
Tailscale VLANへのアクセスは、他のカフェの利用者や広告ターゲティングの監視者から暗号化されていないトラフィックや閲覧ドメインを隠蔽するために使用するVPN接続とほぼ同じです。ただし、接続のもう一方の端がインターネット上のどこか、あるいは企業のイントラネット内にあるデータセンターではなく、プライベートなクラウドベースのVLANに接続されます。
Tailscale は企業向け製品ですが、一般家庭や中小企業のユーザーにとっても問題を解決し、分かりやすい技術を採用し、無料プランを含め手頃な価格で提供されているため、TidBITS で取り上げることに決めました。Tailscale は以下の 3 つの条件をすべて満たしています。
- これは、ホームゲートウェイによって設定されたルーティング不可能な IP アドレスを使用してプライベート ネットワークにアクセスする際の問題を回避します。
- インストールと操作はほぼワンクリックで完了し、非常によく書かれたドキュメントも付いています。
- Tailscale は、個人使用向けに非常に寛大な無料プランを提供しています。最大 3 人のユーザーが各自最大 100 台のデバイスを接続できます。
自宅やオフィスにリソースを持つローミング ユーザーとして、Tailscale をなぜ、どのように活用できるのかを詳しく説明します。
テールスケールが必要な理由
ネットワークアドレス変換(NAT)は、インターネットの歴史における偉大かつ最悪の発明の一つです。家庭用ルーターなどのゲートウェイで利用可能なNATは、あるネットワークセグメント内のアドレスセットを別のネットワークの1つ以上のアドレスに変換(変換)することを可能にします。
かなり漠然としていますが、ほとんどの人はNATの具体的なユースケースに日々対処しています。家庭や小規模オフィスのネットワークでは、ISPは通常、接続のインターネット側にパブリックにルーティング可能なIPアドレスを1つ割り当てます。ISPはその単一のアドレスを、ゲートウェイ機能を備えたブロードバンドモデム、またはWi-Fiゲートウェイなどのユーザーが管理するデバイスに提供します。
ゲートウェイは、LAN上のすべてのデバイスで単一のパブリックIPアドレスを共有するために、DHCP自動アドレス割り当てシステムを使用して、パブリックマシンには決して割り当てられない複数の予約済みIPアドレスセットから抽出したプライベートネットワークアドレスを割り当てます。これらのアドレスには、192.168と10.0で始まるアドレス(192.168.0.100や10.0.1.1など)が含まれます。

例えば、LAN内のデバイスがWebページをリクエストする場合、そのブラウザはゲートウェイに組み込まれたLANルーターにクエリを送信します。リクエストはまずNATソフトウェアを通過し、NATソフトウェアは内部テーブルにエントリを作成し、そのリクエストをデバイスのプライベートアドレスからパブリックアドレスにマッピングします。レスポンスが届くと、NATはデータを適切なプライベートアドレスを持つデバイスにルーティングします。NATは交通整理の役割を果たします。
このネットワークアドレス変換は、ネットワーク上で毎日何百万回、いや、それ以上の頻度で行われています。透過的で、スムーズに機能します。
しかし、自宅やオフィスの外から LAN にアクセスしたい場合はどうすればよいでしょうか。通常、これは、画面共有などの特定のサービスを LAN 上の固定プライベート アドレスからネットワークのパブリック アドレス上のサービスのポートにマッピングすることで、「NAT をパンチスルー」する必要があることを意味します。これを行うには、ゲートウェイの管理インターフェイスを使用してDHCP 予約とポート転送を設定します。DHCP 予約により、LAN 上のデバイスは、プールから動的にアドレスを取得するのではなく、常に同じプライベート アドレスを保持できます。ポート転送により静的パスが作成され、ルーター上のパブリックにルーティング可能な IP アドレス上の特定のサービスへの要求がそのプライベート アドレスに送信されます。
この設定全体は脆弱であることが多いです。また、通常、各タイプのサービスにアクセスできるインスタンスは1つだけです。例えば、LAN上の2台以上のコンピューターにリモートスクリーンアクセスしたい場合、各接続にパブリックアドレスの異なるポートを割り当てるという追加の作業が必要になり、追加の設定作業が必要になり、回復力が低下します。

ルーターからのアクセスを開放すると、インターネット上のあらゆるデバイスが接続を試みたり、アクセスをブロックしたり、デバイスを攻撃したりできるようになります。ただし、接続元となるリモートネットワークを正確に把握し、それらのネットワークへの接続を制限している場合は別です(ただし、そのようなケースは稀です)。長年にわたり、攻撃者はパブリックIPアドレス全体で一般的に利用可能なサービスをスキャンするのが容易でした。たとえ悪意のある攻撃によってMacやその他のデバイスが侵害される可能性がなかったとしても、ファイルサーバーをうっかりパスワード保護なしのままにしたり、ゲストアクセスのみが必要なファイルを保存したりしてしまう可能性があります。ネットワークのどのドアの取っ手をガチャガチャ鳴らすことができるかを、誰もが知っているようにするのは賢明ではありません。
ルーター経由でアクセスを許可すると、厄介な「二重NAT」の問題も発生してしまいます。私のネットワークでは、この問題に悩まされています。これは、ISPから提供されたブロードバンドモデムがニーズを満たしていなかったり、必要な設定オプションが不足していたりした場合に発生します。そこで、ISPのデバイスに接続する独自のゲートウェイを設置します。ISPのデバイスはDHCPとNATを使用してゲートウェイデバイスにプライベートアドレスを割り当て、ゲートウェイはDHCPとNATを使用して、二重にネストされたネットワーク内で異なるプライベートアドレスを割り当てます。

ゲートウェイを再構成したり、デバイスを誰でも利用できるようにしたりすることなく、パブリック インターネット経由でデバイスに必要に応じてアクセスできるようにすることで、これらすべてを回避できるとしたらどうでしょうか。
「Back to My Mac」もこの機能を提供していましたが、二重NATの影響を受け、Appleが提供するサービスのごく一部しかサポートしていませんでした。Tailscaleは、より堅牢で汎用性の高いソリューションを提供し、多くのユースケースに対応しています。
テールスケールの仕組み
Tailscaleは、VPN接続を使用してVLANを作成することで機能します。VPNでは通常、デバイス上のクライアントソフトウェアがインターネット上の別の場所にあるVPNサーバーに接続します。正しいシークレットを持っていることを証明するための一連のハンドシェイクを実行すると、暗号化されたセッションが開き、低レベルでは、コンピューターとの間のすべてのインターネットトラフィックがこのセッションを通過します。市販のサブスクリプションベースのVPNの場合、トラフィックがユーザーの所在地から離れた場所にあるデータセンターから出れば十分ですが、企業向けVPNの場合、VPNサーバーは企業イントラネット内に配置され、デバイスはその保護されたネットワークの延長となります。
Tailscaleは後者に似た仕組みですが、企業のイントラネットを必要としません。同社はルーティングを支援しますが、仮想ネットワークを通過するデータにはアクセスせず、最小限の情報しかホストせず、秘密(プライベート)暗号鍵がデバイスのエンドポイントに保持されることを保証します。Tailscaleは、すべてのデータが通過する中央ハブを備えたハブアンドスポークシステムではなく、各デバイスが他のすべてのデバイスと安全な接続を確立できるメッシュシステムを構築すると説明しています。
このアプローチによる過剰なオーバーヘッドを回避するため、Tailscaleは集中管理コンポーネントを1つだけ備えています。それは、ゼロ知識鍵リポジトリです。このリポジトリを通じて、デバイスは単一のポイントに接続し、相互通信に必要な暗号鍵を交換できます。鍵はデバイス上で生成され、安全に保管されるため、Tailscaleは鍵の内容を把握できません。データは、いかに暗号化されていても、この専用の制御チャネルを通過することはありません。
つまり、デバイスに Tailscale アプリをインストールし、アカウントに接続すると、各デバイスは他のすべてのデバイスに表示されますが、他のユーザーには表示されなくなります。
最近の旅行でTailscaleを試してみましたが、macOSの画面共有アプリ経由の画面共有とFinderベースのSMBファイル共有で優れたパフォーマンスを実感しました。多くのセッションで、同じネットワーク上にいるのと同じくらい簡単で、わずかに遅いだけでした。私のインターネット接続は約300Mbpsの対称インターネット接続で、自宅のネットワークはギガビットインターネットです。
Tailscaleは、ローカルネットワーク経由で送信されるDNSのブロードキャスト形式を利用するAppleのBonjourネットワーク検出プロトコルをサポートしていません。技術的な理由により、ブロードキャストネットワークメッセージはこの種の設定では機能しません。つまり、LANベースのリソースに接続するためのシンプルなネットワーク検出を行うことはできません。
しかし、Tailscaleは代替手段を提供します。まず、Tailscale LAN上のすべてのデバイスには、アカウントに登録されている間、パブリックにルーティング可能なIPアドレスが設定され、固定されます。これらのIPアドレスには、あなたまたはあなたのアカウントの他のユーザー以外はアクセスできませんが、時間の経過とともに静的かつ一意に設定されます。次に、Tailscaleは各デバイスにホスト名を割り当てます。ホスト名はカスタマイズ可能で、Tailscaleのts.netドメインのサブドメインと組み合わせることもできます。どのデバイスからでも、静的IPアドレスまたは完全修飾ホスト名を使用して接続できます。ホスト名の確認方法については、以下で説明します。
Tailscaleは、別の種類のデバイス設定もサポートしています。サードパーティ製ソフトウェアは、Tailscaleをコンポーネントとして組み込み、単一のサービスだけを共有できます。私はChannels DVR Serverを使って、イーサネット接続のTVチューナーから無線テレビ番組を録画しています。DVR Serverの詳細設定には、Tailscaleを有効にするオプションがあり、Tailscaleネットワーク上にDVR Server専用の「デバイス」が作成されます。外出先でもChannelsクライアントソフトウェアを使って自宅ネットワークのサーバーに接続し、大学生の上の息子にアクセス権を与えて、自宅で録画した番組を視聴できるようにしました(特に「Jeopardy!」は家族みんなで見ています)。
Tailscaleの設定方法
詳しく見ていくと、Tailscale を自分でセットアップする方法は次のとおりです。
- アカウントを登録してください。Tailscaleは独自のログインアカウントを管理していないため、「Sign up with Apple」などのサードパーティによるSSO(シングルサインオン)を使用する必要があります。
- アプリをインストールします。Tailscale には、主要なモバイルおよびデスクトップ プラットフォーム向けのアプリに加え、tvOS を含む一部のストリーミング オペレーティング システム向けのアプリがあります。
- ホスト名を設定します。Tailscaleは、AppleデバイスのBonjour/sharing名と、他のハードウェアの同様のネットワーク名を使用して、「Tailnet」と呼ばれるネットワーク上の機器に一意の名前を付けます。名前はWebダッシュボードの「マシン」タブで変更できます。わかりやすい、それでいて認識しやすい短い名前にすることをお勧めします。
- サブドメインを変更しましょう。Tailscaleは、Tailnetドメインに.ts.netで終わるランダムな名前を自動的に作成します。アカウントのDNSタブに移動し、「Tailnetの名前を変更」をクリックすると、覚えやすく入力しやすい、面白い単語の組み合わせが自動的に生成されます。
- リモート接続や共有に使用するデバイス名を見つけましょう。Tailnet内のすべてのデバイスの完全修飾ホスト名とIPアドレスは、Webダッシュボードの「マシン」タブ、macOSのTailscaleメニュー、iOS/iPadOSのTailscaleアプリなど、複数の場所で確認できます。これらの場所で、タップ、選択、またはマウスオーバーすると、デバイス名の様々な形式を示すメニューが表示されます。その中から1つをタップまたはクリックしてコピーできます。
- 他のユーザーを招待しましょう。共有リソースを作成する場合、無料のパーソナルプランでは自分を含めて3人まで、月額5ドルのパーソナルプラスプランでは6人まで招待できます。
Tailscaleは、個人利用とみなすものについて、例を挙げて明確に説明しています。「これらのユースケースには、友人とゲームをしたり、DigitalOceanのドロップレットからRaspberry Pi、家庭用防犯カメラ、さらにはSteam Deckまで、あらゆるデバイスに安全に接続したりすることが含まれます。」ビジネスプランは「月間アクティブユーザー」で月額6ドルから開始されます。特定のアカウントがその月にTailscaleでインタラクトした場合にのみ料金が発生します。
複雑さを覆い隠すシンプルさの中に美しさがあります。これは、自分自身や仕事に必要なツールによくある、見苦しいインターフェースや複雑な設定とは正反対です。Tailscaleは、ウェブサイト、製品、そして文章を通して、自らが目指す難解な提案を分かりやすく見せることに優れた才能を持っています。ユーザーである私たちにとって、それはまさにその通りです。
グレン・フライシュマンは、近日発売予定の『Take Control of Apple Screen and File Sharing』の著者です。この本は、Appleユーザーが自分や他のユーザーのデバイスの画面を共有・ミラーリングし、ファイルサーバーやクラウドベースのストレージからファイルを共有・アクセスするためのガイドです。Take Control Booksより2月下旬に刊行予定です。