あいさつ
公式のサイトを参考に AWS と OCI を Site-to-Site VPN 接続してみました。
難解な部分がありましたので、私なりの解釈をいれながら噛み砕いてまとめてみました。
敢えて画像はつけません。必要であればご要望下さい。
公式サイト
Title: 動的 BGP ルーティングを使用して AWS と OCI の間に VPN を設定する | AWS re:Post
URL: https://repost.aws/ja/knowledge-center/vpn-oci-bgp-routing
手順
◆AWS の設定
1. AWS 側でダミーの [カスタマーゲートウェイ] を作成します。
ダミーの意味
・この時点では OCI 側のグローバル IP が判明していない為ダミーとなります。
・AWS の [カスタマーゲートウェイ] の付け替えが可能であるが、OCI の [CPE] の付け替えができないので、AWS 側でする必要があります。
・この設定は最終的に使いません。
2. [仮想プライベートゲートウェイ] を準備します。
3. [仮想プライベートゲートウェイ] を [Amazon VPC] をアタッチします。
4. [VPN 接続] を作成します。
◆詳細
・名前タグ:任意
・ターゲットゲートウェイ:「2.」で作成したものを選択します。
・カスタマーゲートウェイ:「1.」で作成したものを選択します。
・ルーティングオプション:「動的」を選択します。
◆トンネル 1 オプション
・トンネル 1 の内部 IPv4 CIDR:169.254.0.0/16 の範囲からのサイズ /30 IPv4 CIDR ブロック。
・トンネル 1 の事前共有キー:※OCI は特定の文字をサポートしていません。
事前共有キーの注意
個人的には英大文字・英小文字・数字の混成にし、文字数は12文字以上にしています。
◆トンネル 2 オプション
こちらの設定は使用しませんので適当に埋めてよいです。空欄は設定できないのでダメです。
トンネル2を使用しない理由
AWS 側は [カスタマーゲートウェイ] の [IP アドレス] を1つしか指定できません。対向が1つしかありませんのでトンネルは1本になるのです。設定が完了してもトンネル2はアップになりません。
5. 一般的な Site-to-Site VPN 設定ファイルをダウンロードします(※General を選択)。
◆設定ファイルで必要な項目を抜粋
[IPSec Tunnel #1]
[#1: Internet Key Exchange Configuration]
[Configure the IKE SA as follows]
[Pre-Shared Key]:「4.」の「トンネル 1 の事前共有キー」
[Authentication Algorithm]:sha1
[Encryption Algorithm]:aes-128-cbc
[Lifetime]:28800 seconds
[Diffie-Hellman]:Group 2
[#2: IPSec Configuration]
[Authentication Algorithm]:hmac-sha1-96
[Encryption Algorithm]:aes-128-cbc
[Lifetime]:3600 seconds
[Perfect Forward Secrecy]:Diffie-Hellman Group 2
[#3: Tunnel Interface Configuration]
[Outside IP Addresses]
[Virtual Private Gateway]:(例)203.0.113.130 … ※注意:ドキュメンテーション目的利用可能IP(RFC 5737)
[Inside IP Addresses]
[Customer Gateway]:「4.」の「トンネル 1 の内部 IPv4 CIDR」内から1つ自動で割り当てられる
[Virtual Private Gateway:「4.」の「トンネル 1 の内部 IPv4 CIDR」内から1つ自動で割り当てられる
[#4: Border Gateway Protocol (BGP) Configuration]
[BGP Configuration Options]
[Virtual Private Gateway ASN:「1.」で設定したもの。
◆OCI の設定
6. OCI 側で [Customer-Premises Equipment] (顧客宅内機器) を作成します。
・名前:任意
・IPアドレス:「5.」 の「Outside IP Addresses - Virtual Private Gateway」
・ベンダー:Other … ※AWS に該当するのもがない為
7. [動的ルーティングゲートウェイ] を作成します。
8. [動的ルーティングゲートウェイ] を [VCN] にアタッチします。
9. [サイト間VPN] を作成します。
注意
「5.」 はすべて「IPSec Tunnel #1」の設定です。
◆詳細
・名前タグ:任意
・カスタム共有シークレットの指定:チェックを入れる
・共有シークレット:「5.」 の「Pre-Shared Key」
・顧客構内機器:「6.」で設定したもの。
・動的ルーティング・ゲートウェイ:「7.」で設定したもの。
・オンプレミス・ネットワークへのルート:空欄 … ※BGP の場合は空欄にする
◆トンネル 1 オプション
・名前:任意
・IKEバージョン:IKEv1
・ルーティング・タイプ:BGP動的ルーティング
・BGP ASN:「5.」 の「Virtual Private Gateway ASN」
・IPv4トンネル内インタフェース - CPE:「5.」 の「Inside IP Addresses - Customer Gateway」
・IPV4トンネル内インタフェース - Oracle:「5.」 の「Inside IP Addresses - Virtual Private Gateway」
◆フェーズone (ISAKMP)構成 … ※[カスタム構成の設定] のチェックをオン
・カスタム暗号化アルゴリズム:「5.」 の「Configure the IKE SA as follows - Encryption Algorithm」
・カスタム認証アルゴリズム:「5.」 の「Configure the IKE SA as follows - Authentication Algorithm」
・カスタムDiffie-Hellmanグループ:「5.」 の「Configure the IKE SA as follows - Diffie-Hellman」
・IKEセッション・キー存続期間(秒):「5.」 の「Configure the IKE SA as follows - Lifetime」
◆フェーズtwo (IPSec)構成 … ※[カスタム構成の設定] のチェックをオン
・カスタム暗号化アルゴリズム:「5.」 の「Configure the IPSec SA as follows - Encryption Algorithm」
・カスタム認証アルゴリズム:「5.」 の「Configure the IPSec SA as follows - Authentication Algorithm」
・IPSecセッション・キー存続期間(秒):「5.」 の「Configure the IPSec SA as follows - Lifetime」
・完全な前方秘匿性Diffie-Hellmanグループ:「5.」 の「Configure the IPSec SA as follows - Perfect Forward Secrecy」
◆Amazon VPC コンソールで VPN ゲートウェイを設定する
10. AWS 側で [カスタマーゲートウェイ] を作成します。
※こちらは「1.」と違い本番用のものになります。
◆詳細
・名前タグ:任意
・BGP ASN:31898 … ※動的ルーティングゲートウェイのデフォルトの BGP ASN です。
・IP アドレス:「9.」 の「Oracle VPN IPアドレス」のトンネル1側
11. AWS 側で [カスタマーゲートウェイ] の付け替えを実施する。
11-1. 「4.」で作成した [Site-to-Site VPN 接続] に移動します。
11-2. [アクション] を選択し、[VPN 接続を変更] を選択します。
11-3. カスタマーゲートウェイのターゲットタイプを更新し、カスタマーゲートウェイを選択します。
11-4. 「1.」で作成したダミーから、「10.」で作成した本番用に付け替える。
注意
AWS が Site-to-Site VPN 接続を変更および更新するのに数分かかります(かなり長い)。
12. トンネル1のステータスが UP であることを確認します。
13. OCI 側のトンネルもステータスも UP であることを確認する。
14. AWS、OCI にそれぞれサーバーを立て、お互いに疎通できることを確認する。
あとがき
途中で飽きてしまい雑になってしまいました。
折を見て見やすいように修正します。