SB C&Sの最新技術情報 発信サイト

C&S ENGINEER VOICE

SB C&S

Virtual Network Verifierを利用したVM間の到達可能性分析

パブリッククラウド
2025.03.31

皆さまこんにちは。SB C&Sの井上です。

今回は、Azure Virtual Network Managerの中の機能である「Virtual Network Verifier」を利用してAzure VM間のトラフィックの到達可能性分析を行う方法についてご紹介します。


概要

Azureではサブスクリプション全体でグローバルに仮想ネットワークをグループ化、構成、デプロイ、管理などを行うことのできるAzure Virtual Network Managerというサービスが提供されており、このサービスにより仮想ネットワークを論理的に分割し、必要なネットワーク接続構成とセキュリティポリシーを一括で適用することができます。

このVirtual Network Managerの中の機能として提供されている「Virtual Network Verifier」では、Azureネットワークリソース間のトラフィックが許可されているか否かを簡単に確認することができます。
これにより、Azureリソース間で予期しないトラフィックの許可/不許可が発生した際のトラブルシューティングが容易になり、セキュリティコンプライアンス要件への準拠の確認なども可能になります。

Virtual Network Verifierは2025年3月現在、米国やヨーロッパ、オーストラリアなどの一部リージョンでGAされていますが、東日本/西日本リージョンではまだGAされていないため、ご利用の際にはご注意ください。
また、Virtual Network Verifierの到達可能性分析でサポートされている機能制限事項などもご利用前にご確認いただくことをおすすめします。


設定方法

今回は異なる仮想ネットワーク上に2台の仮想マシンをデプロイし、Virtual Network ManagerやNSGでネットワークの設定を変更しつつ、Virtual Network Verifierで2台の仮想マシン間の到達可能性検証を行います。

  1. 2台の仮想マシンを異なる仮想ネットワーク上にデプロイ
  2. Virtual Network Managerをデプロイ
  3. Virtual Network Verifierを作成
  4. 到達可能性分析意図を作成
  5. 到達可能性分析
  6. ネットワーク構成変更、到達可能性分析
  7. NSG設定変更、到達可能性分析

設定方法1: 2台の仮想マシンを異なる仮想ネットワーク上にデプロイ

仮想マシン間のトラフィックの到達可能性分析を行うため、事前に以下2つの仮想ネットワークを作成し、それぞれに仮想マシンを1台ずつデプロイします。

仮想ネットワーク (IPプレフィックス) 仮想マシン
TestVM01-vnet (10.10.0.0/16) TestVM01
TestVM02-vnet (10.20.0.0/16) TestVM02

画像1.png

画像2.png


設定方法2: Virtual Network Managerをデプロイ

Virtual Network Verifierを作成するためにVirtual Network Managerをデプロイします。
今回は後の検証で仮想ネットワーク間にメッシュトポロジを構成するため、有効な機能で「Connectivity」を選択してデプロイしています。
画像3.png


設定方法3: Virtual Network Verifierを作成

作成したVirtual Network Managerの [Verifier workspaces] > [作成] をクリックします。
画像4.png

検証ツールワークスペースの名前を入力し、[確認および作成] をクリックします。
画像5.png

入力した項目に誤りがないか確認し、[作成] をクリックして検証ツールワークスペースを作成します。
画像6.png


設定方法4: 到達可能性分析意図を作成

今回は設定方法1で作成したTestVM01からTestVM02に対しての、TCP:0~65535ポートのトラフィックを検証する到達可能性分析意図を作成します。

作成した検証ツールワークスペースの [到達可能性分析意図] > [作成] をクリックします。
画像7.png

到達可能性分析意図の名前と説明を入力し、プロトコルで [TCP] 選択します。
画像8.png

送信元の種類で [仮想マシン] を選択し、送信元の選択から送信元となる仮想マシンを選択すると、送信元IPアドレスに選択した仮想マシンのプライベートIPアドレスが自動入力されます。
画像9.png

宛先の種類で [仮想マシン] を選択し、宛先の選択から宛先となる仮想マシンを選択すると、宛先IPアドレスに選択した仮想マシンのプライベートIPアドレスが自動入力されます。
全ての項目を入力したら [作成] をクリックし、到達可能性分析意図を作成します。
画像10.png

作成した到達可能性分析意図が検証ツールワークスペースページで表示されることを確認します。
画像11.png


設定方法5: 到達可能性分析

作成した到達可能性分析意図にチェックを入れて [▷ 分析の開始] をクリックし、分析の名前と説明を入力して [分析の開始] をクリックします。
画像12.png

分析が終了したら、検証ツールワークスペースの到達可能性分析結果に分析名が表示されることを確認します。
画像13.png

分析名をクリックすると、分析に利用された到達可能性分析意図の詳細、視覚化された結果、JSON出力を確認することができます。
視覚化された結果ではトラフィックがどのリソースでブロックされているのかを直感的に確認でき、JSON出力ではどのようなネットワークセキュリティルールによってトラフィックがブロックされたかを確認することができます。
画像14.png

画像15.png

画像16.png

Azureでは異なる仮想ネットワーク内のリソース同士のプライベートIPアドレスでの通信は既定でブロックされます。
今回の場合、送信元の仮想マシン(TestVM01)と宛先の仮想マシン(TestVM02)を異なる仮想ネットワークにデプロイしており、ピアリングなどのプライベートIPアドレスで通信可能になる設定をしていないためブロックされます。


設定方法6: ネットワーク構成変更、到達可能性分析

ここからは送信元の仮想マシンがデプロイされている仮想ネットワーク(TestVM01-vnet)と宛先の仮想マシンがデプロイされている仮想ネットワーク(TestVM02-vnet)がメッシュトポロジで構成されるようにVirtual Network Managerから設定を行い、再度TCP:0~65535ポートのトラフィックを検証する到達可能性分析を実施します。

