VPN Gateway
The presented resiliency recommendations in this guidance include VPN Gateway and associated VPN Gateway settings.
Summary of Recommendations
The below table shows the list of resiliency recommendations for VPN Gateway and associated resources.
Recommendation | Category | Impact | State | ARG Query Available |
---|---|---|---|---|
VPNG-1 - Choose a Zone-redundant gateway | Availability | High | Preview | Yes |
VPNG-2 - Plan for Active-Active mode | Availability | High | Preview | Yes |
VPNG-4 - Deploy active-active VPN concentrators on your premises for maximum resiliency | Availability | High | Preview | No |
VPNG-5 - Monitor connections and gateway health | Monitoring | Medium | Preview | No |
VPNG-6 - Enable service health | Monitoring | Medium | Preview | No |
VPNG-7 - Deploy zone-redundant VPN Gateways with zone-redundant Public IP(s) | Availability | Medium | Preview | Yes |
Recommendations Details
VPNG-1 - ゾーン冗長ゲートウェイを選択します
Category: Availability
Impact: High
Guidance
Azure VPN ゲートウェイは、1 つの可用性ゾーンにデプロイする場合と、2 つの可用性ゾーンにデプロイする場合で、異なる SLA を提供します。可用性ゾーン間で仮想ネットワーク ゲートウェイを自動的にデプロイするには、ゾーン冗長仮想ネットワーク ゲートウェイを使用できます。ゾーン冗長ゲートウェイを使用すると、ゾーン回復性を利用して、Azure 上のミッション クリティカルでスケーラブルなサービスにアクセスできます。
Resources
- Zone redundant Virtual network gateway in availability zone
- Gateway SKU
- SLA summary for Azure services.
Resource Graph Query
// Azure Resource Graph Query
// For all VNGs of type Vpn, show any that do not have AZ in the SKU tier
resources
| where type =~ "Microsoft.Network/virtualNetworkGateways"
| where properties.gatewayType == "Vpn"
| where properties.sku.tier !contains 'AZ'
| project recommendationId = "vpng-1", name, id, tags, param1= strcat("sku-tier: " , properties.sku.tier), param2=location
| order by id asc
VPNG-2 - アクティブ/アクティブモードを計画します
Category: Availability
Impact: High
Guidance
アクティブ/アクティブ モードは、Basic を除くすべての SKU で使用できます。 アクティブ/アクティブ ゲートウェイには、2 つのゲートウェイ IP 構成と 2 つのパブリック IP アドレスがあります。
Resources
Resource Graph Query
resources
| where type =~ 'Microsoft.Network/virtualNetworkGateways'
| where properties.gatewayType =~ "vpn"
| extend gatewayType = properties.gatewayType, vpnType = properties.vpnType, connections = properties.connections, activeactive=properties.activeActive
| where activeactive == false
| project recommendationId = "vpng-2", name, id, tags
VPNG-4 - 耐障害性を最大化するためアクティブ/アクティブ VPN コンセントレータをオンプレミスにデプロイします
Category: Availability
Impact: High
Guidance
アクティブ/アクティブ VPN コンセントレーターをアクティブ/アクティブ Azure VPN Gateway と共にオンプレミスにデプロイすることで、4 つの IPSec トンネルに基づくフルメッシュ トポロジを使用して、回復性と可用性を最大化できます。
Resources
Resource Graph Query
// under-development
VPNG-5 - 接続とゲートウェイの正常性を監視します
Category: Monitoring
Impact: Medium
Guidance
使用可能なさまざまなメトリックに基づいて、Virtual Network ゲートウェイの正常性の監視とアラートを設定します。
Resources
Resource Graph Query
// under-development
VPNG-6 - サービス正常性を有効にします
Category: Monitoring
Impact: Medium
Guidance
VPN Gateway は、サービス正常性を使用して、計画メンテナンスと計画外のメンテナンスについて通知します。サービス正常性を構成すると、VPN 接続に加えられた変更について通知されます。
Resources
Resource Graph Query
// under-development
VPNG-7 - ゾーン冗長パブリック IP を使用してゾーン冗長 VPN Gateway をデプロイします
Category: Availability
Impact: High
Guidance
VPN Gateway にゾーン冗長 SKU (VpnGw*AZ) を使用する場合は、ゲートウェイをゾーン冗長 Standard SKU パブリック IP アドレスに関連付けてください。VPN ゲートウェイがゾーンの Standard SKU パブリック IP アドレスに関連付けられている場合、すべてのゲートウェイ インスタンスは IP アドレスと同じゾーンにデプロイされます。この推奨事項は、アクティブ/パッシブ ゲートウェイ (1 つのパブリック IP アドレスを使用) とアクティブ/アクティブ VPN ゲートウェイ (2 つのパブリック IP アドレスを使用) の両方に適用されます。
Resources
Resource Graph Query
// Azure Resource Graph Query
// Provides a list of zone-redundant Azure VPN gateways associated with non-zone-redundant Public IPs
resources
| where type =~ "Microsoft.Network/virtualNetworkGateways"
| where properties.gatewayType == "Vpn"
| where properties.sku.tier contains 'AZ'
| mv-expand ipconfig = properties.ipConfigurations
| extend pipId = tostring(ipconfig.properties.publicIPAddress.id)
| join kind=inner (
resources
| where type == "microsoft.network/publicipaddresses"
| where isnull(zones) or array_length(zones) < 3 )
on $left.pipId == $right.id
| project recommendationId = "vpng-7", name, id, tags, param1 = strcat("PublicIpAddressName: ", name1), param2 = strcat ("PublicIpAddressId: ",id1), param3 = strcat ("PublicIpAddressTags: ",tags1)