eBPF: Tudo gira em torno da observabilidade

Ecossistema F5 | 14 de junho de 2022


De vez em quando, uma tecnologia interessante chega a um ponto de inflexão em que as necessidades reais dos negócios convergem com os pontos fortes dessa tecnologia. Isso faz com que ela seja não apenas viável, mas também prática. Berkeley Packet Filter (BPF) atingiu recentemente esse ponto entre os desenvolvedores Linux. O BPF é um ponto de interceptação e processamento extremamente eficiente em um host Linux, com potencial para chegar em breve aos servidores Windows. A variedade de dados disponíveis é enorme, contribuindo diretamente para a visibilidade de toda a pilha nas tarefas operacionais de Engenharia de Confiabilidade de Sites (SRE). Ele também se alinha naturalmente à solução de desafios relacionados à segurança e ao gerenciamento de tráfego. A variedade de pontos de integração é igualmente ampla, oferecendo uma gama atraente de pontos de acionamento úteis para aplicações BPF voltadas a especialistas em observabilidade, segurança e redes. O BPF é a tecnologia certa para viabilizar a observabilidade sem estourar o orçamento. E tudo começa com a observabilidade.

O design fundamental do BPF o torna um método praticamente tão eficiente quanto possível para realizar tarefas computacionais (US$ por watt). Melhor ainda, as cadeias de ferramentas geram o bytecode para você, permitindo que se concentre no resultado desejado, e não em programação de baixo nível semelhante à linguagem assembly. Como? Estas duas características de design fazem o BPF se destacar:

Design do conjunto de instruções

O design de software do BPF foi propositalmente inspirado no das arquiteturas modernas de CPU que estavam surgindo. Na verdade, a terminologia de processadores é usada porque descreve com precisão os elementos e o uso do BPF. O BPF tem registradores e instruções. Eles são projetados para serem processados diretamente pelas CPUs. Baseado no design do BSD Packet Filter (1992), o BPF é uma máquina de filtragem de captura de pacotes reformulada, mais adequada às atuais arquiteturas de CPU baseadas em registradores. Esse design ganhou um impulso natural em 2014, quando o “Enhanced Berkeley Packet Filter”, ou eBPF, foi lançado na versão v3.18 do kernel Linux. Nos primeiros anos após seu lançamento, era importante distinguir o eBPF do Classic Berkeley Packet Filter (cBPF). Hoje, essa distinção é menos relevante, pois todas as versões compatíveis do kernel incluem os aprimoramentos de 2014. Vale a pena destacá-los: registradores mais largos (a mudança de 32 para 64 bits permite realizar mais trabalho por linha de cache/ciclo de clock), mais registradores (a mudança de 2 para 10 permite um mapeamento mais direto entre os registradores das CPUs modernas e as ABIs do kernel) e alguns aprimoramentos adicionais no conjunto de instruções que tornam os programas BPF mais seguros e úteis.

Camada de Enlace

O BPF consiste em um ponto de captura de rede e um filtro de pacotes. O ponto de captura opera na camada de enlace de dados quando os pacotes chegam pela rede a uma determinada interface de rede. Ele copia os pacotes para que o filtro os examine. Esse ponto de inserção proporciona visibilidade total do caminho de rede do host Linux. Para o tráfego de entrada, isso ocorre antes que o processador do host comece a processá-lo; para o tráfego de saída, ocorre pouco antes de ele chegar ao meio físico para deixar o host. Este diagrama mostra o BPF interceptando o caminho dos pacotes de entrada na Camada de Enlace de Dados.

Caminho de entrada

A variedade de dados disponíveis é vasta, contribuindo diretamente para a visibilidade de toda a stack nas tarefas operacionais de SRE. Neste exemplo, abordamos alguns dos campos mais usados do cabeçalho IPv4.

Caminho de entrada

Usando esses dados, é possível definir políticas para personalizar a filtragem de pacotes. A política a seguir filtra pacotes TCP destinados a um endereço IP de destino específico.

O uso do eBPF para observabilidade oferece um benefício do tipo “pague um, leve dois”: os dados observados podem ser usados para outras finalidades além da observação, como roteamento de tráfego ou segurança.

Retomando o conjunto de dados que compartilhamos anteriormente, partes desse conjunto usadas para observar o caminho de entrada do tráfego em um host Linux também são úteis para outras finalidades. Por exemplo, o IP de origem, o IP de destino, o host de destino e a porta são úteis tanto para o roteamento do tráfego de entrada quanto para limitar o acesso.

Independentemente do uso, tudo começa com a cópia do pacote pelo ponto de captura BPF. Depois que a cópia é feita, os dados podem ser armazenados na memória (saiba mais sobre Mapas BPF) e, em seguida, exportados como um fluxo de telemetria, além de serem utilizados simultaneamente por outros programas BPF que especificam políticas e ações de filtragem. É nesse ponto que ocorre a ramificação da observabilidade para o gerenciamento de tráfego e a segurança. Para aproveitar a extrema eficiência do BPF, o ponto de partida é ter uma visão clara de quais dados são necessários e como eles são usados. No próximo post desta série, meu colega Muhammad Waseem Sarwar explorará as opções de programação BPF em vários pontos da pilha de rede do Linux.




Compartilhar

Sobre o autor

James Hendergart
James HendergartDiretor Sênior de Pesquisa Técnica | F5

Mais publicações de James Hendergart

Publicações relacionadas no blog

O estado da maturidade digital empresarial: a transformação digital ainda não terminou
Ecossistema F5 | 31/07/2024

O estado da maturidade digital empresarial: a transformação digital ainda não terminou

Explore como a IA impacta as empresas, as aplicações da IA generativa, as estratégias para modernizar as operações de TI e os benefícios da maturidade digital com a F5.

Como a IA generativa acelera a transformação digital
Ecossistema F5 | 26/03/2024

Como a IA generativa acelera a transformação digital

Veja como a IA generativa impulsiona a transformação digital nas empresas, acelerando tendências como a integração de APIs, os desafios dos modelos operacionais de TI híbrida e a adoção de AIOps.

Seis capacidades técnicas para acelerar a transformação digital
Ecossistema F5 | 05/01/2023

Seis capacidades técnicas para acelerar a transformação digital

As arquiteturas empresariais atuais carecem dos fatores necessários de agilidade, escalabilidade, segurança e observabilidade, essenciais para impulsionar a mudança tecnológica. No entanto, estas seis capacidades fundamentais ajudarão as empresas a gerenciar riscos e desafios ao longo de sua transformação digital.

Inverter a API é a transformação digital de que as empresas precisam para participar e competir em uma economia de APIs
Ecossistema F5 | 18/10/2022

Inverter a API é a transformação digital de que as empresas precisam para participar e competir em uma economia de APIs

As organizações detêm um valor latente — na forma de APIs internas — que precisam explorar para competir em uma economia de APIs. Embora os desafios técnicos e de segurança possam desestimular algumas delas, as empresas precisam reconhecer que inverter suas APIs permitirá liberar o valor da organização como plataforma.

A modernização da TI começa pela infraestrutura
Ecossistema F5 | 08/09/2022

A modernização da TI começa pela infraestrutura

O hardware e o software evoluíram rapidamente desde os primórdios da internet, mas, para aproveitar ao máximo os benefícios resultantes dessa evolução, as organizações precisam avaliar e modernizar sua infraestrutura e a entrega de aplicativos. Acelere os esforços de modernização com a nova F5 rSeries.