2016年12月15日木曜日

社内の複数拠点からMicrosoft AzureにVPN接続する

Microsoft Azureで「社内の複数の拠点からVPNを張ってAzureのリソースを使いたい」と言われることがあります。

image

従来は、簡単な作業でなかったのですが、リソースマネージャーモデルであれば、以下のようにGUIだけで構成できます。リソースマネージャーでもVPNゲートウェイは1台しか作れませんが、複数の接続を簡単に追加できるからです。

まず拠点単位でローカルネットワークゲートウェイを構成します。ローカルネットワークゲートウェイは、オンプレミスのVPNルーターの情報を保存したものです。

次に、ローカルネットワークゲートウェイを使って、接続を追加します。

image

ここまでで、Azureと拠点A、Aureと拠点Bの接続が完了します。

マイクロソフトが提供するオンプレミス側VPNゲートウェイの構成スクリプトは、Azureの仮想ネットワークとローカルネットワークの範囲しかルーティングしないため、拠点Aと拠点Bの接続は構成されません。

これは、既存のルーティング情報に影響を与えないためです。そのため、Azureとの接続前から拠点Aと拠点Bが接続できている場合はそのまま使い続けることが可能です。

ただし、AzureのVPNゲートウェイ自体はローカルネットワークゲートウェイの情報を使ったルーティングが可能なので、オンプレミス側VPNゲートウェイで必要なルーティング情報を与えてやれば、拠点Aと拠点Bの接続が可能です。

以上の内容を図にしました。

image

同様に、ローカルネットワークゲートウェイのネットワーク範囲を追加すれば、オンプレミス側のネットワークも拡張できます。

なお、インターネット回線を通るため、拠点Aと拠点Bの通信にはそこそこ大きな遅延が発生します。

実際に、東京のトレーニングセンター内で仮想的に2つの拠点を作り、東日本のデータセンターにVPNゲートウェイを作って、拠点Aから拠点Bにpingを飛ばしたところ、10ミリ秒から25ミリ秒の遅延が発生しました(オンプレミスのルーターはWindows Server 2012 R2仮想マシン)。

連続して通信を行っても、遅延にはかなりばらつきがありました。決して品質が高いとはいえないのですが、インターネットにさえつながればどこからでも接続できるので、便利な状況もあるでしょう。

image