Skip to content

SNTPings: Abusing IPv6 for Art#

NLNOG Day 2025 (Amsterdam) digest Program Wildcard pick Amsterdam · 30 September 2025

Luc Haaijer (Studenten Net Twente)

Play the recording: SNTPings: Abusing IPv6 for Art

  • Why: Not a talk the PM would ever search for — and exactly why it's worth 15 minutes. Under the "art project" framing is serious fast-path dataplane engineering: line-rate packet processing, userspace networking with DPDK, and an accidental distributed load test that saturated a 40G NIC, a stateful firewall, and a university's upstream.
  • What: A 1920×1080 collaborative pixel canvas (in the spirit of r/place and pixelflut) where each "pixel write" is an ICMPv6 echo to a destination address that encodes the pixel — the IPv6 address bits carry X, Y, and BGRA color (ping6 2001:610:1908:a000:<X>:<Y>:<B><G>:<R><A>). Over 100 participants; the hardware packet counters wrapped multiple times; sustained rate above 72 Mpps, saturating the 40G NIC, a newly installed stateful Fortinet firewall (which, at least, does support IPv6 — through 1920×1080×color distinct destination IPs), and the upstream infrastructure, prompting a "my Wi-Fi is slow" moment campus-wide.
  • How: DPDK ingests packets in userspace (kernel bypass, NIC hijacked for line-rate receive); destination-address bits are memcpy'd directly into the frame buffer; OpenCV + Gstreamer encode an x264 live stream (codec-compatibility hell noted: Firefox/Linux ∩ Chrome/Windows = ∅); MediaMTX distributes. Network notes: the workload is pps-limited rather than bandwidth-limited; a 40G external tap with 10G internal, and the university upgraded to 2×100G for headroom. Future work: GPU processing via RDMA, FPGA, multiple servers — plus a P4 tap with BGP.
  • Where applicable: Campus/event-specific as a project, but the pattern transfers: DPDK userspace receive at tens of Mpps, address-bits-as-payload as a legitimate technique for creative telemetry or encoding, and a vivid reminder that stateful middleboxes are the bottleneck long before the link is.