Upgrade to Pro — share decks privately, control downloads, hide ads and more …

eBPF e inovações em sistemas operacionais

eBPF e inovações em sistemas operacionais

eBPF é uma máquina virtual no kernel que permite a execução de código no espaço do kernel. Nesta palestra vamos apresentar sua história, arquitetura, como funciona um programa eBPF, e suas várias aplicações para observabilidade, segurança, e redes. Entenderemos como esta tecnologia tem alavancado inovações nos últimos anos e despertado interesses na academia e na indústria.

Palestra apresentada no FLISOL 2023 em Belo Horizonte.

Lucas Bleme

April 14, 2023
Tweet

More Decks by Lucas Bleme

Other Decks in Technology

Transcript

  1. Uma VM que permite executar código no Kernel. “extended Berkeley

    Packet Filter” BPF introduzido no Linux Kernel 2.1.75 em 1997 eBPF introduzido em Março de 2014 (Daniel Borkmann) O que é eBPF? https://lore.kernel.org/netdev/[email protected]
  2. Suporte nativo VS kernel modules :( Alterar o código fonte

    do kernel ou escrever um kernel module (1) Esperar anos até que a nova versão seja largamente utilizada (2) Prover fixes regularmente para novas versões do kernel Preocupação com limites de segurança
  3. Programa eBPF Subset de C (versão restrita) Sem loops, printf,

    variáveis globais… Orientado a eventos (syscalls, ingresso de pacotes, tracepoints) Pode ser carregado no kernel usando C, Go, Python e Rust
  4. Casos de uso Networking balanceamento de carga, filtro de pacotes,

    roteamento. Segurança monitorar system calls, fluxos de rede, prevenir ações não autorizadas. Observabilidade identificar fluxos de rede, analisar desempenho, detectar falhas.
  5. Casos de uso observabilidade e desempenho https://www.brendangregg.com/Slides/reInvent2019_BPF_Performance_Analysis/ “Flow Exporter uses

    eBPF tracepoints to capture TCP flows at near real time. At much less than 1% of CPU.” https://netflixtechblog.com/how-netflix-uses-ebpf-flow-logs-at-scale-for-network-insight-e3ea997dca96
  6. cillium eBPF-based Networking, Security, and Observability bpftrace High-level tracing language

    for Linux eBPF (awk like) BumbleBee OCI compliant eBPF tooling Falco Cloud Native Runtime Security pwru eBPF-based Linux kernel network packet tracer Projetos
  7. Conclusão e o Futuro Ferramental ainda é pouco amigável, requer

    conhecimentos de SO (bcc, libbpf, libbpf-bootrstrap, running eBPF in docker containers) Impacto em múltiplas camadas do SO “The next wave of SDN” Dan Wendlandt (isovalent & nicira) Distribuição, interoperabilidade, debugging (bumblebee, ebpf-for-windows, edb)