常见SEO一台云服务器安全实验室丨如何实现云计算环境下的流量镜像?
阿里云服务器流程
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等功能,在实现平滑可靠交付应用的同时,可以按需将流量镜像给其它虚拟或者物理设备来进行安全监测、数据分析。
该方案可以在私有云、公有云中部署,当然也可以应用于物理网络的跨二、三层网络的流量镜像需求。
该方案将在近期发布,敬请期待!
万网 云服务器
推荐阅读
- 云 图片服务器对话阿里云大将:为何在深圳怼上腾讯? 2025-12-14 23:16:20
- 个人搭建云服务器中国公有云前三强(阿里、腾讯、金山)大PK:硝烟再起,高下立判 2025-12-14 23:06:11
- 云服务器是虚拟的吗阿里云vs腾讯云:谁更胜一筹? 2025-12-14 22:56:08
- 阿里云服务器租赁价格环境适应性研制实验室:从设计到验证,打造可靠产品的关键环节 2025-12-14 22:46:01
- 我的阿里云服务器支持AMD9005(最大128核) 全水冷散热——高频图形工作站AE450介绍 2025-12-14 22:35:55

