このチュートリアルでは、Cloudflare WAN(旧 Magic WAN)と AWS Transit Gateway の間で IPsec VPN を設定する方法と、その例を説明します。
AWS アカウントに AWS Transit Gateway を作成しておく必要があります。AWS の仮想プライベートクラウド(VPC)と Cloudflare WAN の間でトラフィックをルーティングするために使います。Transit Gateway の作成については、AWS のドキュメント ↗ を参照してください。
あわせて、VPC 内の仮想マシン(VM)向けのルートテーブルエントリと、Transit Gateway 向けのルートテーブルエントリも設定する必要があります。設定しないと、Cloudflare WAN 経由でルーティングする VM 同士の接続は動作しません。ルートテーブルについては、AWS のドキュメント ↗ を参照してください。
- Transit gateways > Transit gateway attachments に移動し、Create transit gateway attachment を選びます。
- ドロップダウンメニューから、作成済みの Transit gateway ID を選びます。
- Attachment type で VPN を選びます。
- VPN attachment で、次の設定を選びます(ここに記載していない設定はデフォルトのままにできます)。
- Customer Gateway: New を選びます。
- IP Address: Cloudflare の anycast IP アドレスを入力します。
- Routing options: Static を選びます。
- Create transit gateway attachment を選びます。
-
作成した VPN 接続を選び、Download configuration を選びます。
-
テキストファイルがダウンロードされます。AWS Transit Gateway がトンネルに割り当てた IP レンジを探します。最初の IP レンジは AWS Transit Gateway 側で使うものです。2 番目の IP レンジを、Cloudflare WAN の Interface address の設定に使います。
-
作成した VPN 接続を選び、Actions > Modify VPN tunnel options を選びます。
-
VPN tunnel outside IP address のドロップダウンメニューから、いずれかのトンネルを選びます。
-
選んだ IP address を控えます。このアドレスは、IPsec トンネルの Cloudflare 側で設定するカスタマーエンドポイント IP に対応します。
-
VPN 接続のオプションが増えます。Pre-shared key を控えます。Cloudflare 側で IPsec トンネルを作成するときに必要です。
-
Inside IPv4 CIDR では、AWS は
169.254.0.0/16範囲内の/30ブロックのみを許可します。これに合わせるため、Cloudflare はこの IP ブロックの一部をサポートしています。具体的には、IPsec トンネルの(内部)インターフェース IP として169.254.240.0/20を割り当てられます。この例では、IPsec トンネルの CIDR ブロックとして169.254.244.0/30を使います。AWS 側は169.254.244.1、Cloudflare 側は169.254.244.2です。 -
IPsec トンネルに次の設定をします。Startup action は Start にする必要があります。これは、AWS 側が IPsec ネゴシエーションを開始することを意味します。ここに記載していない設定はデフォルトのままにできます。
- Phase 1 encryption algorithms:
AES256-GCM-16 - Phase 2 encryption algorithms:
AES256-GCM-16 - Phase 1 integrity algorithms:
SHA2-256 - Phase 2 integrity algorithms:
SHA2-256 - Phase 1 DH group numbers:
20 - Phase 2 DH group numbers:
20 - IKE Version:
ikev2 - Startup action: Start
- DPD timeout action:
Restart
- Phase 1 encryption algorithms:
-
Save changes を選びます。
-
2 つ目の VPN 接続にも、上記の手順を繰り返します。2 つ目の outside IP アドレスを使い、Cloudflare 側のトンネルを設定するときも IP アドレスを適切に変更します。
上記のとおり AWS Transit Gateway の VPN 接続とトンネルを設定したあと、Cloudflare ダッシュボードに移動し、Cloudflare WAN 側で対応する IPsec トンネルと静的ルートを作成します。
- IPsec トンネルの追加方法は トンネルを追加する を参照してください。IPsec トンネルを作成するときは、次の設定を必ず指定します。
- Tunnel name:
tunnel01 - Interface address: AWS が強制する
/30CIDR ブロック(最初の使用可能な IP は AWS 側)です。例:169.254.244.2 - Customer endpoint: AWS の VPN tunnel outside IP address の IP アドレスです。例:
35.xx.xx.xx - Cloudflare endpoint: 2 つの anycast IP のうち、1 つ目を入力します。
- Pre-shared key: Use my own pre-shared key を選び、AWS VPN トンネル用に作成した PSK を入力します。
- Health check type: Request を選びます。
- Health check direction: Bidirectional を選びます。
- Replay protection: Enabled を選びます。
- Tunnel name:
- Save を選びます。
tunnel02についても、上記の手順を繰り返します。同じプレフィックスを選び、Tunnel/Next hop には 2 つ目の IPsec トンネルを選びます。
Cloudflare WAN の静的ルートは、AWS の仮想プライベートクラウド内に作成した仮想マシン(VM)のサブネットを指す必要があります。たとえば VM のサブネットが 192.168.192.0/26 の場合、静的ルートのプレフィックスとして使います。
静的ルートを作成するには、次の手順に従います。
- 作成方法は 静的ルートを作成する を参照してください。
- Prefix に、VM のサブネットを入力します。例:
192.xx.xx.xx/24 - Tunnel/Next hop には、前の手順で作成した IPsec トンネルを選びます。
- 作成した 2 つ目の IPsec トンネルについても、上記の手順を繰り返します。