0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

TailscaleのSubnet RouterとExit Nodeの違いを整理する

0
Posted at

はじめに

Tailscaleには、通常の端末間接続に加えて、Subnet RouterとExit Nodeという機能があります。

どちらもTailscaleをインストールした端末を経由して通信する仕組みですが、それぞれ異なる目的で利用します。

  • Subnet Router:Tailscaleをインストールしていない機器が存在するネットワークへアクセスする
  • Exit Node:インターネット向けの通信を、指定した別の端末から送信する

どちらも別の端末を経由しますが、通信の目的と経路が異なります。

今回は、それぞれの仕組みと使い分けについて整理します。

Tailscaleの基本的な仕組み

Tailscaleは、WireGuardを利用してプライベートネットワークを構築できるサービスです。

Tailscaleをインストールした端末を同じネットワーク(tailnet)に参加させると、離れた場所にある端末同士でも通信できるようになります。

例えば、次のような環境を考えます。

【外出先】
ノートPC(Tailscale)
    │
    │ Tailscale
    │
【自宅】
Linuxサーバー(Tailscale)

両方の端末が同じtailnetに参加していれば、外出先のノートPCから自宅のLinuxサーバーへ接続できます。

通常のTailscaleによる端末間接続では、それぞれの端末にTailscaleをインストールします。

しかし、自宅のNASなど、Tailscaleを直接インストールできない機器や、インストールしていない機器にアクセスしたい場合もあります。

このような場合に利用できるのがSubnet Routerです。

Subnet Routerとは

Subnet Routerは、Tailscaleに参加している端末を経由して、別のネットワーク内にある機器へアクセスできるようにする機能です。

例えば、自宅に次のような環境があるとします。

【外出先】
ノートPC(Tailscale)
    │
    │ Tailscale経由
    ▼
【自宅LAN:192.168.1.0/24】
Linuxサーバー
(Tailscale / Subnet Router)
    │
    ├── NAS
    │   192.168.1.10
    │
    └── 自宅サーバー
        192.168.1.20
        (Tailscale未導入)

自宅のLinuxサーバーをSubnet Routerとして設定すると、外出先のノートPCから、自宅LAN内のNASや自宅サーバーへアクセスできるようになります。

このとき、NASや自宅サーバーにはTailscaleをインストールする必要がありません。

通信の仕組み

Subnet Routerでは、接続先となるネットワークの範囲を指定します。

例えば、自宅LANが192.168.1.0/24の場合、Linuxサーバーにこのネットワークへの経路を設定します。

外出先のノートPCから192.168.1.10のNASへアクセスすると、Tailscaleを経由して自宅のLinuxサーバーに通信が送られます。

Linuxサーバーは受け取った通信を自宅LAN内のNASへ転送します。

一方で、ノートPCから一般的なWebサイトへアクセスする場合は、通常のインターネット接続を利用します。

つまり、指定したネットワークへの通信だけを、Tailscale経由で転送するのがSubnet Routerの基本的な役割です。

Exit Nodeとは

Exit Nodeは、Tailscaleに参加している別の端末を、インターネット通信の出口として利用する機能です。

先ほどと同じ環境で、自宅のLinuxサーバーをExit Nodeとして設定した場合を考えます。

【外出先】
ノートPC(Tailscale)
    │
    │ インターネット向け通信
    │ Tailscale経由
    ▼
【自宅】
Linuxサーバー
(Tailscale / Exit Node)
    │
    │ 自宅のインターネット回線
    ▼
インターネット

この構成では、外出先のノートPCからWebサイトにアクセスする際の通信が、自宅のLinuxサーバーを経由するようになります。

通常、外出先のノートPCからインターネットに接続すると、その場所で利用している回線から通信が送信されます。

しかし、Exit Nodeを利用すると、通信はTailscaleを経由して自宅のLinuxサーバーに送られ、そこからインターネットへ転送されます。

そのため、接続先のWebサイトからは、基本的に自宅のインターネット回線のグローバルIPアドレスが通信元に見えます。

Exit Nodeの利用例と注意点

