VPNゲートウェイの作成 [ポイント対サイト(P2S)] ~ARM編~

ポイント対サイト(P2S)とは、クライアント端末から、直接 Azure上のVPNゲートウェイに対してVPN接続を行うサービスです。

下記構成の場合、すべての端末間で通信が可能 ※もちろん、PC同士も可
・VPNゲートウェイにて、BGPを有効にする事で[V2V][S2S]接続が可能
・VPNクライアントを実行すると”Route Add”にて、GW(+Peer)セグメントが追加される
・[V2V][S2S]セグメントは手動で”Route Add”が必要
・カスタムルート/フルトンネル/Always On VPN 構成が可能

下記の場合、オンプレ~PC間以外での通信が可能

【サポートOS】
Windows 7 (32bit/64bit)
Windows Server 2008 R2(64bit)
Windows 8.1 (32bit/64bit)
Windows Server 2012(64bit)
Windows Server 2012 R2(64bit)
Windows Server 2016(64bit)
Windows 10
Mac OS X (10.11以上)
Linux(StrongSwan)
iOS

【VPN Protocol】
・SSTP(Secure Socket Tunneling Protocol) [TCP443] ※Windows7以上のみ
・OpenVPN [TCP443]  ※RADIUS認証不可
・IKEv2(IPsecVPN) [UDP500/4500] ※Windows10/2016以上 / MacOS v10.11以上

【認証方式】
・証明書 [エンタープライズ証明書 / 自己証明書]
・RADIUS (+Active Directory)
・AzureAD認証(OpenVPNのみ)

【最大接続台数】
SSTP:VpnGw1 128 / VpnGw2 128 / VpnGw3 128
IKEv2/OpenVPN(Gen1):VpnGw1 250 / VpnGw2 500 / VpnGw3 1000
IKEv2/OpenVPN(G2):VpnGw2 500 / VpnGw3 1000 / VpnGw4 5000 / VpnGw5 10000
※両方同時に利用可能。VpnGw3の場合 128+1000


全体の流れ

Step1:仮想ネットワークの作成 ※省略します。
Step2:ルート証明書&クライアント証明書の作成
Step3:仮想ネットワーク ゲートウェイの作成

※今回は、自己証明書方式で実施


Step1:仮想ネットワークの作成

事前に下記環境を作成しておきます。
・リソースグループ
仮想ネットワーク ※[GatewaySubnet]を作成


Step2:ルート証明書&クライアント証明書の作成

※作業用端末で実施
※事前に「makecert.exe」を準備してください。

ルート証明書を作成
makecert.exe -sky exchange -r -n “CN=tushigami-RootCert” -pe -a sha256 -len 2048 -ss My

クライアント証明書を作成 ※クライアンの台数分発行します。
makecert.exe -n “CN=Client-Host001” -pe -sky exchange -m 96 -ss My -in “tushigami-RootCert” -is my -a sha256

証明書管理画面を表示
ファイル名を指定して実行:certmgr.msc

クライアント証明書のエクスポート

各VPNクライアント端末にクライアント証明書を配布するために、エクスポートします。certmgr からでもエクスポート可能ですが、証明書の数が多いと大変なので、コマンドにて実施します。

証明書一覧を表示
Get-ChildItem -path Cert:\CurrentUser\My

証明書のエクスポート ※英文字のみ
certutil -exportPFX -p “password” -user my “0F2E8F938411~” “c:\Client-Host001.pfx

クライアント証明書のインポート ※各VPNクライアント端末にて実施
certutil.exe -p “password” -user -importpfx “c:\Client-Host001.pfx
※インポート時にパスワードを聞かれるので、エクスポート時のpasswordを入力

ルート証明書のエクスポート

ルート証明書の情報を”P2Sゲートウェイ”に記載する必要があるため、エクスポートします。

エクスポートしたルート証明書の証明書データをコピー


Step3:仮想ネットワーク ゲートウェイの作成

[+リソースの作成]ー[検索:Virtual network gateway]ー[作成]を選択

名前:表示名
地域:デプロイするAzureのリージョン
ゲートウェイの種類:VPN(IPsec) / ExpressRoute(専用線)

VPNの種類:
ールートベース:IKEv2接続
ーポリシーベース:IKEv1接続 ※Basicのみ

SKU ※A/A構成の場合、BGPが必要
[Generation1]
ーBasic:100Mbps / S2S:10 / P2S:128:0 / 99.9% BGP未対応
ーVpnGw1/AZ:650Mbps / S2S:30 / P2S:250 / 99.95% / AZ:99.99%
ーVpnGw2/AZ:1GMbps / S2S:30 / P2S:500 / 99.95% / AZ:99.99%
ーVpnGw3/AZ:1.25Gbps / S2S:30 / P2S:1000 / 99.95% / AZ:99.99%
[Generation2]
ーVpnGw2/AZ:1.25GMbps / S2S:30 / P2S:500 / 99.95% / AZ:99.99%
ーVpnGw3/AZ:2.25Gbps / S2S:30 / P2S:1000 / 99.95% / AZ:99.99%
ーVpnGw4/AZ:5Gbps / S2S:100 / P2S:5000 / 99.95% / AZ:99.99%
ーVpnGw5/AZ:10Gbps / S2S:100 / P2S:10000 / 99.95% / AZ:99.99%

仮想ネットワーク:Azure側のネットワークを指定
※[GatewaySubnet]が含まれていない場合、ここで作成できます。
パブリックIPアドレス:Azure側のグローバルIP(動的のみ)
アクティブ/アクティブモードの有効化: ※作成後変更可能
BGP ASNの構成: ※作成後変更可能
自律システム番号(ASN):Private ASN [64512~65534]から指定。デフォルト[65515]
Azure予約済み[65515、65517、65518、65519、65520]

約30分ほどかかります。

作成した[仮想ネットワーク ゲートウェイ]を選択ー[ポイント対サイトの構成]

アドレスプール:※仮想ネットワークのアドレス空間と重複しないこと
トンネルの種類:
[OpenVPN(SSL) / SSTP(SSL) / IKEv2 / IKEv2とOpenVPN(SSL) / IKEv2とSSTP(SSL)]
認証の種類:[Azure証明書 / RADIUS認証]
ルート証明書:ルート証明書を登録
失効した証明書:失効させるクライアント証明書を登録

[VPNクライアントのダウンロード]を選択

VPNクライアントをインストール後ー[設定]ー[VPN]ー[接続]を選択

[接続]を選択

接続済みを確認!

接続完了!! アドレス プールで設定した、IPが付与されています。


おまけ:カスタムルートを追加する

$gw = Get-AzVirtualNetworkGateway -Name <name of gateway> -ResourceGroupName <name of resource group>

カスタムルートを追加する場合
Set-AzVirtualNetworkGateway -VirtualNetworkGateway $gw -CustomRoute x.x.x.x/xx , y.y.y.y/yy

強制トンネリングを追加する場合 ※0.0.0.0/0とは書かない
Set-AzVirtualNetworkGateway
-VirtualNetworkGateway $gw -CustomRoute 0.0.0.0/1 , 128.0.0.0/1

ルートを表示する場合
$gw
.CustomRoutes | Format-List

ルートを削除する場合
Set-AzVirtualNetworkGateway -VirtualNetworkGateway $gw -CustomRoute @0