Skip to content

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

Cloudflare Mesh の仕組み

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

Cloudflare Mesh は、耐量子暗号のネットワークでサービスとデバイスを接続します。VPN や踏み台ホストなしで、サーバー、ノート PC、スマートフォンの間でトラフィックをプライベートにルーティングします。

登録したすべてのデバイスとノードはプライベート IP アドレス(Mesh IP)を受け取り、Cloudflare のネットワーク経由で、TCP、UDP、ICMP を使って他の参加者へ IP で到達できます。

Mesh ノードは、ヘッドレスモードの Cloudflare One Clientwarp-cli)を動かす Linux サーバーです。クライアントデバイスは、同じクライアントを UI 付きで動かすノート PC とスマートフォンです。

ノードとデバイスが Cloudflare 経由で接続している様子を示す、Cloudflare ダッシュボードの Mesh ネットワークマップ

仕組み

Mesh には 2 種類の参加者がいます。

Mesh ノード クライアントデバイス
動作環境 Linux サーバー、VM、コンテナー ノート PC、スマートフォン、デスクトップ
クライアント Cloudflare One Clientwarp-cli)、ヘッドレス Cloudflare One Clientwarp-cli)、UI 付き
Mesh IP 登録時に割り当て 登録時に割り当て
サブネットルーティング CIDR ルートを広告できる 不可 — クライアントはノード経由でサブネットに到達
高可用性 アクティブ / パッシブのレプリカに対応 該当なし

どの参加者も Mesh IP で他の参加者に到達できます。クライアント同士の接続に Mesh ノードのデプロイは不要です。

flowchart LR
  subgraph nodes["Mesh ノード"]
    A["web-server <br> 100.96.0.1"]
    B["db-replica <br> 100.96.0.2"]
  end
  subgraph devices["クライアントデバイス"]
    C["MacBook <br> 100.96.0.10"]
    D["iPhone <br> 100.96.0.11"]
  end
  A <--> CF((Cloudflare <br> ネットワーク))
  B <--> CF
  CF <--> C
  CF <--> D

すべてのトラフィックは Cloudflare を通るため、Gateway ネットワークポリシーデバイスポスチャチェック、アクセスルールがすべての接続に適用されます。

プロトコル要件

Cloudflare Mesh では、各 Mesh ノードの デバイスプロファイル が、Cloudflare One Client のデフォルトプロトコルである MASQUE を使う必要があります。ほとんどのデプロイでは変更は不要です。

Mesh ノードのデバイスプロファイルが WireGuard を使う場合、次の機能は動作しません。

Mesh IP

すべての参加者には、100.96.0.0/12 範囲のプライベート IP が割り当てられます。Cloudflare One ドキュメントのほかの箇所では、これらのアドレスを デバイス IP と呼びます。

この範囲は CGNAT アドレス空間 を使い、RFC 1918 のプライベート範囲(10.x172.16.x192.168.x)との衝突を避けます。デフォルト範囲がネットワークと衝突する場合は、カスタムサブネットを設定 できます。

デバイスの Mesh IP は、Mesh の概要ページ またはダッシュボードのノード詳細ページで確認できます。

予約済み範囲の詳細は 予約済み IP アドレス を参照してください。

Mesh と Tunnel の比較

Cloudflare Mesh と Cloudflare Tunnel はどちらもプライベートなインフラを Cloudflare に接続しますが、解く問題が異なります。

Cloudflare Mesh Cloudflare Tunnel
トラフィックの方向 双方向 — どの参加者からも開始できる オリジンへのインバウンド — クライアントが公開サービスへ接続
アドレッシング すべての参加者が Mesh IP を持つ サーバー側のみ。Mesh IP なし
用途 デバイスとサーバー間のプライベート IP 接続 特定のアプリケーション、ホスト名、または IP ルートの公開
コネクタ warp-cli cloudflared
プロトコル TCP、UDP、ICMP HTTP/S、TCP、SSH、RDP、SMB(WebSocket 経由でプロキシ)

デバイス同士がプライベート IP で到達する必要があるとき、または安定した長寿命 TCP 接続(SAP、データベースレプリケーション、ERP システム、RDP セッション)が必要なワークロードでは Mesh を使います。Mesh は L3/L4 で動作し、接続をエンドツーエンドで維持します。接続の中断に弱いトラフィック向けの、推奨ソフトウェアオンランプです。ホスト名でサービスを公開したいとき、または cloudflared 経由で特定の IP 範囲へトラフィックをプロキシしたいときは Tunnel を使います。

ほかのメッシュネットワーキング製品からの移行ですか?

Tailscale、WireGuard、または類似製品を使っていた場合、概念は次のように Cloudflare Mesh へ対応します。

ほかの製品 Cloudflare Mesh
Tailnet / メッシュネットワーク Cloudflare アカウントの Mesh ネットワーク
ノード / ピア Mesh ノード(サーバー)またはクライアントデバイス(ノート PC / スマートフォン)
サブネットルーター CIDR ルート 付きの Mesh ノード
MagicDNS / カスタム DNS Local Domain Fallback + Gateway リゾルバーポリシー
ACL / アクセスルール Gateway ネットワークポリシー + デバイスポスチャ
出口ノード パブリック CIDR を Mesh ノードに付けると、それらの IP 向けトラフィックはそのノードから出ます。より広いインターネットフィルタには Gateway エグレスポリシー を使います。
管理コンソール Cloudflare ダッシュボードNetworking > Mesh

主な違い:

  • 設定は Cloudflare ダッシュボードまたは API からすべて管理します。コマンドラインでの管理は不要です。
  • Gateway ポリシー、デバイスポスチャ、ID チェックがプラットフォームに組み込まれています。
  • トラフィックはデバイス間の直接経路ではなく、最寄りの Cloudflare データセンターを通ります。

次のステップ

  1. 最初の Mesh ノードを作成する — ダッシュボードのウィザードがプロビジョニングを扱います。Linux サーバーへのクライアントインストールは 2 コマンドです。
  2. クライアントデバイスを接続する — ノート PC とスマートフォンに Cloudflare One Client をインストールします。Mesh IP で互いに、また任意の Mesh ノードに到達できます。
  3. Docker / Kubernetes で動かす — Docker Compose、Kubernetes、CI/CD 環境向けに、Mesh ノードを Docker コンテナーとしてデプロイします。
  4. ルートを追加する(任意) — Mesh ノードの背後にあるサブネットを、どのデバイスからでも到達できるようにします。
  5. 高可用性を有効にする(任意) — フェイルオーバー用にノードのレプリカを複数動かします。
  6. Workers から接続する(任意) — VPC Network バインディングを使い、Cloudflare Workers からプライベートサービスへ到達します。
  7. アクセスを委任する(任意) — アカウント全体の制御ではなく、特定の Mesh ノードにメンバー権限を絞ります。

役に立ちましたか?