Skip to content

Netis/cloud-probe

Repository files navigation

English ∙ 简体中文

Netis Cloud Probe

Stable release Software License

What is Netis Cloud Probe?

Netis Cloud probe (formerly known as Packet Agent) is an open-source project used to solve the following problem: capturing packets on device A and then using them for analysis on device B. In many cases, when you want to monitor network traffic but there are no available devices, for example:

  • There are no TAP and SPAN devices in the physical environment.
  • In the virtual environment, the Virtual Switch Flow Table does not support the SPAN function.

Therefore, this project provides a set of low-overhead but high-performance packet capture tools to deal with the above difficulties.

  • cpworker This tool can easily capture packets on the network card and send the packets to a remote device through different output methods, enabling packet monitoring and analysis.

capture traffic flow via GRE/Cloud

In addition, there are other tools:

  • cpdaemon is the management program of cpworker. It can start and stop cpworker. This module needs to work with CPM (Cloud Probe Mananger). CPM provides a user interface, which can configure the policies of cpworker and graphically display the statistical data reported by cpdaemon. You can contact Netis for further support regarding CPM, or you can develop your own CPM.

Quick Start

Capture packets via libpcap, encapsulate them with a GRE header, and send them to a remote device

Note: Please ensure that the firewall allows sending GRE packets to the target. https://lartc.org/howto/lartc.tunnel.gre.html provides a method to verify whether sending GRE packets to the target is allowed.

Create a new configuration file, for example: libpcap_gre.json

{
    "log_level": "INFO",
    "control": {
        "type": "unix",
        "unix": {
            "path": "/var/run/cloud-probe/cpworker.sock"
        }
    },
    "tasks": [
        {
            "req_pattern": {
                "type": "auto"
            },
            "capturer": {
                "type": "libpcap",
                "libpcap": {
                    "interface": "eth0",
                    "snaplen": 2048,
                    "buffer_size_mb": 256
                }
            },
            "outputs": [
                {
                    "type": "gre",
                    "gre": {
                        "host": "172.16.1.201",
                        "bind_device": "eth1"
                    }
                }
            ]
        }
    ]
}

run command:

cpworker -c libpcap_gre.json

Forwarding rate comparison test

Version Output Type Forwarding BPS Forwarding PPS CPU Utilization Version Forwarding BPS Forwarding PPS CPU Utilization Forwarding BPS Increase% Forwarding PPS Increase% CPU Utilization Increase%
0.8.7 ZMQ 1560Mbps 241K 110% 0.9.0 2680Mbps 409K 49% +71.8% +69.7% -55.4%
GRE 786Mbps 120K 90% 883Mbps 135K 58% +12.3% +12.5% -35.5%
VXLAN 820Mbps 125K 96% 883Mbps 135K 52% +7.7% +8% -45.8%

Documentation / Useful link

Contributing

Fork the project and send pull requests. We welcome pull requests from members of all open source community.

Support

This project is provided to teams with development capabilities, and there is no official commitment to provide support. For details see SUPPORT.md

License

Copyright (c) 2018 - 2020 Netis.

The content of this repository bound by the following licenses:

Contact info

Issue template

About

A Software Probe for network packet capturing and forwarding in Cloud/Kubernetes and Virtualized environment.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 13