前言

        由于业务需求要对vSphere环境中的虚拟机进行流量分析,玩过虚拟化的都知道虚拟机之间通信是通过虚拟交换机转发的,而没有将流量转发到上行链路(连物理交换机的端口),我的思路是这样的,先将虚拟机的端口直接镜像给一个上行链路,然后再在交换机上将这个上行链路再做一个端口镜像到另外的交换机端口(用于流量分析)。

前提

       必须要vCenter环境,因为分布式交换机是基于vc的。

       需要至少两个网口,因为有一个会被默认标准交换机占用。

       我用的是vCenter6.7 版本和EXSI6.5。5.1以上都是支持端口镜像的。

简单拓扑图

     

vsphere client 上传esxi镜像 esxi端口镜像_Distributed

一、配置前需知

使用端口镜像

通过端口镜像,可将分布式端口流量镜像到其他分布式端口或特定物理交换机端口。

可在交换机上使用端口镜像将一个交换机端口(或整个 VLAN)上的一份数据包发送到另一个交换机端口上的监控连接。端口镜像用于分析和调试数据或诊断网络上的错误。

端口镜像版本兼容性

vSphere 5.1 及更高版本中的特定端口镜像功能取决于您使用的 vCenter Server、vSphere Distributed Switch和主机的版本,以及您如何结合使用 vSphere 的各个方面。

端口镜像兼容性

vsphere client 上传esxi镜像 esxi端口镜像_互操作性_02

如果您将主机配置文件与端口镜像设置一起使用,则主机配置文件必须改写为 vSphere 5.1 及更高版本中的新端口镜像版本。

端口镜像互操作性

将 vSphere 端口镜像与 vSphere 的其他功能配合使用时,有一些互操作性问题需要考虑。

 

vMotion

根据您选择的 vSphere 端口镜像会话类型,vMotion 的功能会有所不同。在进行 vMotion 期间,镜像路径会暂时无效,但完成 vMotion 后会还原。

 

vMotion 与端口镜像的互操作性

vsphere client 上传esxi镜像 esxi端口镜像_互操作性_03

TSO 和 LRO

TCP 分段卸载 (TSO) 和大型接收卸载 (LRO) 可能会导致正在镜像的数据包数量与已镜像数据包数量不相等。

在vNIC上启用TSO后,vNIC 可能会向 Distributed Switch发送大数据包。在vNIC上启用LRO后,发送到vNIC的小数据包可能会合并成大数据包。

vsphere client 上传esxi镜像 esxi端口镜像_Distributed_04

 

二、部署端口镜像

创建端口镜像会话

使用 vSphere Web Client 创建端口镜像会话,将 vSphere Distributed Switch 流量镜像到端口、上行链路和远程 IP 地址。

 

前提条件

验证 vSphere Distributed Switch 的版本是否为 5.0.0 或更高的版本。

步骤

1 选择端口镜像会话类型

要开始端口镜像会话,必须指定端口镜像会话的类型。

2 指定端口镜像名称和会话详细信息

要继续创建端口镜像会话,请指定新端口镜像会话的名称、说明和会话详细信息。

3 选择端口镜像源

要继续创建端口镜像会话,请为新端口镜像会话选择源和流量方向。

4 选择端口镜像目标并验证设置

要完成端口镜像会话的创建,请选择端口或上行链路作为端口镜像会话的目标。

选择端口镜像会话类型

要开始端口镜像会话,必须指定端口镜像会话的类型。

步骤

1 在 vSphere Web Client 导航器中,浏览到分布式交换机。

2 单击 配置选项卡并展开 设置。

vsphere client 上传esxi镜像 esxi端口镜像_互操作性_05

3 选择 端口镜像选项并单击 新建。

4 选择端口镜像会话的会话类型。这里我们选择“远程镜像源”

vsphere client 上传esxi镜像 esxi端口镜像_互操作性_06

vsphere client 上传esxi镜像 esxi端口镜像_上行链路_07

5 单击 下一步。

指定端口镜像名称和会话详细信息

要继续创建端口镜像会话,请指定新端口镜像会话的名称、说明和会话详细信息。

步骤

1 设置会话属性。根据选择的会话类型,会有不同的选项可供配置。

vsphere client 上传esxi镜像 esxi端口镜像_互操作性_08

2 单击 下一步。

vsphere client 上传esxi镜像 esxi端口镜像_Distributed_09

选择端口镜像源

要继续创建端口镜像会话,请为新端口镜像会话选择源和流量方向。

您可在未设置源和目标的情况下创建端口镜像会话。如果未设置源和目标,则创建的端口镜像会话没有镜像路径。这样一来,您便可创建属性集正确的端口镜像会话。设置属性后,您可编辑端口镜像会话来添加源和目标信息。

步骤

1 选择要镜像的流量源和流量方向。

根据所选端口镜像会话的类型,会提供不同的配置选项。

vsphere client 上传esxi镜像 esxi端口镜像_上行链路_10

2 单击 下一步。

vsphere client 上传esxi镜像 esxi端口镜像_上行链路_11

vsphere client 上传esxi镜像 esxi端口镜像_上行链路_12

vsphere client 上传esxi镜像 esxi端口镜像_上行链路_13

确定下做了端口镜像的交换机端口

vsphere client 上传esxi镜像 esxi端口镜像_Distributed_14

如何确定目标源上行链路

vsphere client 上传esxi镜像 esxi端口镜像_上行链路_15

比如我15.12这台esxi主机的第三个网口在交换机上做了镜像,在选目标上行链路时就选择Uplink2。

 

到这里端口镜像就做完了。最后就是在物理交换机上配置端口镜像了,再在对应端口安装数据分析主机。

 

效果展示

环境展示

vsphere client 上传esxi镜像 esxi端口镜像_Distributed_16

vsphere client 上传esxi镜像 esxi端口镜像_上行链路_17

已这两台主机做测试。

vsphere client 上传esxi镜像 esxi端口镜像_互操作性_18

vsphere client 上传esxi镜像 esxi端口镜像_Distributed_19

vsphere client 上传esxi镜像 esxi端口镜像_上行链路_20

 

科来数据包分析

vsphere client 上传esxi镜像 esxi端口镜像_Distributed_21

vsphere client 上传esxi镜像 esxi端口镜像_上行链路_22

 

总结

端口镜像功能必须要基于vcenter以及分布式交换机才能做,在做端口镜像功能之前先做好网络规划,使用上行链路方式做端口镜像时,确定使用哪个上行链路做端口镜像,除了在虚拟化环境下做端口镜像还需要在直连交换机上做相应的端口镜像。

注意:

Uplink2这个上行链路不要绑定到端口组中,意思是让这个链路独立出来,这个上行链路在前面配置了禁止流量流入,如果这个上行被绑定到其他分布式端口组里会导致网络不通的情况。

 

针对于“目标端口的正常I/O”两种状态分析:

  • 禁止:由于虚拟机使用的是端口组网络,如果镜像上行端口在这个端口组内,则会拒绝接收数据包,也就是网络不能正常使用,但是有一种情况可以,也就是你这个镜像的上行端口在这个端口组内是备用状态,也就是未使用状态,但是这个任然有缺陷,当端口组其他上行链路出现故障,镜像上行端口被切换为主时候网络会不通。
  • 允许:意思是在发送镜像数据包时不影响该上行链路的正常收发数据,也就是对网络不造成影响,也就没有断网的情况。