KUROKOTO LAB
SplitLane ガイド — 第2章 / 全6章

基本概念

split routingの仕組み、トラフィックモード、ルールとグループの関係。

split routingの仕組み

多くのVPNクライアントは、接続すると同時にMacの Default Route をVPNインターフェースへ向けます。その結果、どのアプリのどの通信であっても、まずVPNトンネルを経由することになります。SplitLaneは既定でこの逆を行います。あなたが登録した宛先だけをVPN経由にし、それ以外はすべて直通にします。

具体的には、ルールを適用すると、SplitLaneのPrivileged Helperが次の操作を行います。

  1. 各ルールの宛先について、VPNインターフェースへ向けた経路を追加します(route add -net <cidr> -interface <vpnインターフェース>)。
  2. Macの Default Route が物理ネットワークインターフェース(Wi-Fiまたは有線LAN)に向いていない場合、そこへ復元します。この動作は既定で有効ですが、フルトンネルのポリシーが必要な環境向けに、RuleSetごとにSettingsで無効化できます。

結果として、ルールに登録した宛先への通信はVPN経由になり、ビデオ会議・ブラウジング・クラウドストレージなど、それ以外の通信はすべて直通になります。SplitLaneはVPN接続そのものは確立しません。すでにお使いのVPN接続に対して、経路だけを管理します。

トラフィックモード

Dashboardには3択の トラフィックモード 切替があり、個々のルールに触れずに「それ以外」の扱いを切り替えられます。

  • スプリットルーティング(既定) — 上記のとおり、ルールに登録した宛先だけがVPN経由になります。
  • すべてVPN経由 — ルール単位の経路操作を行わず、すべての通信をVPNインターフェース経由にします。VPN未接続時は選択できません。
  • すべて直通 — 経路操作の観点では、すべての通信をVPNを経由せず物理ネットワークへ向けます。

Dashboardの経路図は(あなたの意図ではなく)実際に観測された状態を反映します。想定と食い違う場合は確認する価値があります。モードの切り替えに確認ダイアログはありません。スプリットルーティング(または他のどのモード)へもワンクリックで戻れるようにという設計です。

スプリットルーティング以外のモードになっている間は、Rules・Dashboard・メニューバーのどこからでもApply/Reloadが無効化されます。ルールの変更自体は保存されますが、スプリットルーティングへ戻すまで適用対象がありません。

ルールとグループ

すべてのルールは IP/CIDR ルールまたは domain ルールのいずれかで、任意で1つの グループ に所属できます。グループを使うと、関連するルールの集まりをまとめて有効/無効にできます。「このクライアント案件向けの全ルール」「検証環境向けアクセス」のようなまとまりに便利です。

あるルールが 実効的に有効 とみなされるのは、次の両方が成り立つ場合だけです。

  • そのルール自身の有効/無効スイッチがONであること、かつ
  • そのルールが未分類(グループ未所属)であるか、所属グループが有効であること。

グループの有効/無効切替、削除、ルールのグループ移動はいずれもルールセットをdirty(未適用の変更あり)にします。グループの改名や、空のグループ作成はdirty化しません。グループを削除しても所属していたルール自体は削除されず、未分類 へ移動します。

自動再適用 — とその制限

既定では、SplitLaneはVPNの再接続を検知し、直近に確定していたルールセットを自動的に再適用します。接続のたびにアプリを開いてApplyを押す必要はありません。この処理はインターフェースがUPになった直後、短いデバウンス(数秒の待機)を挟んで実行され、VPNクライアント自身の経路設定と競合しないようにしています。

この自動再適用には、実運用上重要な2つの制限があります。

  • アプリが起動していない間は、domainルールの再解決は行われません。 VPN再接続時にSplitLaneが開いていない場合、domainルールは新規に解決されるのではなく、直近に解決済みだったIPアドレスのまま適用されます。改めて解決させたい場合は、SplitLaneを開いて Reload を押してください。
  • アプリが起動していない間は、Default Route は自動復元されません。 ルール以外の通信を直通に保つための仕組みであるDefault Route復元は、SplitLaneのウインドウまたはメニューバーが動作していて初めて再実行されます。SplitLaneが起動していない間にVPNが再接続すると、Macは一時的に「すべてVPN経由」の状態のように振る舞います。ルール宛先への経路自体は正しく維持されますが、それ以外の通信もVPN経由になり、次にSplitLaneを開いた時点でスプリット状態が回復します。

どちらも不具合ではなく、監視するアプリがない状態でPrivileged Helperがdefault routeを無断で変更しないための意図的なトレードオフです。アプリを開いてReloadを押せば、常に状態を揃え直せます。