Saltar al contenido

eBPF: el superpoder del kernel de Linux que pocos conocen

    Linux avanzado | unfantasmaenelsistema.com

    Imagina que puedes ejecutar código dentro del kernel de Linux sin modificar el kernel, sin escribir un módulo, y con la garantía de que tu código no podrá bloquear ni corromper el sistema. Imagina que ese código puede observar cada syscall, cada paquete de red, cada acceso a memoria, con overhead prácticamente nulo. Eso es eBPF.

    Cloudflare la usa para bloquear ataques DDoS a velocidades de decenas de millones de paquetes por segundo. Meta la usa para observar su infraestructura de cientos de miles de servidores. El proyecto Cilium, que usa Kubernetes en Google Cloud, AWS y Azure, está construido enteramente sobre eBPF.

    1. El pipeline de un programa eBPF

    2. Mapas: la memoria persistente de eBPF

    Los programas eBPF son stateless por diseño. La comunicación de estado entre el kernel y userspace se hace a través de BPF maps: estructuras de datos en el kernel accesibles desde ambos lados mediante file descriptors.

    3. Tipos de programas eBPF

    3.1 XDP: procesamiento de paquetes antes que el kernel

    4. Escribir programas eBPF con libbpf y CO-RE

    4.1 Primer programa: contar syscalls por PID

    5. El ecosistema de herramientas

    5.1 bpftrace: scripting de alto nivel para tracing

    5.2 BCC: herramientas listas para usar

    6. Performance y limitaciones

    Conclusión

    eBPF representa un cambio de paradigma en cómo interactuamos con el kernel de Linux. Durante décadas, extender el kernel significaba escribir módulos en C, arriesgarse a desestabilizar el sistema, y reiniciar servidores. eBPF cambia eso completamente: programas verificados formalmente, cargados en caliente, con overhead de nanosegundos, y que desaparecen sin dejar rastro cuando ya no se necesitan.

    unfantasmaenelsistema.com | Seguridad, sistemas y todo lo que no debería funcionar (pero funciona)

    Resumen de privacidad

    Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.