我有一个 Hyper-V 盒子,它具有以下连接的 IP 电话的通话录音:
- PBX 在接入端口(本地 vlan 42)上,插入交换机上的端口 22(它没有 VLAN 设置,因此我们设置本地接入 vlan,使其所有流量都在 VLAN 42 上)。
- 混合端口上的电话(本机 vlan 1 用于工作站,标记为 42 用于电话)
- Hyper-V 机器上用于来宾 VM 的专用 NIC
- Hyper-V 机器上的专用 NIC,用于监视交换机上的端口 21。
- 在 Hyper-V 上启用端口镜像
HP ProCurve 2610-24 交换机配置如下:
mirror-port 21
vlan 1
name "DEFAULT"
untagged 1-17,19-21,23-28
no untagged 18,22
exit
vlan 42
name "VOICE"
untagged 22
tagged 1-20,23,26
exit
interface 22
monitor
exit
我在 Hyper-V 主机上启用了监控:
- 在 Hyper-V 主机上,创建一个名为 Monitor 的新虚拟交换机,它物理连接到专用的监控 NIC(也为一般流量创建一个单独的交换机)。
- 启用扩展 Microsoft NDIS Capture。
$portFeature=Get-VMSystemSwitchExtensionPortFeature -FeatureName "Ethernet Switch Port Security Settings"
$portFeature.SettingData.MonitorMode = 2
Add-VMSwitchExtensionPortFeature -ExternalPort -SwitchName Monitor -VMSwitchExtensionFeature $portFeature
- 创建一个新的虚拟机,添加以下虚拟网络适配器:
- 用于连接到访客虚拟交换机的一般数据流量的 NIC
- 用于监控连接到监控虚拟交换机的流量的 NIC
- 在来宾虚拟机的监控虚拟网卡下,进入
Advanced Features
,将端口镜像模式设置为Destination
。
当我在访客监控 VM 上运行 Wire-shark 时,我只看到从 PBX(源)到电话(目的地)的单向流量,而不是从电话到 PBX。
原则上,由于 PBX 可以发送/接收未标记的数据(在端口 22 上显示),这应该在端口监控端口上逐字显示为未标记的数据帧(对于本地 VLAN 42),否则我会叫错树?
我已经完成了相同的 Hyper-V 设置,但使用了 Cisco,并且没有任何问题可以正常工作。
不确定这是我做错了什么,是 Windows 的问题,还是 HP 的问题。非常感谢指针。
根据上述配置,端口镜像是正确的(HP 在其 25xx 和 26xx 型号上声明其监控保留 VLAN 标签,无论被监控的端口是否设置为未标记 - 注意,这是用于端口监控,不确定这是否是新型号上的 vlan 类型不同,因为无法在此固件上进行测试)。
我的第一步是使用默认监控设置来捕获 VM 上的流量:
我可以看到我正在获取来自 PBX 的所有未标记帧(它没有标记帧的概念)。
然后我尝试将中继设置到交换机以接收标记的 42 和本机 vlan 42
Set-VMNetworkAdapterVlan -VMName MonitorVM -VMNetworkAdapterName Monitor -Trunk -Allowed VlanIdList 813 -NativeVlanId 42
,此时我看到我不再接收 PBX 数据(未标记的帧)。在线阅读后,我发现Hyper-V 将 untagged (vlan disabled) 定义为 VLAN ID 0。
将主干设置为 VM以接受标记的 42 帧和未标记的帧(重命名接口,以便我只能针对它):
然后我能够看到双向交通!
我无法对 ProCurve 设置发表评论,但由于您在 HV 上有一个专用 NIC 用于监控,您是否也需要在虚拟交换机上进行额外的镜像配置?此时流量可以正常传递到虚拟机。
您是否能够确认 ProCurve 是否正确地镜像流量并且至少到达专用 NIC?
谢谢你的帖子,它对我帮助很大。
我可以确认这也解决了我的情况。我注意到 PowerShell 中的代码片段略有错误(可能是由于某些格式问题),这是我使用的脚本