仮想ネットワークは、Cloudflare アカウント内のプライベートなルーティングドメインです。Cloudflare ネットワークから到達できるプライベートリソースを定義し、環境、パートナー、アプリケーションごとにトラフィックを分離します。
すべての Cloudflare アカウントには、デフォルトの仮想ネットワークがあります。インフラの異なる部分の間でルーティングを分離したい場合は、追加の仮想ネットワークを作成できます。
- 環境の分離 — 本番ネットワークとステージングネットワークを分離します。本番の
10.0.0.1宛てトラフィックと、ステージングの10.0.0.1宛てトラフィックは、それぞれ別の宛先へルーティングされます。 - パートナーの分離 — 複数のパートナーを Cloudflare アカウントに接続しつつ、相互に到達できないようにします。各パートナーに専用の仮想ネットワークを割り当てます。
- 重複する IP 空間 — 異なるネットワークが同じ IP レンジを使っている場合(RFC 1918 アドレスでよくあります)、仮想ネットワークを使うと、IP アドレスだけでなくコンテキストに基づいて正しい宛先へルーティングできます。
- プライベートアプリケーションへの接続 — Cloudflare Workers や CDN を、プライベートネットワーク内のバックエンドへ接続します。仮想ネットワークは、プライベート IP アドレス宛てのトラフィックをどこへルーティングするかを Cloudflare に伝えます。
- パブリック TCP/UDP からプライベートオリジンへ — Spectrum アプリケーション を通じて、Load Balancer なしでプライベートバックエンドをインターネットに公開し、TCP または UDP トラフィックを受け取れます。仮想ネットワークは、オリジンへのトラフィックをどのトンネルまたは WAN 接続が運ぶかを決めます。
プライベート IP アドレス宛てのトラフィックが Cloudflare に入ると、Cloudflare は仮想ネットワークのルーティングテーブルでルートを検索します。仮想ネットワークが決める内容は次のとおりです。
- 到達できるプライベート宛先
- トラフィックを運ぶコネクタ(Tunnel または WAN 接続)
- 重複する IP アドレスの区別方法
flowchart TD
accTitle: 仮想ネットワークのルーティング
accDescr: Cloudflare アカウントに 3 つの仮想ネットワークがあり、それぞれ独自のルーティングテーブルとコネクタを持ち、別の宛先を指す様子を示します。同じ CIDR を各仮想ネットワークに、独立したルーティングドメインとして置けます。
subgraph account ["Cloudflare アカウント"]
direction LR
subgraph vnet_default ["仮想ネットワーク: default"]
routes_d("10.0.0.0/8 via Tunnel
192.168.1.0/24 via IPsec")
routes_d --> tunnel_d(["Tunnel"])
routes_d --> ipsec_d(["IPsec"])
end
subgraph vnet_prod ["仮想ネットワーク: production"]
routes_p("10.0.0.0/8 via Tunnel")
routes_p --> tunnel_p(["Tunnel (prod)"])
end
subgraph vnet_stg ["仮想ネットワーク: staging"]
routes_s("10.0.0.0/8 via Tunnel")
routes_s --> tunnel_s(["Tunnel (stg)"])
end
end
tunnel_d --> dc_legacy("レガシー DC
10.0.0.0/8")
ipsec_d --> dc_branch("拠点 (IPsec)
192.168.1.0/24")
tunnel_p --> dc_prod("本番 DC
10.0.0.0/8")
tunnel_s --> dc_stg("ステージング DC
10.0.0.0/8")
classDef orange fill:#f48120,stroke:#d6710e,color:#fff
classDef blue fill:#4b9fd5,stroke:#3a8bc2,color:#fff
class tunnel_d,tunnel_p,tunnel_s orange
class ipsec_d blue
style vnet_default stroke:#999,stroke-width:2px,stroke-dasharray: 5 5
style vnet_prod stroke:#f48120,stroke-width:2px
style vnet_stg stroke:#f48120,stroke-width:2px
同じ CIDR(10.0.0.0/8)を各仮想ネットワークに置けます。それぞれが独立したルーティングドメインだからです。
各仮想ネットワークは、独自のルーティングテーブルを持ちます。ある仮想ネットワークに追加したルートは、別の仮想ネットワークのルーティングテーブルには現れません。ただし、選択した仮想ネットワークのルートに一致しないトラフィックは、WAN ルートについてデフォルト仮想ネットワークのルーティングテーブルにフォールバックする場合があります。
仮想ネットワークのルーティングテーブルへのエントリ追加は、静的ルートの設定、または BGP ピアリング(ベータ)で学習したルートで行えます。静的ルートはすべての接続タイプで使えます。BGP ピアリングは、現時点では CNI および IPsec/GRE トンネル(ベータ)で使えます。仮想ネットワーク内でのルート優先順位の詳細は、Traffic steering を参照してください。
仮想ネットワークの対応状況はプロダクトによって異なります。
| プロダクト | 仮想ネットワーク対応 | 詳細 |
|---|---|---|
| Cloudflare Tunnel | 複数の仮想ネットワーク | トンネル設定時に CIDR ルートを仮想ネットワークへ割り当てます |
| Cloudflare One Client | 複数の仮想ネットワーク | ユーザーはポリシーまたはクライアントでの選択に基づいて仮想ネットワークに入ります |
| Cloudflare Mesh | 現時点では非対応 | — |
| Cloudflare WAN | デフォルトのみ | すべての IPsec、GRE、CNI 接続はデフォルトの仮想ネットワークを使います |
すべてのアカウントには default 仮想ネットワークがあります。ルートや接続の作成時に仮想ネットワークを指定しない場合、デフォルトに割り当てられます。
プライベートネットワークが 1 つのほとんどの導入では、デフォルトの仮想ネットワークだけで十分です。ルーティングの分離が必要なときだけ、追加の仮想ネットワークを作成してください。
エンタープライズネットワーキングの概念に詳しい場合、仮想ネットワークは VRF(Virtual Routing and Forwarding)に相当します。
- 各仮想ネットワークは独自のルーティングテーブルを持ちます。
- ルートは仮想ネットワーク間で分離されます。
- 同じ IP プレフィックスを、競合なく複数の仮想ネットワークに置けます。
- 接続上で学習した BGP ルートは、その接続の仮想ネットワークのルーティングテーブルにだけ入ります。BGP ピアリングは、現時点では IPsec/GRE トンネル(ベータ)と CNI(ベータ)でサポートされています。
クラウドネットワーキングの概念に詳しい場合、仮想ネットワークは VPC(Virtual Private Cloud)に相当します。
仮想ネットワークの作成と設定については、仮想ネットワーク(トンネル設定) を参照してください。
どのルートがどの仮想ネットワークに属するかを設定するには、ルートを追加する を参照してください。
Cloudflare Virtual Network のルーティングテーブルに静的ルートを追加する、または BGP ピアリングを設定するには、ルートを設定する を参照してください。
- プライベートネットワーク — インフラを Cloudflare に接続します
- ルート — コネクタ経由の IP およびホスト名ルートを定義します
- Traffic steering — Cloudflare Virtual Network 内のルート優先順位、ECMP、BGP