【Azure】VPNGatewayをS2Sで構築テストする(2):構築してみる

# 1. はじめに
前回はVPNGatewayの設計要素について整理をおこないました。

https://qiita.com/hikaru_motomiya/items/377974a55e1042cff239

今回はいよいよVPNGatewayの構築をやっていきます!

# 2.構成図
以下のような構成でVPN構成を組んでみます。
オンプレミス環境のVPNは準備できないので、Azure上に仮想的なオンプレミス環境を作ってやっていきます。

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626338/893f033c-32b7-50fe-8e21-d14d3c3db3fe.png)|
|:-|

# 3.構築の流れ
ではさっそくやってきましょう！

## 3-1.VNetの作成
まずは何といってもVNetがないと話にならないので、VNetを構築します。
図中の「Azure-VNet」を作成します。

IPv4アドレス空間を__[10.0.0.0/16]__に。

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626338/d25d7407-d530-f436-381a-e2009e72f4b0.png)|
|:-|

サブネットとして、__[10.0.0.0/27]__で作成します。

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626338/828ae66c-b184-5a1c-931f-c85328dd8e4d.png)|
|:-|

VNetができたら、__ゲートウェイサブネットを作成します__。
このゲートウェイサブネットが、VPNGatewayのサブネットになります。
ゲートウェイサブネットは、__VNetに1つしか作ることができません__。IPアドレスの範囲は、__[10.0.255.0/27]__です。

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626338/a9be2903-b906-13a2-3ac8-c83cad72fe68.png)|
|:-|

同様に、オンプレミス環境に見立てたVNetも構築します。
本来は、この2つのVNetをピアリングすれば、通信が可能になります。

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626338/356c1344-84c3-694f-072e-ca53ea02f509.png)|
|:--|


## 3-2.VPNGatewayの作成

では次にAzure側のVPNGatewayを作っていきます。
今回は最低限でよいので、[Basic]で作成します。Vnetに先ほど作成した[Azure-VNet]を指定。

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626338/45db4ccf-1025-c3e3-eee1-04605b49b50b.png)|
|:-|

パブリックIPアドレスを作成するように設定します。

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626338/8eb14fc2-fdb0-08e3-a340-65ed8dbea104.png)|
|:-|

作成に20分~60分ぐらいかかりますが、これでVPNGatewayの作成ができました。
同じようにオンプレ側のVPN-Gatewayも作成します。

## 3-3.VPNGatewayの接続設定とローカルネットワークゲートウェイの作成

では次に、できたてほやほや!のVPNGatewayに接続を追加します。

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626338/ad5ff90e-d6e6-a6df-b8ab-0b065b45f57c.png)|
|:-|

接続の種類を[サイト対サイト]にすると、ローカルネットワークゲートウェイの作成画面へ遷移できます。

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626338/097352ae-5696-332e-9132-286b98dc837c.png)|
|:-|

[IPアドレス]に、先ほど作成したVPNGatewayのオンプレ側のパブリックIPを入力。(実際は、オンプレミス側のIP)
[アドレス空間]には、オンプレミス側のアドレス空間範囲を入れます。

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626338/2b2fc6a4-80bc-c10e-c36d-23a66a5e22c1.png)|
|:-|

共有キーを適当に指定し、「OK」。※本番はちゃんと設定してください

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626338/9d2980a2-65ec-a7e0-718a-9021176bb88a.png)|
|:-|

これで、VPNGatewayの接続設定とローカルネットワークゲートウェイの作成ができました。
これも同じように、オンプレミス側のVPNGatewayでも同じことをやっておきます。

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626338/7576f7f0-de18-ed5d-8f59-81674273998d.png)|
|:-|

しばらく待つと、状態が[接続済み]になります。

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626338/20e33401-bef4-15f1-7f6d-8df8ebb43cba.png)|
|:-|

主題からずれるので割愛しますが、それぞれのサブネットにVM1,VM2を作成しておきます。
これで環境構築完了です。簡単でしょ？

## 4.テスト

これでそれぞれのVMからローカルIPで通信が可能になるはずです。
早速動作確認をしましょう！

Azure側:VM1のローカルIP情報:10.0.0.4
オンプレミス側:VM2のローカルIP情報:172.16.0.4

VM1に接続し、VM2に対してPingしてみましょう。

```
vm1@VM1:~$ ping 172.16.0.4
PING 172.16.0.4 (172.16.0.4) 56(84) bytes of data.
64 bytes from 172.16.0.4: icmp_seq=1 ttl=64 time=11.1 ms
64 bytes from 172.16.0.4: icmp_seq=2 ttl=64 time=12.4 ms
64 bytes from 172.16.0.4: icmp_seq=3 ttl=64 time=8.97 ms
64 bytes from 172.16.0.4: icmp_seq=4 ttl=64 time=13.8 ms
64 bytes from 172.16.0.4: icmp_seq=5 ttl=64 time=9.66 ms
```
疎通が取れました！一応VM2からも確認します。

```
vm2@VM2:~$ ping 10.0.0.4
PING 10.0.0.4 (10.0.0.4) 56(84) bytes of data.
64 bytes from 10.0.0.4: icmp_seq=1 ttl=64 time=12.7 ms
64 bytes from 10.0.0.4: icmp_seq=2 ttl=64 time=30.8 ms
64 bytes from 10.0.0.4: icmp_seq=3 ttl=64 time=12.8 ms
64 bytes from 10.0.0.4: icmp_seq=4 ttl=64 time=15.0 ms
64 bytes from 10.0.0.4: icmp_seq=5 ttl=64 time=19.5 ms
```

はい、この通り。
問題なく疎通できていることが確認できました。
オンプレミスとAzure側で特にネットワークを気にすることなく、通信することができます。
便利ですね。

# 5. おわりに
はい、今回はVPNGatewayについて、2回に分けて、設計要素、構築方法について書いてみました。
何かのご参考になれば幸いです。

# 参考
今回の内容は、MSLearnのサンプルをそのまま使わせていただきました。
コマンドだとよくわからなくなるので、ポータルでやってみました。

https://docs.microsoft.com/ja-jp/learn/modules/connect-on-premises-network-with-vpn-gateway/