このチュートリアルでは、割り当て済みの専用 egress IP アドレスのうち、ユーザーが egress IP アドレスを切り替えられるようにする簡単な方法を管理者向けに説明します。ユーザーは Cloudflare One Client から仮想ネットワークを切り替えて、使う egress IP を選べます。
egress IP の切り替えは、品質保証(QA)など、ユーザーがローカルの egress ロケーションを使いながら、ほかのリモートロケーションへ切り替えたりシミュレートしたりするシナリオで役立ちます。
次を用意してください。
- ユーザーのデバイスに Cloudflare One Client をデプロイ していること。
- プライベートネットワークを Cloudflare に接続する トンネルを設定 していること。このチュートリアルでは、次を前提とします。
- ダッシュボード経由 でトンネルを 2 つ作成している。
- 一方のトンネルで
10.0.0.0/8をルーティングしている。 - もう一方のトンネルで
192.168.88.0/24をルーティングしている。
- 複数の 専用 egress IP アドレス を受け取っていること。
まず、専用 egress IP に対応する 仮想ネットワーク を作成します。
-
Cloudflare ダッシュボードで Networking > Routes を開きます。
Routes を開く ↗ -
Virtual networks で Create virtual network を選びます。
-
仮想ネットワークに名前を付けます。対応する専用 egress IP の場所に関連する名前をおすすめします。たとえば、ユーザーが米州から egress する場合は、仮想ネットワーク名を
vnet-AMERにできます。 -
Save を選びます。
-
ユーザーに切り替えさせたい専用 egress IP ごとに、手順 2〜4 を繰り返します。たとえば、欧州、中東、アフリカからの egress 向けに
vnet-EMEAという別の仮想ネットワークを作成できます。
-
専用 egress IP の 1 つに対応する 仮想ネットワーク を作成します。対応する専用 egress IP の場所に関連する名前をおすすめします。たとえば、ユーザーが米州から egress する場合は、仮想ネットワーク名を
vnet-AMERにできます。
At least one of the following token permissions is required:Required API token permissions
Cloudflare One Networks WriteCloudflare Tunnel Write
Create a virtual networkbash curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/teamnet/virtual_networks" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "comment": "Virtual network to egress from the Americas", "is_default": false, "name": "vnet-AMER" }'詳細は 仮想ネットワークを作成する を参照してください。
-
ユーザーに切り替えさせたい専用 egress IP ごとに、手順 1 を繰り返します。たとえば、欧州、中東、アフリカからの egress 向けに
vnet-EMEAという別の仮想ネットワークを作成できます。
仮想ネットワークを作成したあと、各仮想ネットワーク経由でプライベートネットワークの CIDR をルーティングします。これにより、ユーザーがどの egress IP を使っても、ネットワーク上のすべてのサービスに到達できます。
-
Networking > Routes を開きます。
Routes を開く ↗ -
Create route を選び、Tunnel CIDR を選びます。
-
10.0.0.0/8をルーティングするトンネルを選び、ネットワークとして10.0.0.0/8を入力します。 -
Virtual network で、最初の仮想ネットワークを選びます。例:
vnet-AMER -
Create route を選びます。
-
別の仮想ネットワーク経由で
10.0.0.0/8をルーティングするには、別の仮想ネットワーク(例:vnet-EMEA)を使い、手順 2〜5 を繰り返します。 -
作成した各仮想ネットワークと、各プライベートネットワークのトンネルルートについて繰り返します。
-
最初の仮想ネットワークをプライベートネットワークルートに割り当てます。たとえば、
10.0.0.0/8をルーティングするトンネルにvnet-AMERを割り当てます。
At least one of the following token permissions is required:Required API token permissions
Cloudflare One Networks WriteCloudflare Tunnel Write
Update a tunnel routebash curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/teamnet/routes/$ROUTE_ID" \ --request PATCH \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "network": "10.0.0.0/8", "tunnel_id": "<TUNNEL_UUID>", "virtual_network_id": "<VNET_AMER_UUID>" }'詳細は トンネルルートを更新する を参照してください。
-
作成した各仮想ネットワークについて、この手順を繰り返します。例:
At least one of the following token permissions is required:Required API token permissions
Cloudflare One Networks WriteCloudflare Tunnel Write
Update a tunnel routebash curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/teamnet/routes/$ROUTE_ID" \ --request PATCH \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "network": "10.0.0.0/8", "tunnel_id": "<TUNNEL_UUID>", "virtual_network_id": "<VNET_EMEA_UUID>" }' -
各プライベートネットワークのトンネルルートについて、手順 1〜2 を繰り返します。
プライベートネットワークに接続している各トンネルに、作成した仮想ネットワークをすべて割り当ててください。たとえば、10.0.0.0/8 と 192.168.88.0/24 をルーティングするトンネルがある場合、両方のトンネルに vnet-AMER と vnet-EMEA の仮想ネットワークを割り当てます。
| Tunnel | CIDR | Virtual network |
|---|---|---|
| Tunnel 1 | 10.0.0.0/8 |
vnet-AMER |
10.0.0.0/8 |
vnet-EMEA |
|
| Tunnel 2 | 192.168.88.0/24 |
vnet-AMER |
192.168.88.0/24 |
vnet-EMEA |
次に、Gateway の egress ポリシーを使い、各仮想ネットワークに専用 egress IP を割り当てます。
-
Cloudflare ダッシュボード ↗ で Zero Trust > Traffic policies > Egress policies を開きます。
-
Add a policy を選びます。
-
ポリシーに名前を付けます。トラフィックが egress する国またはリージョンを含めることをおすすめします。
-
Virtual Network セレクターで仮想ネットワークを追加します。例:
Selector Operator Value Virtual Network is vnet-AMER -
Select an egress IP で Use dedicated Cloudflare egress IPs を選びます。トラフィックの egress に使う専用 IPv4 アドレスと IPv6 アドレスを選びます。
-
Create policy を選びます。
-
作成した各仮想ネットワークについて、手順 1〜6 を繰り返して別の egress ポリシーを作成します。
-
対応する仮想ネットワークに一致する Gateway egress ポリシーを追加します。例:
Create a Zero Trust Gateway rulebash curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "action": "egress", "description": "Egress via North America by connecting to vnet-AMER", "enabled": true, "filters": [ "egress" ], "name": "Egress AMER vnet", "precedence": 0, "traffic": "net.vnet_id == <VNET_AMER_UUID>", "rule_settings": { "egress": { "ipv4": "<DEDICATED_IPV4_ADDRESS>", "ipv4_fallback": "<SECONDARY_DEDICATED_IPV6_ADDRESS>", "ipv6": "<DEDICATED_IPV6_ADDRESS>" } } }'詳細は Zero Trust Gateway ルールを作成する を参照してください。
-
作成した各仮想ネットワークについて、手順 1 を繰り返して egress ポリシーを作成します。
作成する各ポリシーは、それぞれ異なるプライマリの専用 egress IP に対応させてください。
Windows、macOS、Linux
-
ユーザーのデバイスで、Cloudflare One Client から Zero Trust 組織にログインします。
-
ターミナルで次のコマンドを実行し、デフォルトの egress IP アドレスを確認します。
curl ifconfig.me -4コマンドは、組織のデフォルト egress IP を出力するはずです。
-
クライアント GUI の VNET ドロップダウンで、作成した仮想ネットワークに切り替えます。
バージョン 2026.1 以前
Cloudflare One Client で、歯車アイコン > Virtual Networks を選びます。
-
もう一度
curl ifconfig.me -4を実行して egress IP アドレスを確認します。コマンドは、egress ポリシーで指定した IP アドレスを出力するはずです。
iOS と Android
- ユーザーのデバイスで、Cloudflare One Agent アプリから Zero Trust 組織にログインします。
- ブラウザーで ifconfig.me ↗ を開きます。IP Address に組織のデフォルト egress IP が表示されるはずです。
- Cloudflare One Agent で Advanced > Connection options > Virtual networks を開きます。作成した仮想ネットワークを選びます。
- 手順 1 のブラウザーページを再読み込みして egress IP アドレスを確認します。IP Address に、egress ポリシーで指定した IP アドレスが表示されるはずです。
ユーザーが仮想ネットワークに接続しているあいだ、トラフィックは指定した専用 egress IP 経由でルーティングされます。各仮想ネットワークが正しい IP から egress していることを確認するには、これらの手順を繰り返してください。