Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

仮想ネットワーク

最終更新 Markdown で表示Agent セットアップ

機能の可用性

クライアントモード Zero Trust プラン
  • Traffic and DNS mode
  • Traffic only mode
すべてのプラン
システム 可用性
Windows
macOS
Linux
iOS
Android
ChromeOS

仮想ネットワークは、Cloudflare アカウント内でルーティングを分離します。各仮想ネットワークは独自のルーティングテーブルを持ち、環境、パートナー、アプリケーションごとにトラフィックを分けられます。

たとえば、同じプライベート IP レンジ(10.128.0.0/24 など)を使う「本番」と「ステージング」の VPC ネットワークを持つ組織があります。仮想ネットワークがないと、Cloudflare は本番の 10.128.0.1 とステージングの 10.128.0.1 を区別できません。仮想ネットワークを 2 つ作成すると、正しい環境へ確実にトラフィックをルーティングできます。ユーザーは Cloudflare One Client で接続先の仮想ネットワークを選びます。

仮想ネットワークの概念と、Cloudflare 製品間での動作については、仮想ネットワーク を参照してください。

ユースケース

仮想ネットワークが役立つシナリオの例です。

  • 同じアドレス空間を使う本番環境とステージング環境を管理する。
  • 同じアドレス空間を使う組織同士の買収や合併を管理する。
  • IT プロフェッショナルサービスが、管理や運用のために顧客ネットワークへアクセスできるようにする。
  • 開発者やホームラボ利用者が、追加のセキュリティ制御を適用するために、自宅ネットワーク経由でトラフィックを決定的にルーティングできるようにする。
  • ポリシー適用を超えた追加のセグメント化をセキュリティ目的で保証しつつ、設定は 1 つの Cloudflare アカウント内にまとめる。

前提条件

仮想ネットワークを作成する

この例では、「プライベートネットワーク」は、それぞれ重複する IP アドレス空間を持つ独立した環境(ステージングや本番など)を指します(ステージングの 10.128.0.1/32 と本番の 10.128.0.1/32)。環境が重複しない IP を使う場合、環境ごとに別のトンネルは不要です。代わりに、1 つのトンネルに複数のルートを追加できます。

重複する IP を仮想ネットワーク経由でルーティングするには:

  1. 一意の仮想ネットワークを 2 つ作成します。
    1. Cloudflare ダッシュボードで Networking > Routes > Virtual networks を開きます。

      Virtual networks を開く ↗
    2. Create virtual network を選びます。

    3. 仮想ネットワーク名を staging-vnet にして Save を選びます。

    4. 手順 1a〜1d を繰り返し、production-vnet という別の仮想ネットワークを作成します。

  2. 重複する IP を持つ各プライベートネットワークに対して Cloudflare Tunnel を作成します(隔離された環境ごとに 1 つのトンネル。例: ステージングと本番)。
    1. Networking > Tunnels を開きます。

    2. Create a tunnel を選びます。

    3. トンネル名を Staging tunnel にして Create を選びます。

    4. ステージング環境内にコネクタをインストールします。

    5. Networking > Routes を開きます。

      Routes を開く ↗
    6. Create route > Tunnel CIDR を選びます。

    7. Staging tunnel を選び、ネットワークに 10.128.0.1/32 を入力し、仮想ネットワークとして staging-vnet を選びます。Create route を選びます。

    8. 手順 2a〜2d を繰り返し、Production tunnel という別のトンネルを作成します。コネクタは本番環境内にインストールしてください。

    9. 手順 2e〜2g を繰り返し、Production tunnel 向けに 10.128.0.1/32production-vnet へ割り当てたルートを作成します。

これで、重複する 2 つの IP アドレスがそれぞれ staging-vnetproduction-vnet 経由でルーティングされます。Cloudflare One Client を使って 仮想ネットワークを切り替え できます。

重複する IP を仮想ネットワーク経由でルーティングするには:

  1. cloudflare_api_token に次の権限を追加します。

    • Cloudflare Tunnel Write
  2. 一意の仮想ネットワークを 2 つ作成します。

    resource "cloudflare_zero_trust_tunnel_cloudflared_virtual_network" "staging_vnet" {
    	account_id = var.cloudflare_account_id
    	name       = "staging-vnet"
    	comment    = "Staging virtual network"
    	is_default = false
    }
    
    resource "cloudflare_zero_trust_tunnel_cloudflared_virtual_network" "production_vnet" {
    	account_id = var.cloudflare_account_id
    	name       = "production-vnet"
    	comment    = "Production virtual network"
    	is_default = false
    }
  3. 重複する IP を持つ各プライベートネットワークに対して Cloudflare Tunnel を作成します(隔離された環境ごとに 1 つのトンネル。例: ステージングと本番)。

    resource "cloudflare_zero_trust_tunnel_cloudflared" "staging_tunnel" {
    	account_id = var.cloudflare_account_id
    	name       = "Staging tunnel"
    	config_src = "cloudflare"
    }
    
    resource "cloudflare_zero_trust_tunnel_cloudflared" "production_tunnel" {
    	account_id = var.cloudflare_account_id
    	name       = "Production tunnel"
    	config_src = "cloudflare"
    }
  4. 10.128.0.1/32Staging tunnel 経由でルーティングし、staging-vnet に割り当てます。10.128.0.1/32Production tunnel 経由でルーティングし、production-vnet に割り当てます。

    resource "cloudflare_zero_trust_tunnel_cloudflared_route" "staging_tunnel_route" {
    	account_id         = var.cloudflare_account_id
    	tunnel_id          = cloudflare_zero_trust_tunnel_cloudflared.staging_tunnel.id
    	network            = "10.128.0.1/32"
    	comment            = "Staging tunnel route"
    	virtual_network_id = cloudflare_zero_trust_tunnel_cloudflared_virtual_network.staging_vnet.id
    }
    
    resource "cloudflare_zero_trust_tunnel_cloudflared_route" "production_tunnel_route" {
    	account_id         = var.cloudflare_account_id
    	tunnel_id          = cloudflare_zero_trust_tunnel_cloudflared.production_tunnel.id
    	network            = "10.128.0.1/32"
    	comment            = "Production tunnel route"
    	virtual_network_id = cloudflare_zero_trust_tunnel_cloudflared_virtual_network.production_vnet.id
    }
  5. 各トンネルの トークンを取得 します。

  6. トンネルトークンを使い、ステージング環境で Staging tunnel を実行し、本番環境で Production tunnel を実行します。トンネルをインストールして実行する を参照してください。

