5 ms·
The eBPF code runs on the game server not the client. Cool story tho
by gafferongames 3y ago
The eBPF code runs on the game server not the client. Cool story tho
- Galanwe 3y agoIf you want to use kernel bypass on the server, not the client, then XDP is even more useless. Because on the server world, you have access to professional NICs that you cannot expect clients to have. It's been decades now that people routinely do kernel bypass on servers using e. g. Solarflare NICs with OnLoad. You just write your networking code normally using BSD sockets API, and LD_PRELOAD the OnLoad SDK which will intercept the socket API and perform a bypass. You get 90% of the latency benefits of kernel bypass without modifying your code, which still runs everywhere.
- tptacek 3y agoI think you're a little bit on tilt here. "The server world" was what XDP was invented for, and it's used all over cloud providers. Watch the XDP mailing list.
- mc10 3y agoBoth Katran[1] by Facebook and Unimog[2] by Cloudflare are L4 load balancers written using XDP. It's factually incorrect to claim that XDP is useless on servers as many companies intentionally choose to design their systems around commodity hardware. [1]: https://engineering.fb.com/2018/05/22/open-source/open-sourcing-katran-a-scalable-network-load-balancer/ [2]: https://blog.cloudflare.com/unimog-cloudflares-edge-load-balancer
- cookiengineer 3y agoDoesn't mean you should risk a takeover of all your game databases because you decided to bypass every single security measurement linux has in place already. I'd argue it's even worse, and network programming wise I'd argue that every custom implementation of TCP/UDP was broken in the past and lead to a lot of remote exploits, and eventually was abandoned due to maintenance costs. Just think about the shitshow of the source engine, for example. RCE'ing in the wild for what, 14+ years now? Took a long while and a lot of steam runtime sandboxing code to fix the decision to use a custom unsafe networking code.
- tptacek 3y agoWhat takeover risk? What security measurements is eBPF bypassing? How are you imagining getting RCE from a compiled eBPF packet processor?