このチュートリアルでは、Cloudflare WAN(旧 Magic WAN)と AWS Transit Gateway の間で IPsec VPN を設定する方法と例を説明します。
AWS アカウントに AWS Transit Gateway を作成しておく必要があります。AWS の仮想プライベートクラウド(VPC)と Cloudflare WAN の間でトラフィックをルーティングするために使います。Transit Gateway の作成方法は AWS のドキュメント ↗ を参照してください。
加えて、VPC 内の仮想マシン(VM)用のルートテーブルエントリと、Transit Gateway 用のルートテーブルエントリも設定する必要があります。設定しないと、VM と 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 を控えます。この値が、Cloudflare 側の IPsec トンネルで設定するカスタマーエンドポイント 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 トンネルの追加方法は Add tunnels を参照してください。IPsec トンネルを作成するときは、次の設定を定義します。
- Tunnel name:
tunnel01 - Interface address: AWS が強制する
/30CIDR ブロック(最初の使用可能な IP は AWS 側)です。例:169.254.244.2 - Customer endpoint: AWS の VPN tunnel outside IP address です。例:
35.xx.xx.xx - Cloudflare endpoint: 2 つの anycast IP のうち最初のものを入力します。
- 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 なら、静的ルートのプレフィックスにそれを使います。
静的ルートを作成するには、次の手順を実行します。
- 作成方法は Create a static route を参照してください。
- Prefix に VM のサブネットを入力します。例:
192.xx.xx.xx/24 - Tunnel/Next hop には、前の手順で作成した IPsec トンネルを選択します。
- 作成した 2 本目の IPsec トンネルでも、上記の手順を繰り返します。