スプリットトンネリングとは何を「コントロール」することか
スプリットトンネリング(split tunneling)をコントロールするとは、端末から発生する通信のうち「どれをVPN経由にするか/どれを通常のインターネット経由にするか」をルールで振り分けることです。たとえば、特定のアプリだけをVPNで保護しつつ、ほかの通信は自宅回線や会社回線のままにしたい、という目的で使われます。
ここで重要なのは、「VPNに接続しているか」だけでは通信の経路は決まらない点です。VPN接続が有効でも、スプリットトンネリングのルールによって“VPNを通る通信”が部分的に指定されるため、想定外の通信がVPN外へ出ていないかを確認する必要があります。
仕組みの基本モデル:経路選択とルール
スプリットトンネリングは、概ね次の要素で整理すると理解しやすくなります。
- 分類(マッチング):通信を、宛先(IP/ドメイン/ネットワーク)、ポート、アプリ、経路などの条件で判定します。
- 判断(ルーティング方針):マッチした通信を「VPN経由」または「通常経由」に割り当てます。
- 優先順位:複数ルールがある場合、どのルールが勝つか(上書きされるか)が結果を左右します。
この“分類→判断→優先順位”という流れが崩れると、意図した通信だけがVPNで処理されません。たとえば「特定ドメインはVPN経由」にしていても、実際には別の解決経路(DNSの扱い、アプリの挙動)によって判定に必要な情報がルールと一致しないことがあります。結果として、同じサービスに見えても、通信単位では分岐が起きる可能性があります。
また、DNSは特に影響が出やすい要素です。宛先がドメイン名で指定されている場合、最終的な接続先(IP)が何として解決されるかで“どのルールに当たるか”が変わります。そのため、DNS関連の挙動(VPN側で解決するか、端末の通常DNSを使うか等)を意識して確認することが重要です。
コントロールの方法:ルールの書き方で考える
実装やUIはサービスごとに違いますが、スプリットトンネリングのコントロールは一般に次のような指定単位で行われます。
- 宛先ベース:特定のIP帯域、国・地域のネットワーク、特定のドメインに一致した通信だけをVPN側へ。
- アプリベース:特定のアプリの通信だけVPN経由、その他は通常経由。
- プロトコル/ポートベース:特定のポート番号やプロトコルに一致する通信だけをVPN側へ。
実務上は、まず「入れたい通信」と「出したくない通信」を言語化し、その差分からルールを作るのが安全です。次に、ルールが複数ある前提で優先順位を確認します。たとえば「VPN経由を広めに許可」するルールの後に「VPN外を明示的に拒否」するルールが来るのか、逆なのかで結果が変わります。
さらに、VPN経由にしたい“通信の種類”が本当に通信単位として判定可能かも見極めます。
