Azure Site to Site VPN を試してみた

#はじめに
Azureの仮想環境とオンプレミスをVPNで接続するAzure Site to Site VPN。
作ってみたいとは思うもののあいにくDCに個人用ルータを持ち合わせていないので、AzureのVMを使用して仮想的にオンプレルータを作成し、試してみました。

#全体構成イメージ
こんな感じ。
![diagram.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469705/56f6d840-b9ec-c5c3-8dd6-d2c42eeea9e3.png)
「オンプレ」部分はVMで代替。VMにルーティング機能を追加しました。

#使用したリソース（と名前）
・VNET (staging vnet, client vnet)
・VM(StoSvm, StoSvmAzure)
　＊OSはWindows Server 2016 DataCenter, スペックは適当
・仮想NWGW (VNWGW)
・ローカルNWGW (local-gw)
・public IPアドレス

#VNETの構築
接続デバイスは、後ろの工程で作成されたものです。
##オンプレ側（staging vnet）
こんな感じ。subnetBに接続されているデバイスは気にしないで。
![stagingVNET概要.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469705/44500364-1e5a-2c60-e934-6676a5dc2bbe.png)
##Azure側（client vnet）
こんな感じ。
![clientVNET概要.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469705/4f1853b2-cf16-d56b-166a-f9e0479cabce.png)
後の工程で作成する仮想NWGWに割り当てるsubnetは「ゲートウェイサブネット」の部分をクリックして作成します。今回の仮想NWGW用のsubnetは「GatewaySubnet」。
**Azure側のVNETにゲートウェイサブネットを作成します。**
![clientVNETsubnet.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469705/1bea996c-0e84-4dcd-7cd0-d6c3c8ef128b.png)

#オンプレ側の構築
![StoSvm.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469705/8b42d6c4-f601-14dc-3bcb-a5ec3d37dbd9.png)
こんな感じでルータ＠オンプレDCを模したVMを立てます。VNETやらそのうえでのsubnetやらは先の全体構成図に則ります。
このVMにルーティング機能を付与するのは別途。

#Azure側の構築
![StoSvmAzure.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469705/81838078-622b-783c-8b0e-d596a92eaa40.png)
こんな感じでAzureのVMを立てます。VNETやらそのうえでのsubnetやらは先の全体構成図に則ります。
仮想NWGWを立てたりするのは別途。
オンプレ側から接続できたことを確認する用に、IISを追加しておきます。

#仮想NWGWの構築
仮想NWGWを作成します。global IPアドレスは新規作成。VNETには、client vnetで作ったゲートウェイサブネットの「GatewaySubnet」を割り当てています。
**Azure側のVNETで作ったゲートウェイサブネットを仮想NWGWに割り当てることになります。**
![VNWGW作成.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469705/1efa81e3-f02a-46aa-f427-0d74637c414d.png)

#ローカルNWGWの構築
こんな感じの画面。
「IPアドレス」にはオンプレ側のglobal IPアドレスを、アドレス空間にはオンプレ側のprivate IPアドレスを割り当てます。
![local-gw作成.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469705/c272e849-7414-4570-8e4f-77c3194cf1b2.png)
結果、このようになります。
![local-gw概要.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469705/d02e2170-777e-3d68-059f-1162a7baa0bc.png)

#仮想NWGWでVPN接続をする
この画面から、VPN接続をします。「connection」というのは次の作業を行った結果できたものですね。
![VNWGW接続.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469705/4af3dddd-2a10-de0b-a06c-4f516f80c797.png)
「追加」を選択したらこちらの画面が出ます。
「接続の種類」で「サイト対サイト」を、「ローカルネットワークゲートウェイ」で先ほど作成した「local-gw」を選択します。共有キーは適当に作成してよいですが、きちんとメモしておきましょう。
![VNWGW接続の追加.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469705/08469dfb-647f-d5c1-6480-45659bab7b73.png)
このような結果になります。
![connection概要.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469705/2698c42a-e6ad-7131-fa4d-8c92571ff077.png)

#オンプレにてルーティング設定
オンプレルータを模したVMにリモアクしてください。
##ルーティング機能の追加
Server Managerから「Remote Access」を追加。
![OnpremiseSM.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469705/6b636ae1-dfad-786c-411f-14607156faa8.png)
そして、Remote Access Management Consoleから設定を追加。

![OnpremiseRAMC.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469705/67d5b341-385d-f258-0912-657da9d81e5b.png)
![OnpremiseRouting.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469705/6f611ede-3698-5098-b1c6-5aae72767deb.png)
メモし忘れたけれど、StoSvmの「Network Interface」の「New Demand-dial Interface...」の部分で「Azure」という名前の、Azureを宛先とするstatic的な経路情報を追加。ネクストホップはどこにしたっけ、、、
Securityタブにて先ほどメモしたPSKを入力。
![OnpremiseAftAddRoute.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469705/67eaf0f6-fe6d-82e3-fdbd-688e7ac4493e.png)
結果、Azure側に立てたVMのアドレスをブラウザに打ち込んだところ、無事接続が確認できました。IIS。
![OnpremiseResult.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469705/2a8bd932-33cf-ad91-eeb9-0c95d029fa49.png)

#まとめ
今回はVMをオンプレ上のIPSecルータに模してSite to Site VPNを試してみました。
Point to Site VPNもありますが、なんだか証明書関連が面倒くさそうですね、、
企業が導入する際には情シスがいい感じにやってほしいものです。