Port Mirror (端口镜像)可以把一个或者多个端口的数据做个镜像转发到另外一个端口,然后用户可以在这个新的端口进行监听。这个技术在交换机上已经很成熟了,那么在Windows虚拟环境中如何呢?

首先看看Hyper-V 3.0里面如何设置。点开VM的设置,然后在Network Adapter的高级功能里面,Port Mirroring,选择mode,如果是被监控的VM对象,选择source,用来监控的VM选择destination就行了,注意他们必须连接在同一个virtual switch才可以工作。用于 source和destination的VM都可以有一个或者多个。

然后在Destination的VM上安装抓包软件,例如wireshark,然后指定你要监控的网卡

设置好表达式过滤掉你不想看的内容, 如下所示,我在 Source 上(172.0.12.131)上进行PING和DNS查询的包都被Destination 的VM抓住了

值得一提的是 Vsphere 5里面也有类似的设置,而且功能更强大,毕竟虚拟化这一块Vmware还是领头羊的地位,虚拟交换机,VLAN绑定的灵活性目前至少领先Hyper-V一个版本以上。Vsphere里面需要设置VDS, 这样子不同主机之间,不同VM之间都可以进行Port Mirroring,而Hyper-V有更多的局限。

而和专业的物理交换机相比, 物理交换机已经可以跨VLAN进行监控了,而虚拟环境还必须限制在同一个VLAN之内。