bpf echo
1.0.0
bpf-echo는 IPv4 및 IPv6 트래픽을 지원하는 매우 빠른 TCP 및 UDP 에코 서버입니다. 이 구현에서는 나가는 패킷을 보내는 소켓의 수신 대기열로 바로 다시 리디렉션하기 위해 확장된 Berkeley 패킷 필터 및 BPF 컴파일러 컬렉션을 활용합니다. 업스트림 서버에 병목 현상이 발생하지 않는지 확인하려는 프록시 서버 또는 네트워크 라이브러리를 벤치마킹하는 데 적합합니다.
bpf-echo
실행하기 위한 요구 사항은 다음과 같습니다.
pip3 install pyroute2
python3-bpfcc
와 같은 많은 배포판에 포함되어 있습니다. 자세한 내용은 bcc의 INSTALL.md를 확인하세요.4.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)
BPF 구현은 다소 간단하므로 몇 가지 절충안이 있습니다.