Packet-Agent - 云环境网络流量镜像


BSD
跨平台
C/C++

软件简介

项目背景

传统网络数据分析会在交换机上配置网络数据镜像, 将 Packet
复制后发送到目标机器,实现网络流量镜像的功能。而在云平台上,目前网络数据采集还没有统一的方案。

针对私有云平台,目前有流表数据包复制采集,在 hypervisor 上监听采集、vmware 平台分布式虚交换机配置采集、libpcap
抓包采集等方案。对于 vmware 平台分布式虚交换机配置采集的方案,性能较好,不占用客户机资源,但其属于商业产品,且只适用于购买 vmware
私有云用户;而在 hypervisor 上监听采集,目前有产品开发,性能较好,但只适用于 OpenStack 私有云;采用 OVS
流表方案,优势是免费,不占用客户机资源,但是配置复杂,且只能用于 OpenStack 私有云。

因此,开发基于libpcap + GRE封装转发的应用,或许是云平台目前最优的网络流量镜像方案。其使用简单、开源、适用于各类公有云和私有云。

Packet-Agent 简介

Netis Packet Agent
基于libpcap技术,从业务网卡抓包,进行 GRE 封装后将采集到的数据包发送到另一台远端机器,供分析使用。

该项目提供一套低开销但是高性能的抓包工具:

  • pktminerg 是第一个发布的工具。该工具可以轻松地在网卡上抓数据包,用GRE头进行封装并发送到远端的设备,来进行数据包监控和分析

  • pcapcompare 用于比较两个 pcap 文件
  • gredump 根据特定的过滤规则抓取GRE数据包,并存储为 pcap 文件
  • gredemo 是一个 demo 应用程序,可以从 pcap 文件读取数据包,然后把它们发送到远端网卡。这个程序只能通过源代码编译生成

Docker Kubernetes 支持

Packet-Agent 对 Kubernetes 也提供了支持方案。简单来说,Packet-Agent封装成容器后,与需要监控的业务容器放在同一个 K8S
Pod 中,与其共享网络层并抓包镜像网络流量。具体方案见项目文档。

参与 Packet-Agent 项目

欢迎大家参与此项目,包括 star, fork, 提交 pull-request, 报告 bug,
提出任何意见或建议,或者将该项目介绍给相关的朋友。衷心感谢。