当前位置:首页 >> 主机教程

常见SEO一台云服务器安全实验室丨如何实现云计算环境下的流量镜像?

发布时间:2025-12-09 01:16:03 作者:熊猫主机教程网
简介 阿里云服务器流程 Sayings 在实验室里做实验 镜像流量如何穿过云计算 本文作者:李矩希 山石网科研发资深总监,ADC/WAF研发负责人 什么时候需要镜像流量 流量镜像在网络运维、安全分析、数据监测、故障定位等活动中经常使用。网络安全设备中,IDS、WAF、数据审计、DLP等设备都可以旁路部署,旁

阿里云服务器流程

Sayings

在实验室里做实验

镜像流量如何穿过云计算

本文作者:李矩希 山石网科研发资深总监,ADC/WAF研发负责人

什么时候需要镜像流量

流量镜像在网络运维、安全分析、数据监测、故障定位等活动中经常使用。网络安全设备中,IDS、WAF、数据审计、DLP等设备都可以旁路部署,旁路部署侧重审计、分析和事后取证。

山石网科ADC产品也可以将经其转发的流量镜像到其它网络设备上,下面举两个典型的场景为例。

1. 部署在网络出口处

将山石网科ADC透明部署在网关出口处,ADC设备可以将网络流量按需镜像到与其配合的IDS/DLP上做安全检测。

除了将明文流量直接从ADC镜像出去之外,对于使用SSL加密的流量,山石网科ADC也可以配合SSL透视镜功能,将HTTPS流量解密之后,将明文的流量镜像到IDS/DLP或其它网络设备、服务器上(需要在内网终端上安装证书)。

下图中,终端访问http://www.tianya.com.cn的明文流量则可以直接通过ADC镜像出去,而访问https://www.baidu.com的加密流量可以通过配置SSL透视镜,由ADC解密之后,将明文流量镜像给IDS/DLP。

这种场景下,通过ADC将流量镜像到旁路部署的IDS/DLP,IDS/DLP可以对出口的流量进行安全检测、审计以及阻断

除了透明部署之外,山石网科ADC作为链路负载均衡(路由/NAT时),同样可以实现上述的功能。

下图中的AX1000S是山石网科的一款带SSL硬件加速的ADC型号,其它型号也可以实现同样功能。

图注:山石网科ADC流量镜像路径

2. 部署在服务器前

同样的,当使用山石网科ADC做服务器负载均衡、SSL Offload/SSL Proxy的时候,其同样可以将流量镜像给DBA、WAF等设备。

如下图中,山石网科ADC可以同时对不同的虚拟机服务器做负载均衡、SSL卸载(客户端到ADC HTTPS,ADC到服务器HTTP)、SSL Proxy(客户端到ADC HTTPS,ADC到服务器也是HTTPS),此时山石网科ADC都可以将流量(明文和解密后明文)镜像到旁路部署的WAF或者其它设备上。

图注:山石网科ADC流量镜像路径

物理网络的镜像流量要求

如上面所述,当IDS/DLP/WAF等设备旁路部署时,其对镜像过来的流量进行安全分析。物理网络中实际部署时,ADC的镜像口和IDS/DLP/WAF都是直连

这种情况最为普遍和简单,因此ADC或者其它镜像源的设备都不需要对报文做任何封装,而IDS/DLP/WAF也不需要解封装。

正因为这种现状,也要求镜像发送端和接收端必须物理直连,中间不能有二、三层网络设备。

虚拟网络的限制

下图是一个典型的在某一个物理主机内的虚拟主机之间的连接关系。

图注:物理主机内虚拟主机之间典型的连接关系

1. 由上图所示,虚拟网络的虚拟网元、虚拟主机之间无法实现直接连接,都是通过虚拟交换机连接。即便在一个物理主机之上,各个虚拟实例也是通过Hypervisor的虚拟交换机进行互联;而当不在一个物理主机时,则通过虚拟交换机以及Underlay网络进行互联。

2. 在绝大部分的公有云网络、SDN网络,虚拟实例发送报文的源MAC必须是云平台或者SDN控制器分配的MAC地址,当虚拟实例发送报文的源MAC不属于该虚拟接口时,则会被虚拟网络丢弃;部分公有云甚至对虚拟实例发送的报文的源IP进行检查,如果源IP不是该虚拟接口的IP时,则会丢弃报文。

