概要
AWS内のVMからOracle Cloud(OCI)のVMに接続する要件があったため接続性について簡単な検証を行いました。
検証構成
【AWS】
既存のSubnetに検証用のVMをデプロイしました。
OCIとのIPSec接続はサイト間VPN機能を使用します
【OCI】
既存のSubnetに検証用のVMをデプロイしました。
AWSとのIPSec接続はサイト間VPNを使用します
検証1にてシングル接続を設定して、検証2では冗長構成を設定して障害迂回ができるか検証しました。
検証その1
【AWS】
コンソールから仮想プライベートゲートウェイを作成してVPCにアタッチします
VPN接続に遷移してVPN接続を作成します
ターゲットゲートウェイのタイプ:仮想プライベートゲートウェイ
仮想プライベートゲートウェイ:先程作成した仮想プライベートゲートウェイを選択
IPアドレス:後でOCI側のIPアドレスに変更するためここれでは適当なIPアドレスを入力します
ルーティングオプション:静的
静的IPプレフィックス:OCI側のVCN IPアドレス
トンネル1オプション:事前共有キーをあらかじめ決めておいて設定
しばらくするとVPN接続が作成されます。Tunnel1の外部IPアドレスと内部IPv4 CIDRをメモします
【OCI】
コンソールからネットワーキング>顧客接続性>顧客構内機器に遷移してCPEを設定します
Public IP Address: AWS Tunnel1の外部IPアドレス
サイト間VPNに遷移しIPSec接続の作成を行います
名前:適切に設定
顧客構内機器:先程設定したCPEを指定します
動的ルーティングゲートウェイコンパートメント:今回は既存を使用しましたが未設定であれば新規で作成します
オンプレミスネットワークへのルート:AWS側のVPCアドレスレンジ
トンネル1
名前:適切に設定
共有シークレット:AWSで設定した事前共有キー
IKEバージョン:IKEV2
ルーティングタイプ:静的ルーティング
IPv4トンネル内インターフェース-CPE:AWS 内部IPv4 CIDRに2足したIPアドレス
IPv4トンネル内インターフェース-Oracle:AWS 内部IPv4 CIDRに1足したIPアドレス
トンネル2は静的ルーティングのみ設定
しばらくするとVPN IPSec接続が作成されるのでOracle VPN IPアドレスをメモします
【AWS】
カスタマーゲートウェイの作成画面に遷移してカスタマーゲートウェイを作成します
VPN接続画面に遷移して、既存の接続設定を選択し「VPN接続を変更する」を選択します
カスタマーゲートウェイを先程設定したカスタマーゲートウェイに変更します
5分ほど待つと設定が反映されTunnel1のステータスがUpに変わります
【OCI】
引き続きIPSec以外の設定を行います
【OCI】
セキュリティ(セキュリティリストまたはNSG)およびSubnetのルーティング設定を行います
Subnetルーティング設定
AWS VPCのNexthopをDRGに設定
【AWS】
VPCルート設定
OCI VCNのNexthopをVPN GWに設定
設定が完了したらAWS VMからOCI VMにPingが成功することを確認します
検証その2
シングル接続構成が成功したので続いてもう一つVPN接続を設定します
手順は最初のVPNと同様です。
DRGのルーティング情報も確認してみます。
2つのVPNからルートを受けっていることがわかります。
では、一方のVPNをDownさせて通信が迂回できるか確認してみます。
方法としては、AWS VMからOCI VMにpingを行った状態で一方のVPNをDownさせてping状況を確認しました。
2回実施しましたがどちらもPing Downは発生せず迂回することを確認しました。
考察
AWS、OCIともにIPSec VPN設定は対向CPE1台で1VPN設定あたり2tunnel構成する仕様となっています。今回は1VPN設定で1tunnelのみ構成しているため、AWS,OCIともにWarningが表示されました。(AWSはさらにメールが届きました)
また、冗長構成においては、AWS, OCIともに1VPN設定あたり1tunnel構成を2つ設定することにより冗長化しました。迂回通信は成功しましたが2つのtunnelが異なるメンテナンスグループである必要があります。同じメンテナンスグループになった場合せっかく冗長にしたにもかかわらず両方Downする可能性があります。しかしながら現時点ではメンテナンスグループを確認方法が見つからなかっため、十分な検証を行うか、ある程度停止が許容できるバッチファイル転送等に用途を限定したほうがよいかと思います。