(2017/01/25 ARM ベースのゲートウェイについては、ポータルからのリセットが可能になりました。)
こんにちは、Azure サポートチームの比留間です。
今回は、VPN ゲートウェイのリセットに関してお話ししようと思います。
Azure のよくあるお問い合わせの一つに、サイト間VPN の接続障害があります。サイト間 VPN 接続が確立できない理由としては、パラメーターの相違など、様々な要因が考えられますが、Azure の側での問題の有無を切り分けつつ復旧を試みる方法として、VPN ゲートウェイのリセットがあります。
Azure のVPNゲートウェイは現時点では内部的に2つのインスタンスで構成されており、リセットを行う事で以下の処理が実行されます。
- プライマリで動作しているインスタンスにて、ゲートウェイの機能を再起動し、セカンダリインスタンスに降格します。
- セカンダリで動作しているインスタンスを、プライマリインスタンスに昇格します。
- リセットを行っても、ゲートウェイのIPアドレスおよび、事前共有キー (PSK)は維持されます。
実行例は以下の通りです。
D:\PS> Reset-AzureVNetGateway –VnetName "ContosoVNet"
Error :
HttpStatusCode : OK
Id : f1600632-c819-4b2f-ac0e-f4126bec1ff8
Status : Successful
RequestId : 9ca273de2c4d01e986480ce1ffa4d6d9
StatusCode : OK
上記の例では、ContosoVNet という仮想ネットワークに対してリセット処理を行います。
リセット時の注意事項は以下の通りです。
わずかな時間ですが、切断が発生します。
プライマリインスタンスからセカンダリインスタンスに機能への引き継ぎ(フェールオーバー)が完了するまでに、わずかな時間、接続断が発生します。通常、この時間は1分未満程度です。
Status コードを確認します。
稀な事象ではありますが、Azure PowerShellの実行環境と、Azure 側の通信の問題等によって、コマンドが正常に受理されない場合も想定できます。スクリプトに組み込む場合などには、以下のように Reset-AzureVnetGateway の戻り値を格納しておき、Status の値を確認するという方法があります。
例:
$result = Reset-AzureVNetGateway –VnetName “ContosoVNet”if ($result.Status -eq “Successful”) {
# 成功時の処理
}else {
# 失敗時の処理
}
リセットを2回行う
上述の通り、リセットの実行に伴い、ゲートウェイが再起動されるのは、もともとプライマリとして動作していたインスタンスがセカンダリに降格するタイミングです。つまり、セカンダリとして動作していたインスタンスは、1回のリセットのみでは古い設定を読み込んだままの状態であるという可能性もあります
そのため、1回のリセットで効果が表れない場合、2回目のリセットを行う事で効果が表れる場合もあります。
ARM ベースのゲートウェイは、以下の画面イメージのように、ポータルからのリセットが可能になりました。
(参考)
PowerShell を使用して Azure VPN Gateway をリセットする
https://azure.microsoft.com/ja-jp/documentation/articles/vpn-gateway-resetgw-classic/