定義:スプリットトンネリングとは何か

スプリットトンネリングは、端末の通信をすべて同じ経路で流すのではなく、「VPNを通す通信」と「VPNを通さずローカル経路で出す通信」を分ける考え方です。たとえば、特定の宛先だけは暗号化された経路で扱い、それ以外はローカルのネットワーク経由のままにできます。

仕組み:実装は「振り分け条件」と「経路制御」

実装の本質は、次の2点を決めて動作させることです。

1つ目は振り分け条件です。一般的に、通信の宛先(IPアドレスやドメイン)、ポート番号、通信の種類、状態(例:アプリ単位、プロファイル単位)などを手掛かりに「VPNへ回す/回さない」を判断します。どの条件が使えるかは、利用するVPN実装やクライアントの機能に依存します。

2つ目は経路制御(ルーティング)です。振り分け条件で「VPNへ回す」と判断された通信は、端末側の経路がVPNトンネル(仮想インターフェース等)へ向くように設定されます。一方、「VPNを通さない」と判断された通信は、既存のローカル経路(通常のデフォルトルートやローカル経路)へ残されます。

結果として、同じ時点でも通信の種類ごとに送信先へ到達する経路が異なり、トラフィックが混在します。

どこまでが対象か:よくある例外と境界

スプリットトンネリングは便利ですが、境界条件が曖昧だと意図しない挙動になり得ます。確認すべきポイントは次のようなものです。

  • DNSの扱い:ドメイン名で振り分ける場合、名前解決(DNS)がどの経路で行われるかにより、判定や結果が変わることがあります。 VPN側で解決する前提なのか、ローカル解決のままなのかを意識する必要があります。