このチュートリアルでは、Cloudflare WAN(旧称 Magic WAN)を Microsoft Azure Virtual WAN ハブに接続する方法を説明します。
Azure アカウントに、既存の Resource group、Virtual Network、Virtual Machine が必要です。作成方法は Microsoft のドキュメント ↗ を参照してください。
1 つ以上の VNet を Virtual WAN ハブ経由で Cloudflare WAN に接続するには、まず Azure ネットワークを表す Virtual WAN(vWAN)リソースを作成します。すでに Cloudflare WAN に接続したい vWAN がある場合は、次の手順へ進みます。詳細は Microsoft のドキュメント ↗ を参照してください。
- Azure ポータルで Virtual WANs ページを開きます。
- Virtual WAN を作成するオプションを選択します。
- Type を Standard にして Virtual WAN を作成します。
従来のハブアンドスポークの用語では、vWAN 内にデプロイする Virtual WAN Hub がハブになり、VNet と Cloudflare WAN がスポークとして接続します。この手順でデプロイする vWAN ハブには、Cloudflare WAN へ接続するための VPN Gateway が含まれます。
- Virtual WAN Hub を作成します。
- Basics で次を設定します。
- リソースグループ、希望するリージョン、容量、ハブのルーティング優先度を選択します。Microsoft は、特に変更する必要がなければ、デフォルトのハブルート優先度 ExpressRoute を推奨しています。Azure のハブルート優先度については Microsoft のドキュメント ↗ を参照してください。
- Hub Private Address Space を設定します。サブネットマスクが
/24以上のアドレス空間 ↗ を選び、vWAN Hub に接続するどの VNet のアドレス空間とも、どの Cloudflare WAN サイトとも重ならないようにします。
- Site to Site で次を設定します。
- Do you want to create a Site to site (VPN gateway)? で Yes を選択します。
- 希望する Gateway scale units と Routing Preference を選択します。Azure のルーティング優先度については Microsoft のドキュメント ↗ を参照してください。
- Create を選択します。vWAN Hub と VPN Gateway のデプロイには 30 分以上かかることがあります。
- VPN Gateway のプロビジョニングが終わったら、Virtual WAN > Hubs > Your vHub > Connectivity > VPN (Site to site) を開きます。
- Essentials ドロップダウンで、一覧の VPN Gateway を選択します。
- VPN Gateway の JSON View を開き、
properties.ipConfigurations[0].publicIpAddressとproperties.ipConfigurations[1].publicIpAddressの JSON 属性を控えます。これらは、Cloudflare WAN の IPsec トンネルを設定するときに使うカスタマーエンドポイントです。
VPN サイトは、Azure vWAN が VPN 接続で到達できるリモートサイトを表します。通常はオンプレミスの拠点です。この場合、VPN サイトは Cloudflare WAN を表します。
- Virtual WAN > VPN sites > Create site を開きます。
- Basics で次を設定します。
- 希望するリージョンと名前を設定します。
- Device vendor を Cloudflare にします。
- Private address space に、vWAN から Cloudflare WAN 経由でアクセスしたいアドレス範囲を指定します。Cloudflare WAN に接続しているほかのプライベートネットワークや、インターネット向けの送信トラフィックを Cloudflare WAN 経由にしたい場合(つまり Cloudflare Gateway で検査したい場合)のデフォルトルート(
0.0.0.0/0)も含められます。アドレス空間は VPN サイト作成後にも変更できます。
- Links で次を設定します。
- リンクを 1 つ設定します。リンクの名前、速度(Mbps)、プロバイダー名(ここでは
Cloudflareを入力)を指定します。Link IP address には Cloudflare の anycast アドレスを入力します。BGP address と ASN は空のままにします。このチュートリアル執筆時点では BGP はサポートされていません。
- リンクを 1 つ設定します。リンクの名前、速度(Mbps)、プロバイダー名(ここでは
- Create を選択します。
Cloudflare WAN は Tunnel Health Checks を使い、トンネルが利用可能かを監視します。
トンネルヘルスチェックは、IPsec トンネルの Cloudflare 側からリモートエンドポイント(Azure)へ送る ICMP プローブを使います。プローブはトンネルのインターフェイスアドレスから送られます。このアドレスは次の 2 か所で指定します。
- Cloudflare ダッシュボード: IPsec トンネル設定の仮想トンネルインターフェイス(VTI)のアドレスとして指定します(Cloudflare がどのアドレスからプローブを送るかを知るため)。Cloudflare では
/31ネットマスクの CIDR 表記が必要です。 - Azure ポータル: VPN サイトのアドレス空間に指定します(Azure がプローブの応答をトンネル経由で返すため)。Azure では
/32ネットマスクの CIDR 表記が必要です。
Cloudflare では、各 IPsec トンネルに一意の /31 サブネット(RFC 1918 — Address Allocation for Private Internets ↗)を選ぶことを推奨します。Point-to-Point Link として扱い、両方の要件を満たすのに適したアドレス方式です。
例:
- 一意の Point-to-Point Link サブネットとして
169.254.251.137/31を選びます。 - Cloudflare ダッシュボードで、トンネルの IPv4 Interface address に
169.254.251.137/31を設定します(下記の Cloudflare WAN を設定する を参照)。 - Azure ポータルで、VPN サイトの Private address space に
169.254.251.137/32を追加します。
Tunnel Health Checks に対応するよう、Local Network Gateway の Address Space を設定する手順は次のとおりです。
- Virtual WAN > VPN sites > Your VPN Site > Edit site を開き、前のセクションで設定した VPN サイトを編集します。
- Private address space を更新し、上記のとおり
/32サブネットを CIDR 表記で 2 つ含めます。vWAN Hub 付きの Azure VPN Gateway では、1 つの VPN Gateway Connection が 2 本の Cloudflare WAN IPsec トンネルに対応します。そのため、一意の/31サブネットを 2 つ選び、各 Cloudflare IPsec トンネルに 1 つずつ割り当てます。各/31の上位アドレスを、/32サブネットとして VPN サイトの Private address space に追加します。 - Confirm を選択します。
既存の VNet を、作成したばかりの vHub に接続する手順は次のとおりです。
- Virtual WAN > Virtual network connections を開き、Add connection を選択します。
- 接続を設定し、目的の VNet を上記で作成した vHub に接続します。
- 接続の Routing configuration で、次を確認します。
- Propagate to none を No にします。
- Bypass Next Hop IP for workloads within this VNet を No にします。
- Propagate static route を Yes にします。
- Create を選択します。
Azure vHub の VPN Gateway を Cloudflare WAN に接続するときは、上記で作成した 1 つの Azure VPN Gateway Connection に対応する Cloudflare WAN の IPsec トンネルを 2 本作成します。Azure VPN Gateway はパブリック IP アドレスを 2 つ持つためです。
- Cloudflare ダッシュボードで IPsec トンネル を作成します。
- 次の設定にします。
- Interface address: Azure 設定の開始セクションの手順 4 で選んだ、1 つ目の
/31サブネット内の上位 IP アドレスを追加します。詳細は トンネルエンドポイント を参照してください。 - Customer endpoint: Azure VPN Gateway に関連付けられた 1 つ目のパブリック IP。例:
40.xxx.xxx.xxx。 - Cloudflare endpoint: Leased IPs ↗ で確認できる、アカウントに割り当てられた Cloudflare anycast アドレスの 1 つを使います。Azure の VPN サイトに対応する IP アドレスでもあります。例:
162.xxx.xxx.xxx。 - Health check rate: Medium(デフォルト)。
- Health check type: Reply(デフォルト)。
- Health check direction: Bidirectional(デフォルト)。
- Health check target: Custom。カスタマーエンドポイントを入力します。
- Add pre-shared key later: このオプションを選び、あとで Azure で使う PSK を作成します。
- Replay protection: Enable。
- Interface address: Azure 設定の開始セクションの手順 4 で選んだ、1 つ目の
- トンネルを編集します。新しい事前共有キーを生成し、安全な場所にコピーします。
- Azure Virtual Network のサブネット向けに静的ルートを作成し、ネクストホップとして作成したばかりのトンネルを指定します。
- Cloudflare ダッシュボードで 2 本目の IPsec トンネルを作成します。1 本目の構成をコピーし、次だけ変更します。
- Interface address: Azure 設定の開始セクションの手順 4 で選んだ、2 つ目の
/31サブネット内の上位 IP アドレスを追加します。 - Customer endpoint: Azure VPN Gateway に関連付けられた 2 つ目のパブリック IP。
- Health check target: 新しいカスタマーエンドポイントをカスタムターゲットとして入力します。
- Use my own pre-shared key: このオプションを選び、1 本目のトンネルで生成したキーを入力します。
- Interface address: Azure 設定の開始セクションの手順 4 で選んだ、2 つ目の
- Azure Virtual Network のサブネット向けに静的ルートを作成し、ネクストホップとして作成したばかりのトンネルを指定します。一方をプライマリ、もう一方をバックアップにする場合は、プライマリトンネルのルートに低い優先度を付けます。両方のトンネルで ECMP 負荷分散する場合は、両方のルートに同じ優先度を付けます。
VPN Gateway Connection を作成する手順は次のとおりです。
- Virtual WAN > Hubs > Your vHub > Connectivity > VPN (Site to site) を開き、デフォルトのフィルター Hub association: Connected を外して、上記で作成した VPN Site を表示します。
- VPN サイトの横のチェックボックスをオンにし、Connect VPN sites を選択します。
次の設定を選びます。これらの設定は Cloudflare で検証済みです。ただし VPN 接続を設定するときは、Azure のドキュメント ↗ と Cloudflare のドキュメント に記載のとおり、技術的にはほかのパラメーターも使えます。
-
PSK: Cloudflare が IPsec トンネル用に生成した PSK を指定します。
-
Protocol: IKEv2
-
IPsec: Custom
- IPsec SA lifetime in seconds: 28800
- IKE Phase 1
- Encryption: AES256
- Integrity/PRF: SHA256
- DH Group: ECP384
- IKE Phase 2(IPsec)
- IPsec Encryption: AES256
- IPsec Integrity: SHA256
- PFS Group: ECP384
- Propagate Default Route: Disable
- Use policy based traffic selector: Disable
- Connection mode: Initiator Only
- Configure traffic selector?: Disabled
-
Connect を選択します。