ローカル管理トンネル で、重複する IP を仮想ネットワーク経由でルーティングするには:

  1. 重複する IP を持つ各プライベートネットワークに対して Cloudflare Tunnel を作成します(隔離された環境ごとに 1 つのトンネル。例: ステージングと本番)。

    1. ステージング環境内で cloudflared を認証します。

      cloudflared login
    2. ステージングネットワークを Cloudflare に接続するトンネルを作成します。

      cloudflared tunnel create staging-tunnel
    3. 本番環境内で cloudflared を認証します。

      cloudflared login
    4. 本番ネットワークを Cloudflare に接続するトンネルを作成します。

      cloudflared tunnel create production-tunnel

以降の手順は、任意の cloudflared インスタンスから実行できます。

  1. 一意の仮想ネットワークを 2 つ作成します。

    cloudflared tunnel vnet add staging-vnet
    cloudflared tunnel vnet add production-vnet
  2. 先に進む前に、次のコマンドを実行し、作成した仮想ネットワークが正しく一覧に表示されることを確認します。

    cloudflared tunnel vnet list
  1. トンネルにプライベートネットワークの IP/CIDR 範囲を設定し、各トンネルを対応する仮想ネットワークに割り当てます。

    cloudflared tunnel route ip add --vnet staging-vnet 10.128.0.3/32 staging-tunnel
    cloudflared tunnel route ip add --vnet production-vnet 10.128.0.3/32 production-tunnel
  2. IP ルートが正しく一覧に表示されることを確認します。

    cloudflared tunnel route ip list

    これで、重複する 2 つの IP アドレスがそれぞれ staging-vnetproduction-vnet 経由でルーティングされます。

    1. ステージング環境内で、staging-tunnel 向けの 設定ファイル を作成します。設定ファイルの構造は次のとおりです。

      tunnel: <Tunnel-UUID>
      credentials-file: /root/.cloudflared/credentials-file.json
      warp-routing:
         enabled: true
    2. トンネルを実行します。

      cloudflared tunnel run staging-tunnel
    3. 本番環境内で、production-tunnel に対して手順 6 と 7 を繰り返します。

    これで Cloudflare One Client を使い、仮想ネットワークを切り替え できます。

仮想ネットワークを削除する

仮想ネットワークを削除するには:

  1. Cloudflare ダッシュボードで Networking > Routes を開きます。

    Routes を開く ↗
  2. Routes タブで、削除しようとしている仮想ネットワークにルートが割り当てられていないことを確認します。仮想ネットワークが使用中の場合は、先にそれらのルートを削除するか、別の仮想ネットワークに再割り当てします。

  3. Virtual networks タブを開き、対象の仮想ネットワークを探します。

  4. 三点メニューを選び、Delete を選びます。

任意で、仮想ネットワークに関連付けられたトンネルも削除できます。

ローカル管理トンネル の仮想ネットワークを削除するには:

  1. 仮想ネットワーク内のすべての IP ルートを削除します。例:

    cloudflared tunnel route ip delete --vnet staging-vnet 10.128.0.3/32
  2. (任意)仮想ネットワークに関連付けられたトンネルを削除します。

    cloudflared tunnel delete staging-tunnel
  3. 仮想ネットワークを削除します。

    cloudflared tunnel vnet delete staging-vnet

cloudflared tunnel vnet list を実行すると、仮想ネットワークが削除されたことを確認できます。

仮想ネットワークに接続する

Windows、macOS、Linux

  1. Cloudflare One Client を開きます。
  2. Home を開きます。
  3. VNET ドロップダウンで、接続する仮想ネットワークを選びます(例: staging-vnet)。
  1. Cloudflare One Client を開きます。
  2. Settings > Traffic and DNS mode > Virtual Networks を開きます。
  3. 接続する仮想ネットワークを選びます(例: staging-vnet)。

10.128.0.3/32 にアクセスすると、Cloudflare One Client はリクエストをステージング環境へルーティングします。

iOS、Android、ChromeOS

  1. Cloudflare One Agent アプリを起動します。
  2. Advanced > Connection options > Virtual networks を開きます。
  3. 接続する仮想ネットワークを選びます(例: staging-vnet)。

10.128.0.3/32 にアクセスすると、Cloudflare One Client はリクエストをステージング環境へルーティングします。

役に立ちましたか?