onlykg 2020-05-11
通过思科镜像过来的数据可以成功被fprobe转换成netflow数据包,nfdump可以将数据解析正确,但是通过华为交换机镜像过来的数据,虽然也能被fprobe转换成netflow,但通过nfdump解析出来的数据明显错误,解析出来的公网地址都是国外的或者是保留地址,所以我们需要调整参数使得frpobe能解析正确数据。
为了避免物理服务器和操作系统等外界因素影响,我们带着重新安装的笔记本前去机房做测试,发现和机架上的物理服务器解析出来的数据是一样的,于是排除了物理服务器和操作系统等外界因素影响,认定使fprobe的参数问题。收集了部分数据包信息,用于分析。
通过对比思科和华为交换机的抓包数据,发现华为交换机镜像下来的数据包中多了802.1Q的数据报头。
最好的方式是调整交换机的参数,使得数据包剥离vlan标,但华为交换机ce5855不支持此功能。
于是调整fprobe的参数。通过man fprobe ,
注: 按理说使用-k参数就应该能成功,但是有部分环境存在问题,这时候需要使用-n参数。反正就这两个参数就能解决问题。
-K <bytes> Link layer header size. By default fprobe take this information from libpcap, but sometimes obtained size unsuitable for our purpose. It occurs, for example, on trunk interfaces in VLAN enviroment, where link layer header contain additional VLAN header. See EXAMPLES section. Capturing from trunk interface: fprobe -ieth0 -f"vlan&&ip" -K18 localhost:2055
-n <version> NetFlow version for use (1, 5, 7). [default=5]
fprobe -i em1 -e 10 -K18 localhost:9990 -n 7
或者 fprobe -i em1 -e 10 -K18 localhost:9990