bpf echo
1.0.0
bpf-echo ist ein blitzschneller TCP- und UDP-Echoserver, der IPv4- und IPv6-Verkehr unterstützt. Seine Implementierung nutzt den erweiterten Berkeley Packet Filter und die BPF Compiler Collection, um ausgehende Pakete direkt zurück in die Empfangswarteschlange des sendenden Sockets umzuleiten. Es eignet sich perfekt für das Benchmarking von Proxy-Servern oder Netzwerkbibliotheken, bei denen Sie sicherstellen möchten, dass der Upstream-Server keinen Engpass darstellt.
Die Voraussetzungen für die Ausführung bpf-echo
sind:
pip3 install pyroute2
python3-bpfcc
in Ubuntu-Paket-Repositories. Weitere Informationen finden Sie in INSTALL.md von bcc4.1
$ sudo ./bpf-echo --ipv4 127.0.0.1 --port 1122 # run in different terminal
$ echo "hello" | nc -W1 127.0.0.1 1122
hello
usage: bpf-echo.py [-h] [--ipv4 IPV4] [--ipv6 IPV6] [--port PORT]
[--ifname IFNAME]
optional arguments:
-h, --help show this help message and exit
--ipv4 IPV4 IPv4 address that will reflect packets. Disabled if empty
string. (default: 127.0.0.1)
--ipv6 IPV6 IPv6 address that will reflect packets. Disabled if empty
string. (default: )
--port PORT TCP/UDP destination port that will reflect packets.
(default: 12345)
--ifname IFNAME Interface the eBPF classifier will be loaded on. (default:
lo)
Die BPF-Implementierung ist recht einfach und erfordert daher einige Kompromisse: