基于镜像抓包的网络故障诊断技术研究
2018-09-07邱黎
邱 黎
随着互联网的飞速发展,IT基础架构、移动互联网等技术的发展和变化,网络安全状况日趋严峻,内外网遭受的网络攻击数量越来越多,攻击方式越来越复杂,网络管理遇到网络攻击造成的网络故障无可避免。但面对网络故障时,能够及时诊断原因、判断故障位置,排除故障点对于提高网络的可靠性十分重要。本文通过研究镜像抓包技术的原理及工作方式,结合实际案例描述基于镜像抓包技术的网络故障诊断和分析。
一、镜像抓包基本原理
1、镜像抓包技术简介
镜像抓包技术是指在网络核心交换机上配置镜像端口,捕获该镜像端口上的数据包并进行解析分析。在核心交换机上将被监控的端口接收或发送的报文信息拷贝到镜像端口上,通过镜像端口接入网络分析设备,对报文信息进行解析,从而对网络故障进行排查分析或对网络情况进行监测。镜像抓包可以对被监控端口发送的报文或接收的报文或两者同时进行抓包。
2、镜像抓包的分类
目前镜像抓包技术可以分为两类,分别是同一设备镜像抓包和跨设备镜像抓包。
同一设备镜像抓包:被监控的一个或多个端口和镜像端口在同一设备上,将被监控端口接收的报文或发送的报文或两者同时复制到镜像端口,通过设备镜像报文进行分析监测。
跨设备镜像抓包:被监控的一个或多个端口和镜像端口不在同一设备上,镜像端口和被监控端口可以跨越多个网络设备。但是,目前跨设备镜像抓包不能穿越三层网络,只有二层网络中可以实现该功能。
二、镜像抓包实现方式
1、镜像组分类
镜像抓包是通过镜像组来实现,镜像组分为了三类,分别是:同一设备镜像组、跨设备被监控镜像组和跨设备监控镜像组。
同一设备镜像抓包:通过同一设备镜像组实现。设备将一个或多个被监控端口的报文复制一份并转发到镜像端口。具体实现方式如图1所示。
跨设备镜像抓包:镜像端口和被监控端口不在同一设备上,通过跨设备被监控镜像组和跨设备监控镜像组互相配合的方式实现。首先,设备复制一份被监控端口发送或接受的报文信息,接着在跨设备镜像VLAN中广播,通过中间设备传输报文到镜像端口设备。镜像端口设备通过比较VLAN的ID信息是否相同,当相同的时候,将报文信息传输到监控设备的镜像端口。跨设备镜像抓包的实现方式如图2所示。
图2 远程镜像抓包示意图
需要注意的是:镜像抓包和STP、RSTP以及MSTP功能存在冲突,如果在镜像端口上使用了MSTP、RSTP和STP,镜像抓包功能则会失效。
2、镜像抓包端口的配置
(1)同一设备镜像抓包配置
同一设备镜像抓包配置首先要创建一个同一设备镜像组,然后配置被监控端口和镜像端口。
[Sysname] mirroring-group 1 local # 创建同一设备镜像组。
[Sysname] mirroring-group 1 mirroring-port ethernet 1/1/1 ethernet 1/1/2 both
[Sysname] mirroring-group 1 monitor-port ethernet 1/1/3
# 为同一设备镜像组配置被监控端口和镜像端口
[Sysname] display mirroring-group all
# 显示所有镜像组的配置信息。
(2)跨设备镜像抓包的端口配置
跨设备镜像抓包需配置跨设备被监控镜像组和跨设备监控镜像组。首先在两台设备上分别配置跨设备被监控镜像组和跨设备监控镜像组,两个镜像组所使用的监控镜像VLAN必须相同。跨设备被监控镜像组需要配置被监控端口、反射口以及监控镜像VLAN。跨设备监控镜像组需要配置监控VLAN和镜像端口。具体配置信息如下:
①被监控端口所在交换机配置
[Sysname] mirroring-group 1 remote-source #创建跨设备被监控镜像组。
[Sysname] vlan 2 # 创建VLAN 2
[Sysname-vlan2] quit
[Sysname] mirroring-group 1 remote-probe vlan 2
[Sysname] mirroring-group 1 mirroring-port ethernet 1/1/1 ethernet 1/1/2 both
[Sysname] mirroring-group 1 reflector-port ethernet 1/1/4
# 为跨设备被监控镜像组配置监控镜像VLAN、被监控端口和反射口
[Sysname] interface ethernet 1/1/3
[Sysname-Ethernet1/1/3] port link-type trunk
[Sysname-Ethernet1/1/3] port trunk permit vlan 2
# 配置Ethernet1/1/3为Trunk端口,允许VLAN 2的报文通过。
②中间传输交换机配置
[Sysname] vlan 2
[Sysname-vlan2] mac-address max-maccount 0
[Sysname-vlan2] quit
#创建VLAN 2并且关闭此VLAN的MAC地址学习功能。
[Sysname] interface ethernet 1/1/1
[Sysname-Ethernet1/1/1] port link-type trunk
[Sysname-Ethernet1/1/1] port trunk permit vlan 2
# 配置Ethernet1/1/1为Trunk端口,允许VLAN 2的报文通过。
[Sysname-Ethernet1/1/1] interface ethernet 1/1/2
[Sysname-Ethernet1/1/2] port link-type trunk
[Sysname-Ethernet1/1/2] port trunk permit vlan 2
配置Ethernet1/1/2为Trunk端口,允许VLAN 2的报文通过。
③镜像端口交换机
[Sysname] interface ethernet 1/1/1
[Sysname-Ethernet1/1/1] port link-type trunk
[Sysname-Ethernet1/1/1] port trunk permit vlan 2
[Sysname-Ethernet1/1/1] quit
# 配置Ethernet1/1/1为Trunk端口,允许VLAN 2的报文通过。
[Sysname] mirroring-group 1 remotedestination
# 创建跨设备监控镜像组。
[Sysname] vlan 2
[Sysname-vlan2] mac-address max-maccount 0
[Sysname-vlan2] port ethernet 1/1/2
[Sysname-vlan2] quit
# 创建VLAN 2并且关闭此VLAN的MAC地址学习功能,将端口Ethernet1/1/2加入VLAN 2。
[Sysname] mirroring-group 1 remote-probe vlan 2
[Sysname] mirroring-group 1 monitor-port ethernet 1/1/2
# 为跨设备监控镜像组配置监控镜像VLAN和镜像端口
完成上述配置之后,通过执行display命令,显示配置后镜像组的运行情况,查看信息并且验证配置的效果。
三、实际案例
1、网络故障现象
某日,一条网络出口完全中断。紧急排除其他因素后,迅速与上游网络服务商联系,得到回复,我方网络内部有终端对外网发起大量攻击,导致上游网络服务商的防火墙设备无法负荷,不能正常工作。因此,服务商需要我方停止网络攻击后,再恢复提供互联网接入服务。
2、网络故障分析
根据上游网络服务商提供的描述,我们可以判断内网有终端设备或者服务器中毒,被作为“肉鸡”对外网发起攻击。因此,我们急需找到中毒的一台或多台终端设备,排除故障点、恢复网络。
图3 网络原始拓扑图
如何从内网中的上千台终端设备中找到发起网络攻击的机器呢?从网络拓扑图(图3)上我们可以看到网络中的安全设备防火墙、上网行为管理器都不具备此功能,如果通过一个个楼层的去拔交换机的网线来排除故障,不仅仅工作量大、效率低,而且影响到网络办公及业务生产,同时如果有多台攻击终端分布到不同的楼层的话,判断的结果也不准确。在不影响全部人员正常工作的情况下,我们通过在核心交换机上配置镜像端口,将装有网络分析软件的设备接入镜像端口,进行数据抓包,安装好后网络的拓扑简图如图4所示。
图4 通过镜像抓包后的网络拓扑简图
图5
核心交换机具体配置方法如下:
[Sysname] mirroring-group 1 local
[Sysname] mirroring-group 1 mirroring-port ethernet 1/1/14 ethernet 1/1/15 both
[Sysname] mirroring-group 1 monitor-port ethernet 1/1/18
显示镜像抓包端口配置如下:
[Sysname] display mirroring-group all
mirroring-group 1:
type: local
status: active
mirroring port:
Ethernet1/1/14 both
Ethernet1/1/15 both
monitor port: Ethernet1/1/18
接着,我们通过镜像端口接入的网络分析系统解析抓包情况。捕获数据包一段时间之后,停止数据抓包,开始分析情况,我们发现有一个MAC地址为17:00:E8:50:44:99的终端,下面有25个IP地址,如图5所示。
根据网络规则和原理,服务器、网关等网络管理设备可存在一个设备拥有多个MAC地址的情况,但是根据对应的网络设备MAC对照表,这个MAC不是网关,同时也不是代理服务器。因此,我们怀疑这台设备存在着欺骗攻击。通过软件查看解析情况,发现该位置发起的ARP回复数据包有339860个,而请求的ARP数据包只有213个,如图6所示。
图6 17∶00∶E8∶50∶44∶99主机通讯的协议分布
分析数据包可以看出,17:00:E8:50:44:99向网络中不停地发送回复数据包,内容主要是告诉对端自己的IP地址,但是他的IP地址一直变化。因此我们初步判断MAC地址为17:00:E8:50:44:99的终端设备进行了网络攻击。通过查找IP地址与MAC地址的信息统计表,我们知道该机器的地理位置,首先进入楼层交换机拔掉该网线。观察发现,网络镜像抓包情况恢复正常,与上游服务商联系后恢复了该条线路的互联网接入服务。
最后,MAC地址为17:00:E8:50:44:99的设备由于网络断线,主动与网管员联系,网管员对该机器进行病毒查杀,电脑中被查出大量病毒,建议该设备进行数据备份及系统重装。系统重装后,接入网络一切正常。由此,我们可以得出结论,此次网络故障的原因是M A C地址17:00:E8:50:44:99的设备感染病毒后,被作为“肉机”发起网络攻击。
四、结语
在面对内网终端发起的网络攻击时,我们以网络原理、网络结构和运行状态等相关的知识为基础,结合实际情况,可以采取镜像抓包的方式进行故障排查。根据网络故障的现象,通过一定的监测工具,从而判断网络的故障点,排除故障后,最终恢复网络正常运行。