以前 S2S VPN の基礎概念について、こちらの記事でご紹介しました。
今回は S2S VPN を Azure の環境のみで試してみることにします。
Azure で作成することで、S2S VPN の仕組みをより一層深く理解できることを期待できると思います。
構成
基本オンプレミスと Azure 接続する場合、右側の環境のリソースがあれば十分です。
その場合、ローカル ネットワーク ゲートウェイにオンプレミスの VPN デバイスの情報を設定する必要があります。
今回クラウドで再現するので、クロスでお互いの情報をローカル ネットワーク ゲートウェイに設定して、接続させる手法を取ります。
※ Azure VPN は、VNET2VNET の種類があるので、Azure 仮想ネットワーク間の VPN は基本そちらが使えますが、今回は S2S VPN の学習という意味で、この構成にしています。
準備
利用可能な Azure サブスクリプション:
- 権限も持っていること
仮想ネットワークの作成:
- local-network
- Japan East
- 10.111.0.0/16
- azure-hub-vnet
- North Central US
- 10.112.0.0/16
仮想ネットワーク ゲートウェイの作成
- Azure portal にて、「ゲートウェイ」で検索し、表示されている「仮想ネットワーク ゲートウェイ」を選択します。
- 「+作成」をクリックし、仮想ネットワーク ゲートウェイを作成します。
疑似オンプレミス側設定値:
- 名前:local-network-gw
- 地域:Japan East
- ゲートウェイの種類:VPN
- VPN の種類:ルート ベース
- SKU:VpnGw2
- 世代:Gen 2
- 仮想ネットワーク:local-network
- ゲートウェイ サブネットのアドレス範囲:10.111.1.0/24
- ※ /27 以下(/26 とかでもいい) のサブネット レンジを指定
- パブリック IP アドレス:新規作成
- アクティブ/アクティブ モードの有効化:無効
- BGP の構成:有効
- 自律システム番号 (ASN):65010
ASN について
2 つのネットワーク ゲートウェイの間で BGP が有効な接続では、それぞれの ASN が異なっている必要があります。また、次の ASN は Azure で予約済みです: 8075、8076、12076 (パブリック)、65515、65517、65518、65519、65520 (プライベート)。Azure VPN ゲートウェイに接続する場合、オンプレミスの VPN デバイスにこれらの ASN を指定することはできません。仮想ネットワーク ゲートウェイから Azure Virtual WAN VPN への IPsec 接続を設定する際、ローカル ネットワーク ゲートウェイの ASN は 65515 にする必要があります。
※ 要するに Azure 側の GW と 疑似オンプレミス側の GW は違う値を使うのと、予約済みの番号を避けましょう。
Azure 側設定値:
- 名前:azure-hub-vnet-gw
- 地域:North Central US
- ゲートウェイの種類:VPN
- VPN の種類:ルート ベース
- SKU:VpnGw2
- 世代:Gen 2
- 仮想ネットワーク:azure-hub-vnet
- ゲートウェイ サブネットのアドレス範囲:10.112.1.0/24
- ※ /27 以下 (/27 とか、/26 とか) のサブネット レンジを指定
- パブリック IP アドレス:新規作成
- アクティブ/アクティブ モードの有効化:無効
- BGP の構成:有効
- 自律システム番号 (ASN):65020
「ローカル ネットワーク ゲートウェイ」と「接続」の作成
ローカル ネットワーク ゲートウェイは、オンプレミス ネットワークの構成 (VPN ゲートウェイの接続場所と対象) を定義するためのリソース (実はルーティングテーブルです)。
※ 仮想ネットワーク ゲートウェイ はどこに、どういった情報で VPN デバイスに接続するかを分からせるためのもの。
なので、以下の内容をベースに設定することになります。
- Azure 側のローカル ネットワーク ゲートウェイには、疑似オンプレミス側の仮想ネットワーク ゲートウェイの情報を設定
- 疑似オンプレミス側のローカル ネットワーク ゲートウェイには、Azure 側の仮想ネットワーク ゲートウェイの情報を設定
設定値:
「接続」について、少し煩わしいところがあるので、少し補足します。
上記図のように、仮想ネットワーク ゲートウェイは自分の側のローカル ネットワーク ゲートウェイに「接続」します。この「接続」は物理的な意味ではなく、あくまでローカル ネットワーク ゲートウェイに登録している情報を仮想ネットワーク ゲートウェイに関連付けするためのものになります。
確認
作成後、VPN 両側の VM が通信できることが確認できます。
通信できるまで、10分ほどかかる場合があります。
オンプレミス側のネットワークの BGP 広告の設定(強制トンネリング)
- Azure CloudShell を起動し、Powershell を指定します。
- 以下のコマンドを実行し、疑似オンプレミス側をデフォルトサイトに設定します。
$LocalGateway = Get-AzLocalNetworkGateway -Name "local-info-lng" -ResourceGroupName "<RGname>"
$VirtualGateway = Get-AzVirtualNetworkGateway -Name "azure-hub-vnet-gw" -ResourceGroupName "<RGname>"
Set-AzVirtualNetworkGatewayDefaultSite -GatewayDefaultSite $LocalGateway -VirtualNetworkGateway $VirtualGateway
仮想ネットワーク ゲートウェイに既定のサイトを割り当てます。 -GatewayDefaultSite は、強制ルーティング構成を動作させるコマンドレット パラメーターです。適切な設定になるように、慎重に構成してください。
BGP 伝達の確認
ここまで、一旦強制トンネリングの設定が完了し、BGP で伝達して来たルートを見てみましょう。
- azure-hub-vnet 仮想ネットワークに仮想マシンを作成します。(サブネットがない場合、作成します)
- 作成した仮想マシン > ネットワーク > 仮想マシンの Nic を選択します。
- ネットワーク インターフェース(Nic) の画面にて、「有効なルート」項目で、以下の情報が確認できます。
※ 0.0.0.0/0 が仮想ネットワーク ゲートウェイに向けています。
追記
この構成では、azure-hub-vnet 仮想ネットワークの 0.0.0.0/0 は仮想ネットワーク ゲートウェイに向けるようになりましたが、その先はどのルートでインターネットへ出るのかは定義していませんので、現時点 azure-hub-vnet 仮想ネットワークからはインターネットへアクセスできません。
この構成はあくまで S2S VPN を理解するためのものとして作成したもので、実際オンプレミスと接続する場合、オンプレミスの 0.0.0.0/0 ルートが伝達してくるはずです。
参考
- https://learn.microsoft.com/ja-jp/azure/vpn-gateway/vpn-gateway-forced-tunneling-rm
- https://learn.microsoft.com/ja-jp/azure/vpn-gateway/tutorial-site-to-site-portal#LocalNetworkGateway
- https://learn.microsoft.com/ja-jp/azure/vpn-gateway/tutorial-site-to-site-portal#CreateConnection
- https://learn.microsoft.com/ja-jp/azure/vpn-gateway/tutorial-site-to-site-portal
- https://learn.microsoft.com/ja-jp/azure/virtual-network/diagnose-network-routing-problem
コメント