このチュートリアルでは、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 サイトは、VPN 接続経由で Azure vWAN が到達できるリモートサイトを表します。通常はオンプレミス拠点です。ここでは、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 のエニーキャストアドレスを入力します。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 ↗)を選ぶことを推奨します。ポイントツーポイントリンクとして扱い、両方の要件を満たすのに適したアドレス割り当てになります。
例:
- 一意のポイントツーポイントリンク用サブネットとして
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 に、上記のとおり CIDR 表記の
/32サブネットを 2 つ追加します。Azure VPN Gateway を vWAN Hub と使う場合、1 つの VPN Gateway Connection が 2 本の Cloudflare WAN IPsec トンネルに対応します。そのため、Cloudflare の IPsec トンネルごとに一意の/31サブネットを 2 つ選びます。各/31の上位アドレスを、VPN サイトの Private address space に/32サブネットとして追加します。 - 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: アカウントに割り当てられた Cloudflare エニーキャストアドレスの 1 つを使います。Leased IPs ↗ で確認できます。このアドレスは、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 を選択します。