設定方法2でデプロイしたVirtual Network Managerの [ネットワークグループ] > [+ 作成] をクリックし、ネットワークグループの名前を入力し、メンバーの種類で [仮想ネットワーク] を選択して [作成] をクリックします。
画像18.png

作成されたネットワークグループの名前をクリックします。
画像19.png

ネットワークグループの [グループメンバー] > [+ 追加] > [手動でメンバーを追加] をクリックします。
画像20.png

設定方法1で作成した2つの仮想ネットワークにチェックを入れ、[追加] をクリックします。
画像21.png

ネットワークグループのグループメンバーに仮想ネットワークが追加されたことを確認します。
画像22.png

Virtual Network Managerの [構成] > [+ 作成] > [接続構成] をクリックします。
画像23.png

接続構成の名前と説明を入力して [次へ: トポロジ] をクリックします。
画像24.png

トポロジで [メッシュ] を選択し、ネットワークグループの [+ 追加] > [ネットワークグループの追加] をクリックします。
ネットワークグループの追加画面で先ほど作成したネットワークグループにチェックを入れ、[追加] をクリックします。
画像25.png

選択したネットワークグループが追加されたことを確認し、[次へ: 視覚化] をクリックします。
画像26.png

ネットワークグループに追加されている仮想ネットワークが正しいことを確認し、[次へ: 確認して作成] をクリックします。
画像27.png

入力値に誤りがないことを確認し、[作成] をクリックします。
画像28.png

作成された接続構成の名前をクリックします。
画像29.png

接続構成の概要で [デプロイ] をクリックします。
画像30.png

接続構成で先ほど作成した接続構成名を選択し、[次へ] をクリックします。
画像31.png

既存の構成と目標とする構成を比較し、変更項目に誤りがないことを確認して [デプロイ] をクリックします。
画像32.png

デプロイが完了したらVirtual Network Managerのデプロイに表示されることを確認します。
画像33.png

ここまでの設定で2つの仮想ネットワーク間でメッシュトポロジを構成できたので、設定方法5と同様にTestVM01からTestVM02に対してのTCP:0~65535ポートのトラフィックを検証する到達可能性分析を実施します。

設定方法4で作成した到達可能性分析意図にチェックを入れて [▷ 分析の開始] をクリックし、分析の名前と説明を入力して [分析の開始] をクリックします。
画像34.png

分析が終了したら、検証ツールワークスペースの到達可能性分析結果に分析名が表示されることを確認します。
画像35.png

分析名をクリックすると、分析に利用された到達可能性分析意図の詳細、視覚化された結果、JSON出力を確認することができます。
Virtual Network Managerで2つの仮想ネットワーク間にメッシュトポロジを構成し、プライベートIPアドレスで通信可能な環境に変更したため、TestVM1からTestVM2へのトラフィックは全て到達しているという分析結果になりました。
画像36.png

画像37.png

画像38.png


設定方法7: NSG設定変更、到達可能性分析

次にネットワークセキュリティグループ(NSG)のセキュリティ規則を変更して特定のTCPポートをブロックし、Virtual Network Verifierで到達可能性分析ができるかを確認します。
今回は宛先の仮想マシン(TestVM02)のNICにアタッチされたNSGの受信セキュリティ規則でTCP:443を受信拒否する設定を行い、到達可能性分析を実施します。

TestVM02のNICにアタッチされたNSGの受信セキュリティ規則の追加画面で、ソースと宛先に [Any] 、サービスに [HTTPS] 、アクションに [拒否] を選択して [追加] をクリックします。
画像39.png

追加した受信セキュリティ規則が受信ポートルール一覧に表示されていることを確認します。
画像40.png

設定方法4で作成した到達可能性分析意図にチェックを入れて [▷ 分析の開始] をクリックし、分析の名前と説明を入力して [分析の開始] をクリックします。
画像41.png

分析が終了したら分析名をクリックし、分析に利用された到達可能性分析意図の詳細、視覚化された結果、JSON出力を確認します。
宛先の仮想マシン(TestVM02)のNSGでTCP:443の受信拒否規則を追加したため、TestVM1からTestVM2へのトラフィックは一部のみ到達しているという分析結果になりました。
JSONを確認すると、先ほどTestVM02のNSGに追加した「DenyAnyHTTPSInbound」という受信セキュリティ規則により、TCP:443がブロックされていることが分かります。
画像42.png

画像43.png

画像44.png

画像45.png


まとめ

今回は、Azure Virtual Network Managerの中の機能である「Virtual Network Verifier」を利用してAzure VM間のトラフィックの到達可能性分析を行う方法についてご紹介しました。

Virtual Network VerifierではAzureネットワークリソース間のトラフィックが許可されているか否かを簡単に確認することができるため、Azureリソース間で予期しないトラフィックの許可/不許可が発生した際のトラブルシューティングが容易になり、セキュリティコンプライアンス要件への準拠の確認なども可能になります。

Virtual Network Verifierは現在はまだ一部の限られたリージョンでしかGAされていない機能ですが、ご興味のある方はぜひ一度お試しください。

最後までお読みいただきありがとうございました!

Azureに関するブログ記事一覧はこちら

著者紹介

SB C&S株式会社
ICT事業本部 技術本部 第1技術部 4課
井上 雄貴

新卒でSB C&S株式会社に入社後、Azureのプリセールスエンジニアとして案件支援、新規サービスの技術検証などに従事。
JDLA Deep Learning for ENGINEER 2019 #1を保有。
クラウド、AIのエキスパートエンジニアを目指し、日々邁進中。