TailscaleのSubnet RouterとExit Nodeは、通信の行き先で使い分ける

TailscaleのSubnet RouterとExit Nodeは、どちらも一台の端末を別の通信先への中継に使います。名前と設定画面だけを見ると似ていますが、選択基準は単純です。届けたい宛先がLAN内の限定された範囲か、インターネット全体かで分けます。

「Subnet RouterはLAN内の特定範囲へ、Exit Nodeはインターネット全体へ通信を送る」では、この違いを短くまとめました。この記事では、クライアントへ渡される経路と、設定後に何を確認するかまで整理します。

まず全体像

Subnet RouterとExit Nodeの通信先の違い 外出先の端末から、Subnet Routerを選ぶと自宅LANの特定範囲へ通信し、Exit Nodeを選ぶとインターネット向けの既定経路を別端末へ送る 外出先の端末 Tailscale接続済み Subnet Router LAN範囲の経路を広告 Exit Node 既定経路を引き受ける 自宅LAN内 NAS・プリンターなど インターネット Webサイトなど
中継端末ではなく、最終的に届けたい宛先を基準に選びます。図は横へスクロールできます。

Subnet Routerは特定のプライベートネットワークへ届ける

Subnet Routerは、自分が到達できるIP範囲を、tailnet(Tailscaleで同じネットワークとして扱う端末群)へ経路として知らせる端末です。例えば自宅LANの範囲を知らせると、外出先のTailscale端末は、その範囲宛ての通信をSubnet Routerへ送ります。

用途は、Tailscaleクライアントを直接入れられない機器への接続です。プリンター、NAS、カメラ、管理画面を持つネットワーク機器などが当てはまります。

設定後は、次の3点を確認します。

  • ルーター端末が経路を通知している
  • 管理画面で経路が承認されている
  • どの端末がどの機器へ通信できるかを、アクセス規則で許可している

経路が承認されていても、アクセス規則で通信が許可されていなければ届きません。経路と許可は別の層です。

TailscaleのSubnet Routerは、既定で送信元IPを中継端末のIPへ書き換えます。この処理をSNATと呼びます。そのため、LAN内の機器からは接続元がSubnet Routerに見えます。

元の送信元IPを保持する構成もありますが、戻り経路の設計が必要です。家庭内の小さな構成なら、まず既定値のまま到達を確認すると切り分けやすくなります。

Exit Nodeはインターネット向けの既定経路を引き受ける

通常のTailscale接続では、tailnet内や、経路として知らされたLANの範囲宛てだけがTailscaleを通ります。Webサイトなどへの通信は、端末が現在つながっている回線から直接出ます。

Exit Nodeを選ぶと、クライアントの非Tailscale通信はその端末を経由します。Exit Nodeが、宛先を限定しないインターネット向けの既定経路を引き受けるためです。

経路表では、IPv4を0.0.0.0/0、IPv6を::/0と表します。

Exit Nodeとして広告する設定と、管理者による許可に加え、使う側の端末でもExit Nodeを明示的に選びます。Exit Nodeへ接続しただけで、自動的に全通信が切り替わるわけではありません。

また、Exit Node利用中はクライアントのローカルLANへ到達できなくなるのが既定です。必要な場合は、ローカルネットワークへのアクセスを許可する設定を別に有効にします。

宛先を経路表へ置き換える

二つの機能は、通信の目的を経路へ置き換えると区別できます。

やりたいこと 選ぶ機能 配る経路 通信の出口
自宅LAN内の特定機器へ接続する Subnet Router 広告したプライベートIP範囲 そのLANに接続したルーター端末
インターネット通信を自宅などから出す Exit Node IPv4・IPv6の既定経路 選択したExit Node

両方を同じ端末で提供することもできます。ただし、同じ端末で両方を動かせても、使い分けは必要です。

障害時の切り分けでは、LAN内の広告経路が使えないのか、既定経路の選択ができていないのかを分けて確認します。

設定後は最終宛先まで確かめる

Subnet Routerでは、ルーター端末のTailscale IPへ届くだけでは不十分です。その先のLAN内機器へ接続します。戻りの通信まで成立することも確認します。

Exit Nodeでは、クライアントがExit Nodeを選択していることを確認します。さらに、インターネット側から見える送信元がExit Node側へ変わったかを確かめます。

ローカルLANアクセスを許可した場合は、Exit Node利用中にも手元のLANへ届くかを別に試します。

Wake on LANのようにブロードキャストが関係する用途は、さらに確認が必要です。「Tailscaleでスリープ中PCを起こす構成を、通信経路から順に整理する」で書いたとおり、IPの経路があることと、LAN内のネットワークアダプターへマジックパケットが届くことは同じ検査ではありません。

まとめ

Subnet Routerは、広告したプライベートネットワークへ通信を送ります。Exit Nodeは、インターネット向けの既定経路を引き受けます。

どちらもTailscale端末が通信を中継しますが、判断基準は中継端末の種類ではありません。最終宛先がLAN内の限定された範囲ならSubnet Router、インターネット全体ならExit Nodeを選びます。

参考資料