Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/cherusk/fleutan

(Altger. fliessen, fliessend, engl. flowing)
https://github.com/cherusk/fleutan

engineer flows hops linux network network-analysis operating-system research socket ss tcp tcp-ip traffic troubleshooting utility

Last synced: 24 days ago
JSON representation

(Altger. fliessen, fliessend, engl. flowing)

Awesome Lists containing this project

README

        

# fleutan
(Altger. fliessen, fliessend, engl. flowing)

![Alt text](logo.png?raw=true "fleutan")

# Purpose

Fleutan aims at forming an complementing or functionality enriching agglomeration of tools or mechanisms all around flowing on unixoid systems to enhance the way engineers can research, analyze and operate their nodes. It's thereby focused on the single endpoint and tries to reach or look into the network fabrics as deeply as it can when it comes to what is available to it on the certain systems acting as the endpoint.

# Target Audience

- all kinds of systems engineers, foremost operations focused
- network researchers

# Install

```
# pip install Fleutan
```

## Prerequs

Out of python trees ...

[BCC!](https://github.com/iovisor/bcc/blob/master/INSTALL.md) : In case you want to use eBFS based kernel skb flow volume tracing.

# Examples

To show the prevailing association of flows to cpus you can run

```
$ fleutan flows --cpu -i 5
~>/usr/lib/thunderbird/thunderbird(2847)
tcp 192.168.10.50#34718 212.227.17.170#993
tcp 192.168.10.50#55258 194.25.134.115#993
___

####################################################################################################
************************************************************************* 100.00 0
0.00 1
0.00 2
0.00 3
0.00 4
0.00 5
0.00 6
0.00 7
...
~>hexchat(11290)
tcp 2003:62:4655:968b:18d0:33a6:3314:7c7#34482 2001:5a0:3604:1:64:86:243:181#6667
tcp 2003:62:4655:968b:18d0:33a6:3314:7c7#38930 2a02:2f0d:bff0:1:81:18:73:123#6667
tcp 2003:62:4655:968b:18d0:33a6:3314:7c7#35660 2605:ac00:0:39::38#6697
___

####################################################################################################
0.00 0
0.00 1
0.00 2
0.00 3
************************************************************************* 150.00 4
0.00 5
0.00 6
0.00 7
...
~>/usr/lib/firefox/firefox(11181)
tcp 2003:62:4655:968b:18d0:33a6:3314:7c7#59780 2a00:1450:4021:c::b#443
tcp 2003:62:4655:968b:18d0:33a6:3314:7c7#59774 2a00:1450:4021:c::b#443
tcp 2003:62:4655:968b:18d0:33a6:3314:7c7#44950 2a00:1450:4001:81f::200e#443
___

####################################################################################################
************************ 15.00 0
************** 9.00 1
*************************************** 24.00 2
***************************** 18.00 3
**** 3.00 4
0.00 5
************************************************************************** 45.00 6
*********************************************************** 36.00 7
```
Helpful is also to see the paths certain flows are traversing:

```
$ fleutan paths -d
**>Flows
tcp 2003:62:4655:968b:18d0:33a6:3314:7c7#36582 2605:ac00:0:39::38#6697 p0
tcp 2003:62:4655:968b:18d0:33a6:3314:7c7#41570 2600:3c02::f03c:91ff:fe59:7d2e#6667 p1
tcp 192.168.10.50#35238 212.227.17.170#993 p2

..>paths

p0 p1 p2
--------------------------------------------------------------------- --------------------------------------------------------------------- -------------
2003:0:1801:c209::1 2003:0:1801:c209::1 speedport.ip
['2003:0:1801:c258::2', '2003:0:1803:8358::2', '2003:0:1801:c258::2'] ['2003:0:1801:c258::2', '2003:0:1803:8358::2', '2003:0:1801:c258::2'] 87.186.224.45
2003:0:130c:8000::1 ['2600:3c02:4444:3::2', '2600:3c02:4444:4::2'] 217.0.74.226
2003:0:130c:8024::2 moon.freenode.net 217.239.52.94
2001:5a0:0:501::16 80.157.204.86
2001:1978:2:5::d imap.gmx.net
2001:1978:203::e
2001:1978:1300:10::12
2605:ac00:ffff:ffff:ffff:ffff:ffff:fffe

```

Even better, to introspect the latency outline of the currently held TCP flows of the system do a
```
$ fleutan flows --lat
**TCP FLOWS: (NUM 24)
*latency distribution [rtt-range]

####################################################################################################
█████████████████████████████████████████████████ 7.00 [28.843-38.6062]
█████████████████████████████████████████████████████████ 8.00 [38.6062-48.3694]
█████████████████████████████████████████████████ 7.00 [48.3694-58.1326]
0.00 [58.1326-67.8958]
0.00 [67.8958-77.659]
0.00 [77.659-87.4222]
0.00 [87.4222-97.1854]
0.00 [97.1854-106.9486]
0.00 [106.9486-116.7118]
██████████████ 2.00 [116.7118-126.475]

---
*latency per flow in rtt(ms)

######################################################################################################################################################
█████████ 28.84 2003:62:462c:d506:6c2b:ba8:6530:b564#57310 2a00:1450:4016:80c::2003#443
██████████ 31.69 192.168.10.50#34340 35.190.27.37#443
██████████ 32.40 192.168.10.50#49322 194.25.134.50#993
███████████ 33.91 2003:62:463d:7012:6c2b:ba8:6530:b564#36768 2a00:1450:4021:7::a#443
████████████ 35.60 2003:62:462c:d506:6c2b:ba8:6530:b564#37096 2a00:1450:4001:817::200e#443
████████████ 35.87 192.168.10.50#51392 212.227.17.170#993
████████████ 35.91 2003:62:462c:d506:6c2b:ba8:6530:b564#38224 2a00:1450:4001:80b::2008#443
█████████████ 39.45 192.168.10.50#36450 151.101.1.69#443
██████████████ 40.56 2003:62:462c:d506:6c2b:ba8:6530:b564#57750 2a00:1450:400c:c04::9c#443
██████████████ 40.69 192.168.10.50#51384 212.227.17.170#993
██████████████ 42.08 192.168.10.50#57468 52.84.161.71#443
███████████████ 44.02 2003:62:462c:d506:6c2b:ba8:6530:b564#56758 2a00:1450:4001:825::200e#443
███████████████ 44.61 192.168.10.50#40534 66.117.29.3#443
████████████████ 46.75 2003:62:462c:d506:6c2b:ba8:6530:b564#34772 2a00:1450:4001:820::2002#443
█████████████████ 48.32 2003:62:462c:d506:6c2b:ba8:6530:b564#56834 2a00:1450:4001:825::200e#443
█████████████████ 49.33 2003:62:462c:d506:6c2b:ba8:6530:b564#60842 2a00:1450:4001:824::200a#443
█████████████████ 49.52 192.168.10.50#50658 151.101.193.69#443
██████████████████ 50.58 2003:62:463d:7012:6c2b:ba8:6530:b564#49344 2a00:1450:4001:825::200e#443
██████████████████ 50.98 2003:62:462c:d506:6c2b:ba8:6530:b564#60852 2a00:1450:4001:824::200a#443
███████████████████ 52.91 2003:62:462c:d506:6c2b:ba8:6530:b564#52794 2a00:1450:400e:80b::2004#443
███████████████████ 53.36 2003:62:463d:7012:6c2b:ba8:6530:b564#53478 2a00:1450:4001:815::200e#443
███████████████████ 53.46 2003:62:462c:d506:6c2b:ba8:6530:b564#51998 2a00:1450:4001:815::200e#443
███████████████████████████████████████████████ 125.46 192.168.10.50#34272 192.30.253.124#443
████████████████████████████████████████████████ 126.47 2003:62:462c:d506:6c2b:ba8:6530:b564#48300 2607:f8b0:4006:804::2003#443
```

When one is planning to do some low level performance tuning on the egress(TX) side of the stack, perceiving what flows with what outline are passing through the different queueing discipline instances for example of a multi queueing device over time by doing:

```
$ sudo ./fleutan flows -q -i 5

qdisc queues #>
load (bytes) per qu
####################################################################################################
███████████████████████ 0.3K 0
██████████████████████████████████████████████████████████████████████████ 1.00K 1
----

flowing volumes per qu ##>
0
#######################################################################################################################################################
████ 66.00 192.168.10.50#47956 91.1.49.97#80
█████ 78.00 ::#58 ::#0
██████ 86.00 2003:62:4625:d1a4:a166:cf47:30a6:e612#51358 2a00:1450:4001:80b::200a#80
██████ 86.00 2003:62:4625:d1a4:a166:cf47:30a6:e612#51360 2a00:1450:4001:80b::200a#80

----
flowing volumes per qu ##>
1
#######################################################################################################################################################
██████ 86.00 2002:22:4625:d1a4:a166:cf47:30a6:e612#51360 2a00:1450:4001:80b::200a#80
███████ 112.00 192.168.10.50#43660 192.111.249.9#443
████████████ 172.00 2003:62:4625:d1a4:a166:cf47:30a6:e612#55834 2a02:26f0:fc::5c7a:317c#80
██████████████████████████████████████████████████ 710.00 2003:62:4625:d1a4:a166:cf47:30a6:e612#54292 2a00:1450:4001:819::200e#443
----
```