
皆さまこんにちは。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台の仮想マシン間の到達可能性検証を行います。
- 2台の仮想マシンを異なる仮想ネットワーク上にデプロイ
- Virtual Network Managerをデプロイ
- Virtual Network Verifierを作成
- 到達可能性分析意図を作成
- 到達可能性分析
- ネットワーク構成変更、到達可能性分析
- NSG設定変更、到達可能性分析
設定方法1: 2台の仮想マシンを異なる仮想ネットワーク上にデプロイ
仮想マシン間のトラフィックの到達可能性分析を行うため、事前に以下2つの仮想ネットワークを作成し、それぞれに仮想マシンを1台ずつデプロイします。
仮想ネットワーク (IPプレフィックス) | 仮想マシン |
TestVM01-vnet (10.10.0.0/16) | TestVM01 |
TestVM02-vnet (10.20.0.0/16) | TestVM02 |
設定方法2: Virtual Network Managerをデプロイ
Virtual Network Verifierを作成するためにVirtual Network Managerをデプロイします。
今回は後の検証で仮想ネットワーク間にメッシュトポロジを構成するため、有効な機能で「Connectivity」を選択してデプロイしています。
設定方法3: Virtual Network Verifierを作成
作成したVirtual Network Managerの [Verifier workspaces] > [作成] をクリックします。
検証ツールワークスペースの名前を入力し、[確認および作成] をクリックします。
入力した項目に誤りがないか確認し、[作成] をクリックして検証ツールワークスペースを作成します。
設定方法4: 到達可能性分析意図を作成
今回は設定方法1で作成したTestVM01からTestVM02に対しての、TCP:0~65535ポートのトラフィックを検証する到達可能性分析意図を作成します。
作成した検証ツールワークスペースの [到達可能性分析意図] > [作成] をクリックします。
到達可能性分析意図の名前と説明を入力し、プロトコルで [TCP] 選択します。
送信元の種類で [仮想マシン] を選択し、送信元の選択から送信元となる仮想マシンを選択すると、送信元IPアドレスに選択した仮想マシンのプライベートIPアドレスが自動入力されます。
宛先の種類で [仮想マシン] を選択し、宛先の選択から宛先となる仮想マシンを選択すると、宛先IPアドレスに選択した仮想マシンのプライベートIPアドレスが自動入力されます。
全ての項目を入力したら [作成] をクリックし、到達可能性分析意図を作成します。
作成した到達可能性分析意図が検証ツールワークスペースページで表示されることを確認します。
設定方法5: 到達可能性分析
作成した到達可能性分析意図にチェックを入れて [▷ 分析の開始] をクリックし、分析の名前と説明を入力して [分析の開始] をクリックします。
分析が終了したら、検証ツールワークスペースの到達可能性分析結果に分析名が表示されることを確認します。
分析名をクリックすると、分析に利用された到達可能性分析意図の詳細、視覚化された結果、JSON出力を確認することができます。
視覚化された結果ではトラフィックがどのリソースでブロックされているのかを直感的に確認でき、JSON出力ではどのようなネットワークセキュリティルールによってトラフィックがブロックされたかを確認することができます。
Azureでは異なる仮想ネットワーク内のリソース同士のプライベートIPアドレスでの通信は既定でブロックされます。
今回の場合、送信元の仮想マシン(TestVM01)と宛先の仮想マシン(TestVM02)を異なる仮想ネットワークにデプロイしており、ピアリングなどのプライベートIPアドレスで通信可能になる設定をしていないためブロックされます。
設定方法6: ネットワーク構成変更、到達可能性分析
ここからは送信元の仮想マシンがデプロイされている仮想ネットワーク(TestVM01-vnet)と宛先の仮想マシンがデプロイされている仮想ネットワーク(TestVM02-vnet)がメッシュトポロジで構成されるようにVirtual Network Managerから設定を行い、再度TCP:0~65535ポートのトラフィックを検証する到達可能性分析を実施します。
設定方法2でデプロイしたVirtual Network Managerの [ネットワークグループ] > [+ 作成] をクリックし、ネットワークグループの名前を入力し、メンバーの種類で [仮想ネットワーク] を選択して [作成] をクリックします。
作成されたネットワークグループの名前をクリックします。
ネットワークグループの [グループメンバー] > [+ 追加] > [手動でメンバーを追加] をクリックします。
設定方法1で作成した2つの仮想ネットワークにチェックを入れ、[追加] をクリックします。
ネットワークグループのグループメンバーに仮想ネットワークが追加されたことを確認します。
Virtual Network Managerの [構成] > [+ 作成] > [接続構成] をクリックします。
接続構成の名前と説明を入力して [次へ: トポロジ] をクリックします。
トポロジで [メッシュ] を選択し、ネットワークグループの [+ 追加] > [ネットワークグループの追加] をクリックします。
ネットワークグループの追加画面で先ほど作成したネットワークグループにチェックを入れ、[追加] をクリックします。
選択したネットワークグループが追加されたことを確認し、[次へ: 視覚化] をクリックします。
ネットワークグループに追加されている仮想ネットワークが正しいことを確認し、[次へ: 確認して作成] をクリックします。
入力値に誤りがないことを確認し、[作成] をクリックします。
作成された接続構成の名前をクリックします。
接続構成の概要で [デプロイ] をクリックします。
接続構成で先ほど作成した接続構成名を選択し、[次へ] をクリックします。
既存の構成と目標とする構成を比較し、変更項目に誤りがないことを確認して [デプロイ] をクリックします。
デプロイが完了したらVirtual Network Managerのデプロイに表示されることを確認します。
ここまでの設定で2つの仮想ネットワーク間でメッシュトポロジを構成できたので、設定方法5と同様にTestVM01からTestVM02に対してのTCP:0~65535ポートのトラフィックを検証する到達可能性分析を実施します。
設定方法4で作成した到達可能性分析意図にチェックを入れて [▷ 分析の開始] をクリックし、分析の名前と説明を入力して [分析の開始] をクリックします。
分析が終了したら、検証ツールワークスペースの到達可能性分析結果に分析名が表示されることを確認します。
分析名をクリックすると、分析に利用された到達可能性分析意図の詳細、視覚化された結果、JSON出力を確認することができます。
Virtual Network Managerで2つの仮想ネットワーク間にメッシュトポロジを構成し、プライベートIPアドレスで通信可能な環境に変更したため、TestVM1からTestVM2へのトラフィックは全て到達しているという分析結果になりました。
設定方法7: NSG設定変更、到達可能性分析
次にネットワークセキュリティグループ(NSG)のセキュリティ規則を変更して特定のTCPポートをブロックし、Virtual Network Verifierで到達可能性分析ができるかを確認します。
今回は宛先の仮想マシン(TestVM02)のNICにアタッチされたNSGの受信セキュリティ規則でTCP:443を受信拒否する設定を行い、到達可能性分析を実施します。
TestVM02のNICにアタッチされたNSGの受信セキュリティ規則の追加画面で、ソースと宛先に [Any] 、サービスに [HTTPS] 、アクションに [拒否] を選択して [追加] をクリックします。
追加した受信セキュリティ規則が受信ポートルール一覧に表示されていることを確認します。
設定方法4で作成した到達可能性分析意図にチェックを入れて [▷ 分析の開始] をクリックし、分析の名前と説明を入力して [分析の開始] をクリックします。
分析が終了したら分析名をクリックし、分析に利用された到達可能性分析意図の詳細、視覚化された結果、JSON出力を確認します。
宛先の仮想マシン(TestVM02)のNSGでTCP:443の受信拒否規則を追加したため、TestVM1からTestVM2へのトラフィックは一部のみ到達しているという分析結果になりました。
JSONを確認すると、先ほどTestVM02のNSGに追加した「DenyAnyHTTPSInbound」という受信セキュリティ規則により、TCP:443がブロックされていることが分かります。
まとめ
今回は、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のエキスパートエンジニアを目指し、日々邁進中。