サービスタグ「VirtualNetwork」とは
サービスタグ「VirtualNetwork」はNetwork Security Group(以下、NSG)で使えるサービスタグです。
NSGを作成した際に自動生成されるデフォルトルールにも含まれているので、NSGを使うと必ず使うことになります。
「VirtualNetwork」という名前からは仮想ネットワークのアドレス範囲のみを含むように想像できますが、実際にはより広範囲のアドレス範囲を含みます。
正しく仕組みを理解していないと、想定していないところからの通信が許可されたり、逆にブロックされたりということが起こります。
サービスタグ「VirtualNetwork」が表す範囲
Microsoft公式ドキュメントに定義が記載されています。
仮想ネットワーク サービス タグ
仮想ネットワーク アドレス空間 (仮想ネットワークに対して定義されているすべての IP アドレスの範囲)、すべての接続されたオンプレミスのアドレス空間、ピアリングされた仮想ネットワーク、仮想ネットワーク ゲートウェイに接続された仮想ネットワーク、ホストの仮想 IP アドレス、およびユーザーが定義したルートで使用されるアドレス プレフィックス。 このタグには、既定のルートも含まれる場合もあります
ひとつひとつ見ていきましょう。
仮想ネットワーク アドレス空間 (仮想ネットワークに対して定義されているすべての IP アドレスの範囲)
これはまさに名前通りです。
すべての接続されたオンプレミスのアドレス空間、ピアリングされた仮想ネットワーク、仮想ネットワーク ゲートウェイに接続された仮想ネットワーク
VPNやExpressRoute、ピアリングで接続された先のネットワークも範囲に含む、ということですね。プライベートな扱いのネットワークはVirtualNetworkに含む、と解釈すれば納得できます。
ホストの仮想 IP アドレス
AzureデフォルトのDNSサーバやDHCPサーバ等で使われる 168.63.129.16 のことを指すようです。
ユーザーが定義したルートで使用されるアドレス プレフィックス
一番のハマリポイントです。ユーザ定義ルートで指定した宛先がなんとVirtualNetworkサービスタグに含まれてしまいます。ユーザ定義ルートでパブリックIPアドレスを宛先として指定しているとその宛先も含まれてるということです。これを知っていないとユーザ定義ルートで定義したものがうまく通信できない、といったトラブルにはまります。
サービスタグ「VirtualNetwork」の具体的な値の確認方法
NSGが適用されているサブネット内に起動状態の仮想マシンが存在する必要がありますが、以下の方法で「VirtualNetwork」の具体的なアドレス範囲を確認できます。
-
確認したいNSGの管理画面を開く
-
[有効なセキュリティルール]をクリック
-
NSGのルールが展開されるので、サービスタグ「VirtualNetwork」を含む行をクリック
余談ですが、この方法を使えばサービスタグ「Internet」の具体的なアドレスレンジを確認することができます。