例えば、外出先でも自宅のインターネット回線を経由してWebサイトにアクセスしたい場合に利用できます。

また、外出先のネットワークからインターネットへの通信を自宅経由にまとめたい場合にも利用できます。

ただし、通信は自宅のLinuxサーバーを経由するため、通信速度や安定性は自宅側のネットワーク環境にも影響されます。

また、Exit Nodeを利用したからといって、インターネット上で匿名になるわけではありません。

Subnet RouterとExit Nodeの違い

ここまでの内容を比較してみます。

項目 Subnet Router Exit Node
主な目的 特定のネットワークへアクセスする インターネット通信の出口を変更する
主な通信先 自宅LAN内の機器 インターネット
通信の経路 指定したネットワークへの通信を中継 インターネット向け通信を中継
利用例 外出先からNASへアクセスする 外出先から自宅回線経由でWebサイトを閲覧する
Tailscale未導入機器へのアクセス 可能 そのための機能ではない
通常のインターネット通信 原則として変更しない Exit Node経由になる

どちらを利用するかは、どこへアクセスしたいのかによって異なります。

自宅LAN内のNASやサーバーへアクセスしたい場合はSubnet Routerを利用します。

一方で、自宅のインターネット回線を出口として利用したい場合はExit Nodeを利用します。

どちらも自宅のLinuxサーバーを経由しますが、通信の目的が異なります。

設定方法の違い

両者は通信経路が異なるため、Tailscale側の設定も異なります。

ここではLinuxサーバーを利用する場合の代表的な設定コマンドを紹介します。

なお、以下のコマンドはTailscaleが導入済みであることを前提とした設定例です。実際の利用にはIP転送などの事前設定も必要です。

Subnet Routerの設定

例えば、自宅LANのネットワークが192.168.1.0/24の場合は、次のように指定します。

sudo tailscale set --advertise-routes=192.168.1.0/24

この設定で、LinuxサーバーからTailscaleに192.168.1.0/24への通信を中継できることを通知します。

その後、Tailscaleの管理画面で、指定したネットワークへの経路を承認します。

なお、経路の自動承認が設定されている場合は、手動承認が不要になることもあります。

Exit Nodeの設定

Exit Nodeの場合は、次のように設定します。

sudo tailscale set --advertise-exit-node

この設定で、LinuxサーバーをExit Nodeとして利用できることをTailscaleに通知します。

その後、Tailscaleの管理画面でExit Nodeとしての利用を許可します。

ただし、これだけでは外出先のノートPCの通信経路は変わりません。

実際に利用するノートPC側で、使用するExit Nodeを選択する必要があります。

この点はSubnet Routerとの違いの一つです。

なお、どちらの機能もTailscaleのアクセス制御設定によって、利用できる端末や接続先が制限される場合があります。

Subnet RouterとExit Nodeは併用できるのか

Subnet RouterとExit Nodeは、同じ端末で併用することもできます。

自宅のLinuxサーバーに両方を設定すると、外出先のノートPCから次のような使い方ができます。

  • 自宅LAN内のNASやサーバーにアクセスする
  • 自宅のインターネット回線を経由してWebサイトにアクセスする

ただし、両方を設定した場合も、通信先に応じて適用される経路が異なります。

また、Subnet RouterのSNAT(送信元アドレス変換)を無効にする場合など、ネットワーク構成によっては追加の経路設定が必要になります。

そのため、両方を併用する場合は、通信経路やネットワーク設定を考慮する必要があります。

まとめ

TailscaleのSubnet RouterとExit Nodeは、どちらも別の端末を経由して通信する仕組みですが、目的が異なります。

  • Subnet Router:自宅LANなど、特定のネットワークにアクセスするための仕組み
  • Exit Node:別の端末をインターネット通信の出口として利用する仕組み

Subnet Routerは「特定のネットワークに入るための入口」、Exit Nodeは「インターネットに出るための出口」と考えると、違いを理解しやすいと思います。

どちらを利用するべきか迷った場合は、まず通信先が自宅LANなどの特定のネットワークなのか、それともインターネットなのかを考えるとよいでしょう。

参考資料

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?