Demonstrations of solisten.py, the Linux eBPF/bcc version.


This tool traces the kernel function called when a program wants to listen
for TCP connections. It will not see UDP neither UNIX domain sockets.

It can be used to dynamically update a load balancer as a program is actually
ready to accept connexion, hence avoiding the "downtime" while it is initializing.

# ./solisten.py --show-netns
PID    COMM         NETNS        PROTO  BACKLOG  ADDR                                    PORT
3643   nc           4026531957   TCPv4  1        0.0.0.0                                 4242
3659   nc           4026531957   TCPv6  1        2001:f0d0:1002:51::4                    4242
4221   redis-server 4026532165   TCPv6  128      ::                                      6379
4221   redis-server 4026532165   TCPv4  128      0.0.0.0                                 6379
6067   nginx        4026531957   TCPv4  128      0.0.0.0                                 80
6067   nginx        4026531957   TCPv6  128      ::                                      80
6069   nginx        4026531957   TCPv4  128      0.0.0.0                                 80
6069   nginx        4026531957   TCPv6  128      ::                                      80
6069   nginx        4026531957   TCPv4  128      0.0.0.0                                 80
6069   nginx        4026531957   TCPv6  128      ::                                      80

This output show the listen event from 3 programs. Netcat was started twice as
shown by the 2 different PIDs. The first time on the wilcard IPv4, the second
time on an IPv6. Netcat being a "one shot" program. It can accept a single
connection, hence the backlog of "1".

The next program is redis-server. As the netns column shows, it is in a
different network namespace than netcat and nginx. In this specific case
it was launched in a docker container. It listens both on IPv4 and IPv4
with up to 128 pending connections.

Determining the actual container is out if the scope of this tool. It could
be derived by scrapping /proc/<PID>/cgroup. Note that this is racy.

The overhead of this tool is negligeable as it traces listen() calls which are
invoked in the initialization path of a program. The operation part will remain
unaffected. In particular, accept() calls will not be affected. Neither
individual read() and write().

