Split Tunnel の設定は、Cloudflare One Client がプロキシするトラフィックと、プロキシしないトラフィックを決めます。
Cloudflare One Client には、2 つの Split Tunnel モードがあります。
- 内部および外部の宛先トラフィックをすべて Cloudflare のグローバルネットワーク経由で送りたい場合は、Exclude IPs and domains モードを選びます。このモードでは、Split Tunnel リストで明示した IP とホストを除き、すべてのトラフィックを WARP トンネル経由でプロキシします。
- Cloudflare One Client でプライベート宛先のトラフィックだけをプロキシしたい場合は、Include IPs and domains モードで運用できます。このモードでは、WARP のルーティングテーブルに含める IP 範囲とドメインを明示します。
Split Tunnels のモードを変更するには:
- 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 == \"test@cloudflare.com\"" 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 == \"test@cloudflare.com\"" 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 == \"test@cloudflare.com\"" 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 アドレスより処理が遅くなります。リストが短いと、設定の把握とデバッグも容易になります。デバイスプロファイルの制限は アカウントの制限 を参照してください。