一种云环境网络流量镜像的通用解决方案

栏目: 服务器 · 发布时间: 4年前

内容简介:传统网络数据分析会在交换机上配置网络数据镜像, 将Packet复制后发送到目标机器,实现网络流量镜像的功能。而在云平台上,目前网络数据采集还没有统一的方案。针对私有云平台,目前有流表数据包复制采集、在hypervisor上监听采集、vmware平台分布式虚交换机配置采集、libpcap抓包采集等方案。对于vmware平台分布式虚交换机配置采集的方案,性能较好,不占用客户机资源,但其属于商业产品,且只适用于购买vmware私有云用户;而在hypervisor上监听采集,目前有产品开发,性能较好,但只适用于Op

传统网络数据分析会在交换机上配置网络数据镜像, 将Packet复制后发送到目标机器,实现网络流量镜像的功能。

而在云平台上,目前网络数据采集还没有统一的方案。针对私有云平台,目前有流表数据包复制采集、在hypervisor上监听采集、vmware平台分布式虚交换机配置采集、libpcap抓包采集等方案。

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

因此,开发基于libpcap + GRE加密转发的应用,或许是云平台目前最优的网络流量镜像方案。其使用简单、开源、适用于各类公有云和私有云,只是需要在客户机部署接收 工具 而占用客户机CPU、内存、网络资源。

0x01 GRE技术原理

GRE:通用路由封装(Generic Routing Encapsulation)定义了在任意一种网络层协议上封装任意一个其它网络层协议的协议。 通过对某些网络层协议(如IP 和IPX)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议(如IP)中传输。

GRE采用了Tunnel(隧道)技术,是VPN(Virtual Private Network)的第三层隧道协议。 Tunnel 是一个虚拟的点对点的连接,提供了一条通路使封装的数据报文能够在这个通路上传输,并且在一个Tunnel 的两端分别对数据报进行封装及解封装。一个X协议的报文要想穿越IP网络在Tunnel中传输,必须要经过加封装与解封装两个过程。

GRE的封装和报头格式如下:

一种云环境网络流量镜像的通用解决方案
一种云环境网络流量镜像的通用解决方案

前4字节是必须出现的。第5~20字节将根据第1字节的相关bit位信息,可选出现。其中K比特设置为1,密钥(可选)部分的共4 bytes出现在GRE头部。

GRE头部的长度将影响Tunnel口的mtu值。

0x02 packet-agent简介

Netis Packet Agent是一个用于解决如下问题的开源项目:设备A上抓取的数据包,之后在设备B上使用分析。在很多时候,当你希望监控网络的流量,但是并没有可用的设备,例如:

  1. 物理环境中不存在TAP和SPAN设备。
  2. 虚拟环境中,Virtual Switch Flow Table不支持SPAN功能。

因此,该项目提供一套低开销但是高性能的抓包工具,用于应对上述困难。

  • pktminerg是第一个发布的工具。该工具可以轻松地在网卡上抓数据包,用GRE头进行封装并发送到远端的设备,来进行数据包监控和分析。
一种云环境网络流量镜像的通用解决方案

此外,还有另外3个工具:

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

目前,packet-agent已经支持了CentOS 6/7、Redhat 7、SUSE 12、Ubuntu 18.04、Windows 7/8/10的x86_64系统。当然,不仅仅是物理机可以运行,云环境、 docker 容器同样支持运行packet-agent工具集。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

王道程序员求职宝典

王道程序员求职宝典

电子工业出版社 / 2013-11 / 56.00元

本书精选了大量知名企业的程序员笔试、面试题,重点突出、解答翔实。全书共分为四部分,各部分如下:第一部分是程序设计基础及数据结构基础,讨论C/C++基础知识以及数据结构基础知识;第二部分是计算机网络基础,讨论网络模型、套接字编程基本操作、IPv4与IPv6、子网划分、网络常用测试工具等;第三部分是操作系统基础,讨论进程与线程的基本知识、进程间通信与进程同步、内存管理的相关知识等;第四部分是其他计算机......一起来看看 《王道程序员求职宝典》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

html转js在线工具
html转js在线工具

html转js在线工具