【Azure】VPNGatewayをS2Sで構築テストする(1):設計の注意点など

# 1.はじめに
平素より大変お世話になっております。
暑くなって溶けそうな日々を過ごしている皆さま、お元気でしょうか。

今回は、VPNGatewayについてです。
Azureと気軽にプライベート接続ができるVPNGatewayは重宝されますね。
ここでは、VPNの諸要素には触れず、Azure独自である考慮事項や設計要素について整理していきます！

## Azure VPN Gatewayとは
VPN ゲートウェイは、パブリック インターネットを介して Azure 仮想ネットワークとオンプレミスの場所の間で暗号化されたトラフィックを送信するために利用します。
オンプレミスと接続した場合、オンプレミス側のデバイスとプライベート接続し、Azure側からオンプレミス側を呼び出したりすることが可能です。
オンプレミスとつなぐほかに、Azure上の他のVnetと接続することもできます。

# 2.設計のポイント

## 必要になるリソース
VPNGatewayを利用するためには、以下のようなリソースが必要になります。

- __仮想ネットワーク__
- __Gatewayサブネット__
 - 少なくとも /27 のアドレス マスクを用意します。__(将来の拡張性もよく考えること！)__
- __パブリックIPアドレス__
 - インターネットに接続するための、パブリックIPアドレスです。これがないと、外部から接続できません。
 - 動的IPでもよいです。削除して再生成しない限り、特定のIPとなります。
- __ローカルネットワークゲートウェイ__
 - オンプレミス ネットワークの構成 (VPN ゲートウェイの接続場所と対象) を定義するために作成する、ローカル ネットワーク ゲートウェイです。
 - サイトに Azure が参照できる名前を付け、接続を作成するオンプレミス VPN デバイスの IP アドレスを指定します。S2S接続をする場合、必ず必要です。
- __仮想ネットワークゲートウェイ__
 - 仮想ネットワークとオンプレミス データセンターまたは他の仮想ネットワークの間のトラフィックをルーティングするための仮想ネットワーク ゲートウェイです。

## 仮想ネットワークには Gatewayサブネットを 1 つだけ作成できる
仮想ネットワークには、__Gatewayサブネットを1つだけ作成できます。__
以下の図のように、2つのVPNGatewayは同じVNet上に設置することができません。

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626338/7ebea3d2-d61a-6ce8-9aa6-8f06dacd5a63.png)|
|:-|

この構成ならば可能です。

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626338/0c701e3f-6017-c1be-d58a-3345a5ce4d76.png)|
|:-|

また、ExpressRouteとは共存できますが、__必ずExpressRouteを先に作る必要があります。__


<details><summary>ExpressRouteってなんだ？って方向け:</summary>
超簡単に言えば、
__VPNGatewayがパブリックインターネットを通る暗号化通信__
__ExpressRouteは専用回線を通る暗号化通信__
です。ExpressRouteは専用回線なので、めちゃくちゃ高いです。

## P2Sの場合とS2Sの場合で利用できるプロトコルが異なる
P2S場合は、SSTP,OpenVPN,IPsec(IKE)
S2S場合は、IPsec(IKE)
が利用できます。
プロトコルによっては利用できない場合等があるので、注意が必要です。

## 利用できるポリシーの違い
VPNGatewayでは、2つのポリシーを選択できます。

### ①ポリシーベースのVPN
1つのIPSecトンネル上で、暗号化通信を行うIPアドレスを静的に指定します。
ポリシーベースはBasicでのみ可能で、最大1S2S接続が可能です。
まぁこの通り、あまり実用的ではないポリシーですね。

### ②ルートベースのVPN
接続するIPにより別のIPSecトンネルを利用するようになります。
ポリシーベースより柔軟性に優れており、例えば新しいサブネットを作成した場合などの変更による回複性に優れているため、オンプレミスとの接続にはこちらがお勧めです。
__以下の場合は、ルートベースのVPNを利用しましょう。__

- 仮想network間の接続が必要な場合
- ポイント対サイト接続の場合
- マルチサイト接続の場合
- ExpressRouteゲートウェイと共存させる場合

Basicプランでは、__最大10S2S接続__、それ以外のプランでは__最大30S2S接続__まで可能です。


## VPNGatewayのプランによる違い
VPNGatewayには複数のプランがあります。
主なポイントについては、以下の表に記載します。

第1世代

|世代|SKU|サイト対サイト/VNet 対 VNet トンネル|合計スループット ベンチマーク|Border Gateway Protocol (BGP) のサポート|ポリシーベース|ルートベース|
|:----|:----|:----|:----|:----|:----|:----|
|Generation1|Basic*|最大値: 10|100 Mbps|サポートなし|〇|〇|
|Generation1|VpnGw1/Az|最大値: 30|650 Mbps|サポートあり|×|〇|
|Generation1|VpnGw2/Az|最大値: 30|1 Gbps|サポートあり|×|〇|
|Generation1|VpnGw3/Az|最大値: 30|1.25 Gbps|サポートあり|×|〇|

第2世代

|世代|SKU|サイト対サイト/VNet 対 VNet トンネル|合計スループット ベンチマーク|Border Gateway Protocol (BGP) のサポート|ポリシーベース|ルートベース|
|:----|:----|:----|:----|:----|:----|:----|
|Generation2|VpnGw2/Az|最大値: 30|1.25 Gbps|サポートあり|×|〇|
|Generation2|VpnGw3/Az|最大値: 30|2.5 Gbps|サポートあり|×|〇|
|Generation2|VpnGw4/Az|最大値: 30|5 Gbps|サポートあり|×|〇|
|Generation2|VpnGw5/Az|最大値: 30|10 Gbps|サポートあり|×|〇|

※「AZ」がついているのは、ゾーン冗長化が行えるプラン

主な違いはスループットのベンチマークです。速度が必要なVPNの場合はより良いSKUを選択することを検討してください。

## VPNGatewayの冗長化

高可用性を維持するために、次の方式が利用できるようになっています。

### アクティブ/スタンバイ構成

VPNGatewayは、デフォルトでアクティブ/スタンバイ構成でデプロイされます。
この場合、メンテナンス等でVPNGatewayが利用できなくなると、スタンバイ側が自動的に起動し、接続を引継ぎます。
ただし、接続はフェイルオーバー中に切断されます。(計画メンテナンスでは数秒以内に復旧、計画外では90秒以内に復旧)



### アクティブ/アクティブ構成

BGPプロトコルを利用することにより、アクティブ/アクティブ構成も取ることができます。
この場合、常に2つのVPNGatewayが立っていることになるので、高可用性を維持できます。

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626338/0794bf35-4fcf-ea51-f2f0-d5630c7b3912.png)|
|:-|


# 3.終わりに
はい、ということで、今回はまずVPNGatewayを利用する上での注意すべき設計要素についてまとめました。
次回の記事では構築をやってみます！

https://qiita.com/hikaru_motomiya/items/a2e9e11b1a2246b8e30d

# 参考

https://docs.microsoft.com/ja-jp/azure/vpn-gateway/vpn-gateway-connect-multiple-policybased-rm-ps

https://docs.microsoft.com/ja-jp/azure/vpn-gateway/vpn-gateway-about-vpn-gateway-settings#gwsku