本記事について
先日Azure LocalのSDN機能に新しい仕組みとしてSDN enabled by Azure Arcがプレビューでリリースされました。
MS Tech Community | Announcing the preview of Software Defined Networking (SDN) enabled by Azure Arc on Azure Local
これまでのSDN機能はWindows Admin CenterやPowerShellで管理し、Azure Local上にSDN管理用のVMをデプロイすることで利用できていましたが、新しい仕組みではAzure Arcを利用してAzureポータルから利用できるとのことです。
簡単な仕組みでデプロイでき、リソースも多くを必要としなさそうということで、本記事ではこの機能を有効化して現在利用できるNSG機能を試してみたいと思います。
なお、試している情報はMicrosoftの公式ドキュメントにすべて記載があります。
MS Learn | SDN enabled by Azure Arc
(2025/7/22 追記)
Azure Arc Blogにも本プレビューの情報が掲載されていたためリンクを追記
MS Learn | Announcing the preview of Software Defined Networking (SDN) on Azure Local
SDN enabled by Azure Arcの機能概要
まずはドキュメントを確認して気になるポイントをチェックしてみます。
利用できる機能と制限
MS Learn | SDN enabled by Azure Arc 概要
前提や制限事項は以下の通り。
- 前提
- Azure Localの対応バージョン:24H2 (26100.xxx以降)
- 制限
- 2025/7現在パブリックプレビュー
- 現在利用可能な機能はNSGのみ
- NSG機能が利用できるのはAzure Local VM (Azureポータルで作成したVM)のみ ※AKSも非対応
- 従来のオンプレ管理のSDN機能との同居は不可
- 複数のNICを持つAzure Local VMはNG
- その他の注意事項
- 有効化時にVMのネットワーク接続断が発生
SDN機能提供の仕組み
MS Learn | About Network Controller architecture on Azure Local
こちらのドキュメントに概念図が載っていました。
SDN機能を提供するコンポーネントは管理用VMではなくなり、クラスターサービスとして動作するようになっています。
NC host agent (Netowrk Controller host Agent)と記載されているサービスが仮想スイッチのVFP (Virtual Filtering Platform)によりSDN機能を提供しているようです。
※VFPはパブリッククラウドのAzureのネットワークも支える重要な技術ですね。
NSG機能
MS Learn | Create Network Security Groups
NSGはAzureと同様に送信元・宛先IPとプロトコル・ポートを指定して通信許可・拒否をおこなうようです。
気になる特徴は以下の通りで、AzureのNSGと同じように利用できそうです。
- NSGを関連付けるのは論理ネットワークか仮想マシンのNIC
- プロトコルはTCP/UDP/ICMPが指定可
- 優先度は100-4096で指定し、若番から適用される
- デフォルトでは受信はAll Deny、送信はAll Allow
SDN enabled by Azure Arcを試してみた
ドキュメントで確認した機能を試してみます。
事前に論理ネットワークとAzure Local VMを1台用意しておきます。
SDNの有効化
SDNプレフィックスを決める
有効化にあたりSDNプレフィックスという文字列を決めておく必要があります。
ネットワークコントローラーで使われる文字列のようです。
以下に従って決めておきます。
- 8文字以下
- 英大文字・小文字・数字・ハイフンのみ
- ハイフンは連続不可、末尾不可
DNSサーバを準備する
上で決めた"SDNプレフィックス"-NCという名前がAzure Localのデプロイ時に指定した予約IPアドレスの5つ目のアドレスに名前解決できるようにDNSサーバを構成する必要があります。
ただし、ADでDNSを動作している場合は動的にDNS登録をしてくれるので、[動的更新]が有効であることを確認すればOKです。
今回はADでDNSを動作しているので[動的更新]が"セキュリティ保護のみ"に設定されており有効であることを確認しました。
有効化する
有効化はAzure LocalのノードでPowerShellコマンドによりおこないます。
以下のコマンドを実行します。
Add-EceFeature -Name NC -SDNPrefix "July-SDN"
実行したところ、10分程度で完了しました。
3つのActionが順に実行され、最初2つのアクションはすぐ完了していました。
クラスターグループやクラスターリソースを確認すると、ネットワークコントローラーのリソースが増えていました。
NSG機能しか使えないとのことですがリソースとしてはそれ以外の機能に関連しそうなものも実行されていました。
有効化前のノードのCPU使用率やメモリ使用率を確認し忘れてしまったので、上記クラスターリソースの関連プロセスを確認したところ以下の様子でした。
大量のメモリを消費しているようには見えません。
また、DNSサーバには"SDNプレフィックス"-NCのAレコードがAzure Local構築時の予約アドレスの5番目を指して追加されていました。
このFQDNに対してブラウザでアクセスすると404 Not Foundの応答がありました。
有効化中に証明書の作成がされていましたが、証明書の有効期限は2年間になっていました。
ちなみに有効化中にAzure Local上のVMにPingを実行し続けたところ、10分間で断続的に8回程度Pingが欠けましたが、連続して欠けることはなく大きな接続断は発生しませんでした。
※断続的に欠けたのも自分のネットワーク環境の問題かもしれません。
NSG機能
NSGを作成する
今回はAzureポータルから作成しました。
基本的には名前程度で特に設定するものはありません。
作成後の受信ルール、送信ルールは空のままです。
NSGを関連付けて動作を確認する
次に作成したNSGを論理ネットワークと仮想マシンのNICに関連付けて動作確認してみました。
ルールを追加していないデフォルトのNSGですので、この状態で関連付けをおこなうと受信がすべて拒否、送信はすべて許可となり、受信に影響が出ることが想定されます。
NSGを論理ネットワークに付けたり、NICに付けたり、両方に付けたりして挙動を確認したところ基本的には想定通りに動きましたが、2点ほど気になる挙動がありました。
おそらく一時的な問題かプレビュー中でまだ安定していないだけだと思うので、また時間を開けて確認しようと思います。
- 最初に論理ネットワークにのみ関連付けたときに受信の通信が拒否されなかった(時間をおいても挙動が変わらず付け外しを繰り返していたところ途中から機能し始めた)
- NSGを論理ネットワークとNICに関連付けた状態でNICの関連付けを解除したところ、論理ネットワークにはNSGが関連付いたままなものの、一時的に通信が通ってしまうタイミングがあった。(Ping1回)
NSGにルールを追加して受信を許可するルールや送信を拒否するルールを入れてNSGルールの挙動も確認してみます。
論理ネットワークにのみ関連付けた状態で以下を試してみました。
- 1.受信ルールに外部からのICMP許可を加える
- 2.送信ルールに全ての通信を拒否するルールを加える
-
受信ルールに外部からのICMP許可を加える
設定画面はこんな感じです。Azure仮想ネットワークで使うNSGと設定画面は変わりません。
送信元・宛先で指定できるのはAnyとアドレス(空間)のみでサービスタグなどは指定できません。
なお、ルール名は2~64文字の英数字とのことで"-"などの記号は使えませんでした。
以下のように特定のIPからのICMPを許可したところ、想定通りに動作してくれました。
-
送信ルールに全ての通信を拒否するルールを加える
次に送信ルール側も試してみます。
以下のようにAll Denyのルールを作ってみたところ、想定通りに送信アクセスできなくなったことが確認できました。
なお、論理ネットワークとNICの両方にNSGを設定したときに両方のNSGが評価される点はAzureと同様でした。
Azure Local VMのデプロイ時にNSGを作成するパターン
また、Azure Local VMのデプロイ時にNSGを作成することもできるようです。
簡単なインバウンドの穴あけのみNSG作成時に設定でき、以下のようにVMのNICに関連付けられるNSGとして自動作成されました。
まとめ
Azure Arcで簡単にデプロイできるようになったAzure LocalのSDN機能を試してみました。
有効化もNSGの設定も簡単におこなえ、Azure VMと同様な操作感でNSGが利用できました。
Azure Local VMはAzureからデプロイ、管理をおこなうため、その流れでネットワークセキュリティもAzureから制御できるのは嬉しいですね。もし今後フローログ機能なんかもついてくると嬉しいです。
また、他のSDN機能もAzure Arc経由のSDNに追加が予定されているようですので楽しみです。
一方でオンプレの仮想化基盤環境はオンプレネットワーク内のファイアウォール機器等で通信制御をおこなっている中で、どうNSG機能と棲み分けていくのかは要検討と感じます。
また、Azure Local VMのみしか対応していないこともあり、Hyper-V VMをAzure Local VMに変換する機能の追加がより一層待たれるなぁと・・・。