Hyper-V SET Port Mirroring 封包大量遺失

Yu-Ching Lin 80 信譽點數
2026-08-21T05:28:02.08+00:00

我們在 Hyper-V 的 Switch Embedded Teaming (SET) 虛擬交換器上設定 Port Mirroring,目的是將流量鏡像到一台 Security VM 做監控。

但實際測試時,鏡像流量大約有 90% 的封包遺失,原始 VM 的網路流量本身則看起來正常。

想請問在這種情況下,應該如何透過 PowerShell 檢查與調整:

  • Virtual Switch Port Mirroring 的 Source / Destination 模式
  • SET 環境下的鏡像流量行為
  • 可能影響封包鏡像的 buffer / queue 限制

另外,有沒有建議的 PowerShell 指令可以確認封包是在 vSwitch、SET team,還是 Security VM 端被丟棄?

Windows 商務版 | Windows 365 企業版
0 則留言 沒有留言

由問題作者接受的回答
Domic Vo 36,835 信譽點數 獨立顧問
2026-08-21T09:06:09.54+00:00

你好,

在Hyper-V的交换机嵌入式分组(SET)环境中使用端口镜像常导致流镜像不完整。 这是因为SET的数据包分配和负载均衡机制会影响镜像行为,导致安全虚拟机接收的流量不完整。 为了澄清这个问题,建议先检查PowerShell中的源和目标设置。

你可以用 Get-VMNetworkAdapter -VMName <原始VM> PortMirroring属性检查它是否被设置为虚拟机Source。 同样,在安全虚拟机上运行Get-VMNetworkAdapter -VMName <SecurityVM>时,确认端口镜像属性为 。Destination 如果需要调整,可以用 进行修改Set-VMNetworkAdapter -VMName <VM> -PortMirroring Source|Destination|None。 这是检查源/目的模式的最直接方法。

在SET环境中,端口镜像的表现不如单个网卡vSwitch稳定。 SET将流量分配到多个成员端口,镜像流量只能在路径的一部分复制,导致丢包率达到90%,如你所见。 这不是虚拟机本身的网络问题,而是SET的镜像限制。 为了验证,你可以使用PowerShell Get-VMSwitchTeam ,观察 Get-NetAdapterStatistics成员端口间的流量分布,以确认镜像流量是否只存在于某些端口。

至于缓冲区和队列限制,Hyper-V vSwitch 本身不提供直接的缓冲区调整接口,但你可以检查 Get-NetAdapterAdvancedProperty 网卡驱动的硬件设置,比如接收/发送缓冲区的大小。 如果镜像流量在NIC层被丢弃,这就是第一个检查点。

为了确定数据包丢弃的位置,可以进行分层检查:在vSwitch层,使用 Get-VMNetworkAdapterPacketCapture NetEventSession或NetEventSession跟踪镜像流量是否进入vSwitch。 在 SET 团队层,通过 Get-NetAdapterStatistics 查看每个成员端口的丢弃计数。 在安全虚拟机端,使用Wireshark或确认Get-NetAdapterStatistics接收方已丢弃。

总体来说,你遇到的主要问题是SET中镜像行为不完整。 如果需要完全镜像,建议在非SET(未设置)的专用vSwitch上配置端口镜像,或使用外部TAP/SPAN解决方案。

多米克配音。

此回答有幫助嗎?

有 1 人認為此回答有所幫助。
0 則留言 沒有留言

0 個其他答案

排序依據: 最實用

您的回答

答案可由問題作者標示為「已接受」,而由仲裁者標示為「推薦」,這可協助使用者知道答案解決了作者的問題。