Split Tunnels では、IP アドレスまたはドメインを Cloudflare One Client(旧称 WARP)経由から除外または含めるよう設定できます。よくある用途は、VPN と並行して Cloudflare One Client を動かす場合(Exclude モード)や、特定のプライベートネットワークへのアクセスを提供する場合(Include モード)です。
Split Tunnels は、ネットワークレベルで Gateway が可視化できる対象を制御します。そのため、エンドユーザーへ変更を展開する前に、すべての変更をテストすることを推奨します。
- Cloudflare ダッシュボード ↗ で Zero Trust > Team & Resources > Devices > Device profiles > General profiles を開きます。
- 変更する デバイスプロファイル を探し、Configure を選びます。
- Split Tunnels までスクロールします。
- (任意)現在の Split Tunnel 設定を確認するには、Manage を選びます。選んでいるモードに応じて、Cloudflare Zero Trust が除外または含める IP とドメインの一覧が表示されます。モードを切り替えるとエントリはデフォルトに戻るため、Split Tunnel のエントリはコピーしておくことを推奨します。
- Split Tunnels でモードを選びます。
- Exclude IPs and domains — (デフォルト)指定した IP とドメインを除き、すべてのトラフィックを Cloudflare Gateway へ送ります。
- Include IPs and Domains — 指定した IP またはドメイン向けのトラフィックだけを Cloudflare Gateway へ送ります。それ以外のトラフィックは Gateway をバイパスし、ネットワークポリシーや HTTP ポリシーではフィルタされなくなります。一部の機能を使うには、Zero Trust ドメイン を手作業で追加する必要があります。
-
cloudflare_api_token↗ に次の権限を追加します。Zero Trust Write
-
変更する
cloudflare_zero_trust_device_default_profile↗ またはcloudflare_zero_trust_device_custom_profile↗ リソースを選ぶか、新しいデバイスプロファイルを作成 します。 -
デバイスプロファイルで、
excludeまたはinclude引数のどちらかを設定します。同じデバイスプロファイルでexcludeとincludeの両方は設定できません。a. Exclude モードで Split Tunnel のルートを管理するには、
exclude引数を使います。resource "cloudflare_zero_trust_device_custom_profile" "exclude_example" { account_id = var.cloudflare_account_id name = "Custom profile in Split Tunnels Exclude mode" enabled = true precedence = 101 service_mode_v2 = {mode = "warp"} match = "identity.email == \"[email protected]\"" exclude = [{ address = "10.0.0.0/8" description = "Example route to exclude from WARP tunnel" }] }この例では、
10.0.0.0/8向けのトラフィックを除き、すべてのトラフィックを Cloudflare Gateway へ送ります。Cloudflare が推奨するデフォルトの IP とドメインを除外するには、ルートを追加する を参照してください。b. Include モードで Split Tunnel のルートを管理するには、
include引数を使います。resource "cloudflare_zero_trust_device_custom_profile" "include_example" { account_id = var.cloudflare_account_id name = "Custom profile in Split Tunnels Include mode" enabled = true precedence = 101 service_mode_v2 = {mode = "warp"} match = "identity.email == \"[email protected]\"" include = [{ address = "10.0.0.0/8" description = "Example route to include in WARP tunnel" }] }この例では、
10.0.0.0/8向けのトラフィックだけを Cloudflare Gateway へ送ります。
このデバイスプロファイルを使うすべてのクライアントは、新しいモードとそのデフォルトのルート設定に切り替わります。次に、Split Tunnel の設定からルートを 追加 または 削除 します。
-
Cloudflare ダッシュボード ↗ で Zero Trust > Team & Resources > Devices > Device profiles > General profiles を開きます。
-
変更する デバイスプロファイル を探し、Configure を選びます。
-
Split Tunnels で、Split Tunnels のモード が Exclude か Include かを確認します。
-
Manage を選びます。
-
ルートは IP アドレスまたはドメインで除外または含められます。可能な場合は、ドメインではなく IP アドレスの追加を推奨します。ドメインを追加した場合の影響は ドメインベースの Split Tunnels を参照してください。
Split Tunnels に IP アドレスを追加する手順は次のとおりです。
- IP Address を選びます。
- 除外または含める IP アドレス、または CIDR を入力します。
- Save destination を選びます。
この IP アドレス宛のトラフィックは、WARP トンネルの対象から除外、または対象に含まれるようになります。
Split Tunnels にドメインを追加する手順は次のとおりです。
- Domain を選びます。
- 除外または含める 有効なドメイン を入力します。
- Save destination を選びます。
- (任意)ドメインに公開 DNS レコードがない場合は、Local Domain Fallback エントリを作成し、プライベート DNS サーバーで名前解決できるようにします。
ユーザーがそのドメインへアクセスすると、Local Domain Fallback の設定(Gateway またはプライベート DNS サーバー)に従って解決されます。Split Tunnels は、DNS ルックアップで返された IP アドレスを動的に含め、または除外します。
-
cloudflare_api_token↗ に次の権限を追加します。Zero Trust Write
-
変更する
cloudflare_zero_trust_device_default_profile↗ またはcloudflare_zero_trust_device_custom_profile↗ リソースを選ぶか、新しいデバイスプロファイルを作成 します。 -
(任意)複数のデバイスプロファイルで再利用できる Split Tunnel ルートのリストを作成します。たとえば、デバイスプロファイルと同じモジュールでローカル値を宣言できます。
split-tunnels.local.tftf locals { global_exclude_list = [ # Default Split Tunnel entries recommended by Cloudflare { address = "ff05::/16" }, { address = "ff04::/16" }, { address = "ff03::/16" }, { address = "ff02::/16" }, { address = "ff01::/16" }, { address = "fe80::/10" description = "IPv6 Link Local" }, { address = "fd00::/8" }, { address = "255.255.255.255/32" description = "DHCP Broadcast" }, { address = "240.0.0.0/4" }, { address = "224.0.0.0/24" }, { address = "192.168.0.0/16" }, { address = "192.0.0.0/24" }, { address = "172.16.0.0/12" }, { address = "169.254.0.0/16" description = "DHCP Unspecified" }, { address = "100.64.0.0/10" }, { address = "10.0.0.0/8" } ] } -
デバイスプロファイルで、IP アドレスまたはドメインに基づいてルートを除外または含めます。
device-profiles.tftf resource "cloudflare_zero_trust_device_custom_profile" "example" { account_id = var.cloudflare_account_id name = "Example custom profile with split tunnels" enabled = true precedence = 101 service_mode_v2 = {mode = "warp"} match = "identity.email == \"[email protected]\"" exclude = concat( # Global entries local.global_exclude_list, # Profile-specific entries [ { address = "192.0.2.0/24" description = "Example IP to exclude from WARP" }, { host = "example.com" description = "Example domain to exclude from WARP" } ] ) }可能な場合は、ドメインではなく IP アドレスの追加を推奨します。ドメインを追加した場合の影響は ドメインベースの Split Tunnels を参照してください。
新しく更新した設定がデバイスへ反映されるまで、最大 10 分かかることがあります。
Split Tunnels のリストは短く保つことを推奨します。各エントリの解析にクライアント側で時間がかかるためです。とくにドメインは、その場での IP ルックアップとルーティングテーブル / ローカルファイアウォールの変更が必要なため、IP アドレスより処理が遅くなります。リストが短いと、設定の把握とデバッグも容易になります。デバイスプロファイルの制限は アカウントの制限 を参照してください。
サイトに対して Gateway を完全にバイパスする必要がある場合、または Cloudflare One Client が作成するファイアウォール 経由でトラフィックを許可する場合に Split Tunnels を使います。よくあるシナリオは次のとおりです。
- エンドユーザーデバイスの実際の IP アドレスを必要とするサードパーティアプリケーションに接続する(例: Microsoft 365)。
- 音声と動画を最適化する。
- サードパーティ VPN エンドポイントに接続する。
Gateway ログでトラフィックを確認したい場合は、Split Tunnels からサイトを除外しないでください。特に、次の目的で Split Tunnels を使うことは推奨しません。
- 特定の Web サイトの接続問題を解決する。設定の指針は トラブルシューティングガイド を参照してください。
- 特定の Web サイトのパフォーマンス問題を解決する。Cloudflare はインターネット接続人口の 95% から 50 ミリ秒以内で運用しているため、通常はトラフィックを Cloudflare 経由で送るほうが速いです。パフォーマンス関連の問題がある場合は、まず Gateway ポリシーを確認するか、サポートへ問い合わせてください。
多くの Cloudflare Zero Trust サービスは、デバイスポスチャチェック や デバイスクライアントのセッション期間 のように、トラフィックが Cloudflare One Client を通過することに依存します。Split Tunnels を Include モードで使う場合は、これらの機能が動くように Cloudflare Zero Trust のドメインと IP を手動で追加する必要があります。
Split Tunnels を Include モードで使う場合は、次のドメインを含める必要があります。
- Cloudflare Zero Trust への認証に使う IdP
<your-team-name>.cloudflareaccess.com- Access または Gateway ポリシーで保護しているアプリケーション
- Browser Isolation を使う場合は
edge.browser.run
Split Tunnels を Include モードで使い、ブロックページ を有効にした DNS ポリシー がある場合は、ブロックされたドメインが解決する IP を含める必要があります。専用または BYOIP のリゾルバー IP を使っていない限り、ブロックページは次に解決します。
162.159.36.12162.159.46.12
Traffic only モード では、Split Tunnels に ドメインを追加 できません。Split Tunnels を Include モードで使う場合は、代わりに <your-team-name>.cloudflareaccess.com に解決する IP を含める必要があります。
104.19.194.29104.19.195.29
Exclude モードでは、デフォルトのデバイスプロファイルが CGNAT 範囲(100.64.0.0/10)を除外します。この範囲にはデフォルトの デバイス IP 範囲(100.96.0.0/12)が含まれます。Mesh セットアップウィザードは、デバイス IP 範囲を Cloudflare 経由でルーティングするようにデフォルトプロファイルを更新します。ウィザードを使っていない場合、または別のプロファイルがデバイスに適用される場合は、プロファイルがデバイス IP 範囲、またはそれを含む親範囲を除外していないことを確認してください。
Cloudflare One Client は、Include モードでは次の範囲を自動で含め、Exclude モードで設定した除外からは自動で外します。これはデバイス上の実行時に行われます。範囲はデバイスプロファイルに保存されず、ダッシュボードの Split Tunnels 一覧にも表示されません。手動で追加する必要はありません。
- IPv4:
172.64.128.0/20— デフォルトの Gateway 初期解決 IP 範囲 - IPv6:
2606:4700:0cf1::/48— デバイス IP、Cloudflare ソース IP、Gateway 初期解決 IP をカバーします
これらの範囲を Split Tunnels 構成に追加する必要はありません。これらの範囲のいずれかに依存する機能(例: ホスト名ルーティング または Cloudflare Mesh)をトラブルシューティングする場合は、診断として範囲を明示的に追加できます。通常運用では不要です。
アカウントがデフォルトの 172.64.128.0/20 ではなく カスタム初期解決 IP 範囲 を使う場合は、そのカスタム範囲を Split Tunnels 構成に追加します。
ドメインベースのスプリットトンネリングには、組織へ展開する前に把握しておくべき影響があります。
- Cloudflare One Client と Gateway の可視性から除外または含まれるルートは日々変わることがあります。ユーザーの場所によっても異なります。
- 同じ IP アドレスを共有する追加のホスト名を、意図せず除外または含めてしまうことがあります。CDN や Cloudflare、AWS、Azure などの大規模インターネットプロバイダーがホストするドメインを追加した場合によく起きます。たとえば AWS 上の VPN を除外したい場合、
*.amazonaws.comを追加しないでください。デバイスが AWS 上のすべてのトラフィックに開いてしまいます。代わりに、特定の VPN エンドポイント(*.cvpn-endpoint-<UUID>.prod.clientvpn.us-west-2.amazonaws.com)を追加します。 - ほとんどのサービスはホスト名の集まりです。Split Tunnels モードが App Types に対応するまでは、特定のアプリまたはサービスが使うすべてのドメインを手動で追加する必要があります。
- Cloudflare One Client がそのドメインの DNS ルックアップリクエストを処理する必要があります。オペレーティングシステムが以前にキャッシュした DNS 結果、またはその他の傍受(例: ブラウザーのセキュア DNS 設定)がある場合、IP アドレスは Split Tunnel に動的追加されません。
| Split tunnel ドメイン | 一致する対象 | 一致しない対象 |
|---|---|---|
example.com |
example.com の完全一致 |
www.example.com などのサブドメイン |
example.example.com |
example.example.com の完全一致 |
example.com、または www.example.example.com などのサブドメイン |
*.example.com |
www.example.com や sub2.sub1.example.com などのサブドメイン |
example.com |
ドメインベースの Split Tunnels は、モバイルクライアントとデスクトップクライアントで動きが異なります。モバイルとデスクトップの両方のクライアントが組織に接続する場合は、すべてのプラットフォームで同じように動く IP アドレスまたは CIDR ベースの Split Tunnels を使うことを推奨します。
これらのプラットフォームのクライアントは、ドメインが解決された直後に、その IP アドレスをスプリットトンネリング用のルーティングテーブルへ動的に挿入します。そのためデスクトップクライアントは、単一ドメイン(example.com や www.example.com など)だけでなく、ワイルドカードドメインプレフィックス(例: *.example.com)にも対応できます。
プラットフォームの違いにより、モバイルクライアントはトンネルの初期開始時にだけ Split Tunnels ルールを適用できます。つまり次のとおりです。
- ドメインベースの Split Tunnels ルールは、トンネル確立時のそのドメインの IP アドレスに基づいて作成されます。ルートはトンネルを確立するたびに更新されます。
- ワイルドカードドメインプレフィックス(例:
*.example.com)は、有効なワイルドカード DNS レコードがある場合にのみ対応します。その他のワイルドカードドメインには対応しません。トンネル起動時にクライアントがワイルドカードドメインをホスト名に照合できないためです。未対応のワイルドカードドメインプレフィックスは構成に残せて、モバイルプラットフォームでは無視されます。
- Cloudflare ダッシュボード ↗ で、Zero Trust > Team & Resources > Devices > Device profiles > General profiles を開きます。
- 変更したい デバイスプロファイル を見つけ、Edit を選びます。
- Split Tunnels で Manage を選びます。
- 一覧で IP アドレスまたはホスト名を見つけ、Action ボタンを選びます。ドロップダウンから Delete を選びます。
新しく更新した設定がデバイスへ反映されるまで、最大 10 分かかることがあります。
Cloudflare が推奨するデフォルトの Split Tunnel エントリに戻す必要がある場合は、Restore default entries を選びます。
- Local Domain Fallback — 選択したドメインを Cloudflare Gateway ではなくローカル DNS で解決します。
- ファイアウォール環境での Cloudflare One Client — ファイアウォールの背後でユーザーが Cloudflare One Client を展開して接続できるように、許可する IP、ドメイン、ポートを確認します。