Azure サイト間 VPN 接続におけるトラブルシューティングの傾向

Azure のサイト間接続に VPN トンネルを使用している場合に、「接続できない」または「接続できているように見えるが、不安定」といったお問い合わせをいただくことがあります。
私たちサポートチームにいただくお問い合わせの内容から、以下に傾向を整理してみました。
もしも同様の症状に直面された場合に、ご参考になれば幸いです。

注意:
インターネット VPN の性質上、設定の適合性や Azure 側の障害の有無如何によらず、経路上の状況によっては予期しない瞬断や性能の低下が発生する可能性があります。
より安定した接続性能を必要とするシステムでは、ExpressRoute のご利用もご検討ください。
また記載の内容は本稿作成時点の情報を基準としております。将来的に予告なく変更される可能性もありますことをご容赦ください。

1.VPN デバイス側の IPSec 設定パラメーターが、Azure が想定している値と一致していない。

「Azure 管理ポータル上のサイト間接続の状態が、接続と切断を繰り返す」といった状況の場合、VPNデバイスの設定パラメーターに問題がある場合がございます。

Azure とサイト間接続を構成する VPN デバイスの要件については、以下の技術情報をご参照ください。

https://azure.microsoft.com/ja-jp/documentation/articles/vpn-gateway-about-vpn-devices/

特に過去のお問い合わせでは、以下のような点が原因となっていた傾向がございます。

  • ポリシーベースVPN(静的ルーティングゲートウェイに対応)とルートベースVPN (動的ルーティングゲートウェイに対応) の選択が、実際のAzure ゲートウェイの動作モードと一致していない。
  • SA Lifetime の数値が一致していない。

なお、誠に恐れ入りますが、公開済みのテンプレート以外には、個々の VPNデバイスの設定方法については弊社サポートの範囲外となります。
VPN デバイスの設定方法については、各デバイスの供給元にご照会いただきますようお願いいたします。


2.オンプレミス側からAzure 仮想ネットワークまでの経路が循環している

「Azure 管理ポータル上はサイト間接続が行えているのに、仮想ネットワーク上の仮想マシンと全く通信ができない」といった場合、オンプレミス側のルーターの経路設定が循環している可能性があります。
オンプレミス側の端末より、仮想ネットワーク上の仮想マシンに対し、tracert や Ping を実行することで状況を切り分けることが可能です。

Windows OS に同梱されている ping コマンドの場合、以下のように「TTL が 期限切れになりました」といったメッセージが表示されます。

10.0.0.2 からの応答: 転送中に TTL が期限切れになりました。 

3. MTU の問題

「Ping は疎通するのに、VPN トンネルを経由したファイルのコピーなどが著しく遅い」といった状況の場合、経路上の MTU が影響している場合があります。
この事象と対策につきましては、以下のサポート技術情報をご参照下さい。

Microsoft Azure の VPN 接続が不安定になる問題
https://support.microsoft.com/ja-jp/kb/2902923/

4.Quick Mode SA の Idle Timeout

現行のAzure ゲートウェイの仕様として、5分間 Idle (無通信) 状態になった Quick Mode SA を破棄いたします。「約5分おきに、VPNデバイスのログにSA破棄のログが記録される」という状況の場合、このパターンに該当している可能性があります。
再度通信が発生したタイミングで、Quick Mode SA の再作成が行われますが、Quick Mode SA の再作成が完了するまでの間、わずかな時間 Ping の疎通が失敗するといった現象が発生する場合があります。
オンプレミス側より定期的にAzure 仮想ネットワークに対してPingなどの通信を行うことで、Idle Timeoutを回避することができます。

5. ネットワークアドレス空間の定義がAzure とオンプレミス側のデバイスで一致していない。(静的ルーティングゲートウェイ使用時)

静的ルーティングゲートウェイを使用している場合、Quick Mode SAの確立は ネットワークアドレス単位で行われます。
ネットワークアドレスに関する設定が、Azure 管理ポータル上で設定したものと、オンプレミス側の VPN デバイスの側で完全一致している必要があります。
これは、静的ルーティングゲートウェイ構成時に使用されるポリシーベース VPN の特性上、Quick Mode SA の確立に際して、ローカルネットワークとリモートネットワークのネットワークアドレス空間の情報が、認証情報 (Proxy-ID)として使用されるためです。

例えば、Azure 管理ポータル上で、仮想ネットワークのアドレス空間と、ローカルネットワークのアドレス空間として、以下の内容が定義されていたとします。

仮想ネットワーク側:
192.168.11.0/24
192.168.22.0/24

ローカルネットワーク:
192.168.88.0/24
192.168.99.0/24

この時、以下の計4本の Quick Mode SA が確立できるように VPN デバイスの設定を記述する必要があります。

 192.168.11.0/24 と 192.168.88.0/24
 192.168.11.0/24 と 192.168.99.0/24
 192.168.22.0/24 と 192.168.88.0/24
 192.168.22.0/24 と 192.168.99.0/24
 
 
「静的ルーティングゲートウェイを使用しており」かつ「仮想ネットワークまたはローカルネットワークにアドレス空間を増やした途端に不安定になった」という場合、このパターンに該当している可能性が高いと考えることができます。

なお、この事象については以下の点にご留意ください。

  • VPN デバイスによっては、1本のVPNトンネルに対し、複数の QuickMode SA を確立させる機能が備わっていない場合があります。
  • また、仮に設定が行える場合でも、設定の記述が複雑になりがちです。
    VPNデバイスが動的ルーティング(ルートベースVPN)に対応している場合は、ルートベースVPNを使用した方が一般的に VPN デバイス側の設定が簡易になります。

6.PFS に関する設定の不一致 (動的ルーティングゲートウェイ使用時)

コマンドオプションについて記載の訂正を行いました。(2015/6/3)
2014 年末のアップデートにより、VPN トンネルのセキュリティを向上させるパラメーターとして、PFS (Perfect Forward Secrecy) が使用できるようになりました。
VPN デバイスで PFS を有効にする場合、Azure ゲートウェイ側でも明示的に PFSを有効にする必要があります。
これには、以下のコマンドを実行します。

Set-AzureVNetGatewayIPsecParameters -VNetName <仮想ネットワーク名> -LocalNetworkSiteName <ローカルネットワーク名> -pfsGroup PFS1

逆に無効化するためには、以下のコマンドを実行します。

Set-AzureVNetGatewayIPsecParameters -VNetName <仮想ネットワーク名> -LocalNetworkSiteName <ローカルネットワーク名> -pfsGroup None

VPN デバイス側と Azure 側の設定が一致していない場合、確立していた VPN 接続が突然切断したままになるといった現象が発生することがあります。

PFS は VPN トンネルのセキュリティを向上させるテクノロジーですが、DH 鍵交換を定期的に実施するという性質上、処理上のオーバーヘッドが発生いたしますのでご留意下さい。Azure のサイト間接続においては、PFS の使用は必須ではありません。