免責事項:これは英文の記事「vDS ports go into blocked state for security violations even when the security policy is enabled」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。
「MACアドレス変更」、「無差別モード」、または「偽装転送」が「許可」に設定されている分散ポートグループに仮想マシンが接続されている場合、ネットワーク接続が失われています。
仮想マシン、または仮想マシン上のアプリケーションが、CARP/VIPフェイルオーバーのためにゲストOS内からMACアドレスの変更を要求するなど、セキュリティポリシーの1つ以上を有効にする必要がある動作を意図的に行っています。
ログには、vCenter UIの設定ではこのような変更のポリシーが「許可」に設定されているにもかかわらず、L2セキュリティ違反により仮想マシンのポートがブロックされていることが示されています。
vmkernel.log ファイルに記録されるログの例:
cpu#:cccc)etherswitch: L2Sec_EnforcePortCompliance: client <vmname> requested mac address change to <mac> on port 0x# #######, disallowed by vswitch policycpu#:cccc)etherswitch: L2Sec_EnforcePortCompliance: client <vmname> has policy violations on port 0x#######. Port is blocked
「net-dvs -l」コマンドの出力には、有効なパラメータが表示されます: deny mac change および Allow Mac Change = False
com.vmware.vswitch.port.security = deny promiscuous; deny mac change; deny forged frames propType = POLICY com.vmware.vswitch.port.macManagement: Allow MAC Change = False MAC Learning = False Unknown Unicast Flooding = False MAC Limit = 4096 MAC Limit Policy = ALLOW propType = CONFIG
この状況は、vCenter 8.0 の「MAC ラーニング構成」機能で導入されました。
vSphere UI では設定が正常に適用されているように見えますが、ホスト自体には正しく反映されていないため、実質的には「拒否」に設定されています。そのため、仮想マシン内のゲスト OS またはアプリケーションがポリシーに関連する動作(MAC アドレスの変更要求など)を行うと、違反として検出され、仮想マシンのポートがブロックされます。
この問題は、ESXi 8.0 Update 2b - ビルド 23305546 で解決されています。
ESXi 8.0 Update 2b - Build 23305546 リリース ノート
回避策:
仮想標準スイッチ (vSS) を使用します。
影響/リスク:
この問題は、vCenter 8.0 Update 2b - ビルド 23305546 より前のバージョンへのアップグレード後(または新規インストール後)に作成または変更され、MAC ラーニングが無効に設定されている分散ポートグループにのみ影響します。