虚拟网络限制总结:

1. 在虚拟网络中,不可能使用类似物理网络的直连方式进行流量镜像。

2. 由于不能直连,MAC地址自然不能使用原始报文的源、目的MAC,即便云平台不丢弃,也会导致虚拟交换机的MAC表乱掉;再加上部分公有云对源IP进行检查,使用原始报文的源IP直接发送也可能会被云平台丢弃。

山石网科vADC如何解决

山石网科虚拟化ADC产品(vADC)当前有AX02/AX04/AX08三个型号。通过前面的分析,虚拟网络中无法实现物理网络中的网元直连,再加上公有云对源IP地址的限制,物理网络中的流量镜像方案变得行不通。

当然,通过上述的分析,解决方案也变得很自然——隧道。通过将镜像流量使用隧道封装,外层IP/MAC使用虚拟网元的信息,封装的Payload使用原始流量,从而实现在虚拟网络中的流量镜像。

GRE隧道

GRE隧道是隧道中比较简单的一种,无需两端协商,实现简单;因此山石网科vADC通过使用GRE隧道对镜像流量进行封装,将外层的源MAC封装为自己的MAC,目的MAC为下一跳的MAC;源IP为自己的IP,目的IP为目的地的IP地址,从而符合虚拟网络的限制。

下图为GRE封装格式,通过将镜像流量报文作为GRE的Payload Packet,这样封装之后的报文暴露在虚拟网络上的MAC和IP信息则为隧道的两个端点的信息。GRE的封装格式也很简单,头部为4~16个字节;镜像流量接收方处理起来也很简单,即便之前不支持,也很容易支持对GRE的解封装。

图注:GRE封装格式

举例

场景:

下图中以AX04(vADC的一个型号)做七层SLB为例,基本配置如下:

Virtual Server: l7-vs, 192.168.131.2:8087

Real servers:rs33 ~ rs35 (192.168.131.33 ~ 192.168.131.36, port 80)

云服务器 地域

Client:192.168.131.1

图注:山石网科AX04做七层SLB工作流程

上图中绿色为HTTP请求,红色部分为镜像流量所走的路径。

流量镜像需求

需要AX04将l7-vs的流量镜像到另外一个虚拟网络的Data analyzer(192.168.142.2)上。AX04的IP地址是192.168.131.2,这个是一个跨虚拟三层网络的镜像需求

流量镜像关键配置:

1. 基本配置

接口,虚拟服务器、服务池、真实服务、路由配置省略

2. 隧道配置

tunnel gre "tunnel-to-142"

source interface ethernet0/0

destination 192.168.141.2

interface ethernet0/0

exit

interface tunnel1

tunnel gre "tunnel-to-142"

exit

3. 镜像流量

slb virtual-server "l7-http" type http id 1

log enable

app-profile "l7-http-profile"

server-pool "l7-http"

auto-snat

ip 192.168.131.2 port 8087

mirror-traffic interface tunnel1

exit

结果:

在192.168.142.2上抓包,结果如下:

图注:抓包结果

可以看到:

1. 镜像报文已经穿过了虚拟网络送到192.168.141.2

2. 镜像报文已经经过了GRE封装,外层的IP已经为AX04和Data analyzer的IP地址。

3. GRE封装的里面是原始的请求。

局限

通过上述的实验,我们看到通过GRE封装,丢失了原始报文的MAC头;原因是GRE封装的下层协议只能是传输层协议

阿里云 服务器 重启

但是对于安全设备、流量分析设备,并不关注MAC地址信息,再加上公有云及SDN网络的ARP基本都是云平台代答,所以MAC地址信息对安全分析也没有那么大的意义,因此我们认为实际中没有特别大的问题。

由于使用GRE封装,接受流量的网元也需要支持解GRE封装,好在GRE是一个非常简单的封装接收端非常容易解封装

总结

山石网科vADC通过GRE隧道来解决虚拟化网络的流量镜像需求,配合山石网科ADC产品的负载均衡、SSL透视镜、SSL Offload/SSL Proxy等功能,在实现平滑可靠交付应用的同时,可以按需将流量镜像给其它虚拟或者物理设备来进行安全监测、数据分析。

该方案可以在私有云、公有云中部署,当然也可以应用于物理网络的跨二、三层网络的流量镜像需求。

该方案将在近期发布,敬请期待!

万网 云服务器