Skip to content

This repo aims to offer a packet flow tracer based on bpf

License

Notifications You must be signed in to change notification settings

samuelesabella/ebpflow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ebpflow

This project aims to offer a packet flow tracer based on eBPF.

Dependencies

ebpflow needs BPF Compiler Collection (BCC) to be installed. More info concerning how to install BCC can be found by visiting: installing bcc.

Running and testing

From the project root, ebpflow can be used by running:

$ sudo ./ebpflow.py

Together with ebpflow this repo offers another tool (i.e. burst_generator.py) to set-up a testing environment. The tool creates a server application and multiple clients that connects to server, send a small message and then close the connection. To generate a traffic burst composed of 10 clients and one server handling connections, from the project's root directory run:

$ ./burst_generator.py -c 100

Booth tool supports the flag -h to show the options availables

How is information gathered?

Information regarding each process is read from inside kernel's data structures, starting from task_struct . Containers are distinguished by other processes by looking at the cgroup identifier to which each process belongs to. The docker daemon can then be queried by using the docker id, returned by ebpflow, to exctract further information about the container.

About

This repo aims to offer a packet flow tracer based on bpf

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages