ポイント対サイト(P2S)VPN接続をしているAzure VPN Gatewayに対して、AWSとサイト対サイト(S2S)VPN接続を検証しました。
最終系であるActive-Active構成については、公式手順で実施できますが、今回は最初にActive-StandbyでS2S VPN接続を行い、その後Active-Activeに切り替えます。
そのときのP2S接続が切断されるのか、そのまま利用できるのかという観点で書き残したいと思います。
ポイント対サイトVPN接続
仮想ネットワーク作成
-
まずは仮想ネットワークとサブネットを作ります。仮想ネットワークは/24で、サブネットは/27を1つ準備しました。
-
作成されたらゲートウェイサブネットを作ります。仮想ネットワーク画面から[サブネット]→[ゲートウェイサブネット]の順に選択します。
-
ゲートウェイサブネットは最小/29から作成できますが、/27以上が推奨されています。ExpressRouteGatewayと共存する場合は/27以上が必要です。また、ExpressRoute回線を16本以上接続する場合は/26以上が必要です。今回は/27で作ります。
仮想ネットワークゲートウェイ作成
-
SKUは[VpnGw1]、世代は[Generation1]とします。今回P2SではIKEv2接続を、S2SではBGP接続をしたいのでVPNGw1を選択しています。接続数やスループットに応じてSKUを選択します。SKU毎の差異はこちら。
-
パブリックIPのSKUはBasic、Standardどちらでもよいです。SKU毎の差異を確認して選択します。後続のS2S接続時にパブリックIPが複数追加されます。重要なのはBasicとStandard混在ができません。なのでこの時点で設計しておく必要があります。今回はBasicでいきます。
-
上記設定で作成します。作成に20分程掛かります。
自己署名ルート証明書/クライアント証明書生成
-
PowerShell を使用したポイント対サイトの証明書の生成とエクスポート の手順で、自己署名ルート証明書とクライアント証明書を生成します。
-
この手順でcerファイルが生成されます。
仮想ネットワークゲートウェイ設定
-
Azure Portalの仮想ネットワークゲートウェイ画面に戻り、[ポイント対サイトの構成]→[今すぐ構成]を選択します。
-
アドレスプールはVPN確立時のネットワークアドレス帯なので接続数に合わせて設定します。トンネルの種類は[IKEv2]、認証の種類は[Azure証明書]を選択します。
-
公開証明書データには、cerファイルをテキストで開いて内容を貼り付けます。BEGIN/ENDは不要。1行にして貼り付けます。
P2S接続
-
ダウンロードしたVPNクライアントをクライアント証明書をインストールしたPCに配置し、Exeファイルを実行することでVPN接続を確立することができます。
サイト対サイトVPN接続 (Active-Standby)
Azure仮想ネットワークゲートウェイBGP設定
-
次にP2S接続された仮想ネットワークゲートウェイに対して、サイト対サイトVPN接続を構築します。構築中に接続済みのP2S接続が切断されるのかという観点でも見ていきます。
-
まずはAzure 仮想ネットワークゲートウェイをActive-Standbyで設定します。後ほどAcitve-Activeに変更したときのP2S接続状態も見ていきます。
-
[BGPの構成]にチェックを入れASNはデフォルトの[65515]のままいきます。ASNの範囲はこちらに記載があります。後ほど設定するAWS側と重ならないようにします。
-
APIPA BGP IPアドレスに[169.254.21.2]を入力します。Azureでは、169.254.21.* および 169.254.22.* の範囲内の APIPA BGP IP がサポートされています。
-
ここまで入力したら[保存]を押します。ここは2~3分で終わります。
AWS仮想プライベートゲートウェイ作成
AWSカスタマーゲートウェイ作成
-
他はデフォルト設定で作成します。
AWSサイト間VPN接続作成
-
[トンネル1の内部IPv4 CIDR]に任意のCIDRを入力します。今回は公式手順にならって[169.254.21.0/30]を指定します。
-
[トンネル2の内部IPv4 CIDR]に任意のCIDRを入力します。今回は公式手順にならって[169.254.21.4/30]を指定します。
-
ここまで入力したら作成します。
Azureローカルネットワークゲートウェイ作成
-
[IPアドレス]には、[AWSサイト間VPN接続]の[トンネルの詳細]タブからTunnel1の外部IPアドレスの値を入力します。
-
BGPを有効にし、[ASN]にはAWS側で設定したASNを指定し、[BGPピアのIPアドレス]には公式にならって[169.254.21.1]を入力します。(これはAWS側のBGP IPアドレスになります)
-
ここまで入力したら作成します。
Azure接続の追加
接続確認
ポイント対サイト接続の状況
- 今回のこのActive-Standby S2S接続一連の作業中に、P2S接続した端末からpingを打ち続けましたが、切断されることはありませんでした。
- あくまでも今回の検証では、ということなので、P2Sが切断されることも前提とした方がよいかと思います。
サイト対サイトVPN接続 (Active-Active)
- 続いてP2S接続中に、Active-Standby構成からActive-Active構成に変更してみます。
Azure仮想ネットワークゲートウェイ設定変更
-
新規でパブリックIPを作成します。ここで注意するのはSKUで、今回は1つ目をBasicで作っているため2つ目もBasicで作ります。1つ目のパブリックIPのSKUと一致してないとエラーになります。
-
[カスタムのAzure APIPA BGP IPアドレス]を以下のように入力します。今回IPは公式手順にならっています。
-
ここまで設定したら保存します。40分程掛かります。また、この手順によってP2S接続中の通信は切断されます。Active-Standby構成のS2S接続も途中通信が切れます。ただS2S接続の方は自動的に通信は復旧しました。
AWSサイト間VPN接続削除
-
削除する意図としては、「Tunnel1:169.254.21.0/30」「Tunnel2:169.254.21.4/30」で作っていましたが、公式手順にならってTunnel2を169.254.22.0/30にしたいためです。
-
この時点でS2S接続は切断されます。
AWSカスタマーゲートウェイ2つ目作成
AWSサイト間VPN接続1つ目作成
-
[トンネル1の内部IPv4 CIDR]に任意のCIDRを入力します。今回は公式手順にならって[169.254.21.0/30]を指定します。
-
[トンネル2の内部IPv4 CIDR]に任意のCIDRを入力します。今回は公式手順にならって[169.254.22.0/30]を指定します。
-
ここまで入力したら作成します。
AWSサイト間VPN接続2つ目作成
-
[トンネル1の内部IPv4 CIDR]に任意のCIDRを入力します。今回は公式手順にならって[169.254.21.4/30]を指定します。
-
[トンネル2の内部IPv4 CIDR]に任意のCIDRを入力します。今回は公式手順にならって[169.254.22.4/30]を指定します。
-
ここまで入力したら作成します。
Azureローカルネットワークゲートウェイ1つ目を新しいAWSパブリックIPに変更
- AWSサイト間VPN接続を再作成したため、既存のAzureローカルネットワークゲートウェイに設定したAWSパブリックIPを変更する必要があります。
- 1つ目のAzureローカルネットワークゲートウェイを選択し、[構成]からIPアドレスを変更します。IPアドレスには、1つ目のAWSサイト間VPN接続の[トンネルの詳細]タブからTunnel1の外部IPアドレスの値を入力します。
Azureローカルネットワークゲートウェイ3つ作成
- 同じ要領でAzureローカルネットワークゲートウェイを3つ作成します。それぞれに設定する値は以下のように公式手順にならって設定しています。
- Azureローカルネットワークゲートウェイ2つ目
- IPアドレス
- AWSサイト間VPN接続1つ目のTunnel2の外部IP
- AWS BGPピア
- 169.254.22.1
- IPアドレス
- Azureローカルネットワークゲートウェイ3つ目
- IPアドレス
- AWSサイト間VPN接続2つ目のTunnel1の外部IP
- AWS BGPピア
- 169.254.21.5
- IPアドレス
- Azureローカルネットワークゲートウェイ4つ目
- IPアドレス
- AWSサイト間VPN接続2つ目のTunnel2の外部IP
- AWS BGPピア
- 169.254.22.5
- IPアドレス
- Azureローカルネットワークゲートウェイ2つ目
Azure接続1つ目のカスタムBGPアドレス設定
-
公式手順にならってBGPアドレスを以下のように設定します。
- プライマリカスタムBGPアドレス
- 169.254.21.2
- セカンダリカスタムBGPアドレス
- 169.254.21.6
- プライマリカスタムBGPアドレス
Azure接続3つ作成
-
[ローカルネットワークゲートウェイ]に 2つ目のローカルネットワークゲートウェイ を選択し、[共有キー]にAWS側で設定したパスフレーズを入力します。
-
公式手順にならって、2つ目~4つ目のカスタムBGPアドレスは以下のように設定します。
- Azure VPN接続2つ目
- プライマリカスタムBGPアドレス
- 169.254.22.2
- セカンダリカスタムBGPアドレス
- 169.254.21.6
- プライマリカスタムBGPアドレス
- Azure VPN接続3つ目
- プライマリカスタムBGPアドレス
- 169.254.21.2
- セカンダリカスタムBGPアドレス
- 169.254.21.6
- プライマリカスタムBGPアドレス
- Azure VPN接続4つ目
- プライマリカスタムBGPアドレス
- 169.254.21.2
- セカンダリカスタムBGPアドレス
- 169.254.22.6
- プライマリカスタムBGPアドレス
- Azure VPN接続2つ目
接続確認
-
手元の環境ではUpにならないことが何度かありました。その場合まずは設定に誤りがないかを確認します。設定が問題なければ、Azure仮想ネットワークゲートウェイのリセットを行うと解消する可能性があります。
-
リセットを選択しても設定が消えるようなことはありません。内部的には仮想ネットワークゲートウェイのインスタンスが再起動されます。P2S、S2S接続は切断されるので注意が必要です。また、リセットは1回当たり30分程掛かります。
- Active/Active構成の場合、インスタンスが2台で動作しているため2回リセットする必要があります。
ポイント対サイト接続の状況
-
P2S接続すると繋がる場合と繋がらない場合がありましたが、以下の手順でVPNクライアントを再度ダウンロードして設定し直すと接続できました。
- Azure Portalから[仮想ネットワークゲートウェイ]→[ポイント対サイトの構成]の順に選択し、[VPNクライアントのダウンロード]を実行する
- ダウンロードしたzipファイルを解凍する(ActiveActive構成での最新のモジュールをダウンロードする必要あり)
- VPNクライアントをダブルクリックして更新する
- VPN接続して問題なく接続されることを確認する
以上