eBPF: Todo gira en torno a la observabilidad

Ecosistema de F5 | 14 de junio de 2022


De vez en cuando, una tecnología interesante alcanza un punto de inflexión en el que las necesidades empresariales reales convergen con sus puntos fuertes. Esto hace que la tecnología no solo sea viable, sino también práctica. Berkeley Packet Filter (BPF) ha alcanzado recientemente este punto entre los desarrolladores de Linux. BPF es un punto de interceptación y procesamiento extremadamente eficiente en un host Linux que promete llegar a los servidores Windows más pronto que tarde. La variedad de datos disponibles es enorme, lo que contribuye directamente a la visibilidad de toda la pila para las tareas operativas de ingeniería de fiabilidad de sitios (SRE). Además, se adapta de forma natural a la resolución de retos relacionados con la seguridad y la gestión del tráfico. La variedad de puntos de enganche es igualmente amplia y ofrece un atractivo conjunto de puntos de activación útiles para aplicaciones BPF dirigidas a especialistas en observabilidad, seguridad y redes. BPF es la tecnología adecuada para habilitar la observabilidad sin arruinarse. Y todo empieza con la observabilidad.

El diseño fundamental de BPF lo convierte en un método prácticamente tan eficiente como es posible para realizar tareas de computación (dólares por vatio). Y lo que es aún mejor: las cadenas de herramientas generan el código de bytes por usted, para que pueda centrarse en el resultado deseado y no en la programación de bajo nivel similar al lenguaje ensamblador. ¿Cómo lo consigue? Estas dos características de diseño hacen que BPF destaque:

Diseño del conjunto de instrucciones

El diseño de software de BPF se inspiró deliberadamente en el de las arquitecturas de CPU modernas que estaban surgiendo. De hecho, se utiliza terminología propia de los procesadores porque describe con precisión los elementos y el uso de BPF. BPF dispone de registros e instrucciones, diseñados para que las CPU los procesen directamente. Basado en el diseño de BSD Packet Filter (1992), BPF es una máquina de filtrado para la captura de paquetes rediseñada y mejor adaptada a las actuales arquitecturas de CPU basadas en registros. Este diseño recibió un impulso natural en 2014, cuando «Enhanced Berkeley Packet Filter», o eBPF, se publicó en la versión v3.18 del kernel de Linux. En los primeros años tras su lanzamiento, era importante distinguir eBPF de Classic Berkeley Packet Filter (cBPF). Hoy en día, esta distinción es menos relevante, ya que todas las versiones compatibles del kernel incluyen las mejoras de 2014. Cabe destacar las siguientes: registros más amplios (pasar de 32 a 64 bits permite realizar más trabajo por línea de caché/ciclo de reloj), más registros (pasar de 2 a 10 permite una correspondencia más directa entre los registros de las CPU modernas y las ABI del kernel) y varias mejoras adicionales en el conjunto de instrucciones que hacen que los programas BPF sean más seguros y útiles.

Capa de enlace

BPF consta de una toma de red y un filtro de paquetes. La toma opera en la capa de enlace de datos cuando los paquetes llegan desde el medio físico a una interfaz de red determinada. Copia los paquetes para que el filtro los examine. Este punto de inserción le proporciona una visibilidad completa de la ruta de red del host Linux. En el caso del tráfico entrante, esto ocurre antes de que el procesador del host empiece a procesarlo; en el caso del tráfico saliente, justo antes de que llegue al medio físico para abandonar el host. Este diagrama muestra cómo BPF intercepta la ruta de los paquetes entrantes en la capa de enlace de datos.

Ruta de entrada

La variedad de datos disponibles es enorme, lo que contribuye directamente a la visibilidad integral necesaria para las tareas operativas de SRE. En este ejemplo, nos centramos en algunos de los campos más utilizados del encabezado IPv4.

Ruta de entrada

Con estos datos, se pueden definir políticas para personalizar el filtrado de paquetes. La siguiente política filtra los paquetes TCP destinados a una dirección IP de destino específica.

Aprovechar eBPF para la observabilidad ofrece una ventaja de tipo 2x1: los datos observados pueden utilizarse para otros fines además de la propia observación, como el enrutamiento del tráfico o la seguridad.

Volviendo al conjunto de datos que compartimos anteriormente, algunos de los datos utilizados para observar la ruta de entrada del tráfico de un host Linux también resultan útiles para otros fines. Por ejemplo, la IP de origen, la IP de destino, el host de destino y el puerto sirven tanto para enrutar el tráfico entrante como para limitar el acceso.

Independientemente del uso, todo comienza con la copia del paquete mediante el punto de captura BPF. Una vez realizada la copia, los datos pueden almacenarse en memoria (más información sobre mapas BPF) y, a continuación, exportarse como un flujo de telemetría, además de ser utilizados simultáneamente por otros programas BPF que especifican políticas y acciones de filtrado. Es aquí donde la observabilidad se ramifica hacia la gestión del tráfico y la seguridad. Para aprovechar la extraordinaria eficiencia de BPF, el punto de partida es tener una idea clara de qué datos se necesitan y cómo se utilizan. En la próxima publicación de esta serie, mi compañero Muhammad Waseem Sarwar analizará las opciones de programación BPF en distintos puntos de la pila de red de Linux.




Compartir

Sobre el autor

James Hendergart
James HendergartDirector sénior de Investigación Técnica | F5

Más artículos de James Hendergart

Artículos relacionados del blog

Proteger los endpoints de las API dificulta la seguridad de las API
Ecosistema de F5 | 30/01/2024

Proteger los endpoints de las API dificulta la seguridad de las API

Descubre las complejidades de la seguridad de las API, los retos a los que se enfrentan las organizaciones, la evolución de los ataques contra endpoints de API y la necesidad de políticas de seguridad adaptadas.

¿Qué es el sesgo de la IA y por qué es importante para TI?
Ecosistema de F5 | 22/02/2023

¿Qué es el sesgo de la IA y por qué es importante para TI?

Descubre los fundamentos del aprendizaje de la IA. Aprende cómo pueden surgir sesgos en la IA y qué riesgos plantean para las TI y la transformación digital.

Redefiniendo la ciberseguridad en el extremo de la nube distribuida con IA y telemetría en tiempo real
Ecosistema de F5 | 01/11/2021

Redefiniendo la ciberseguridad en el extremo de la nube distribuida con IA y telemetría en tiempo real

La transformación digital y la adopción de tecnologías en la nube están provocando cambios en las arquitecturas de las aplicaciones. Estos cambios introducen nuevas superficies de ataque, que son el objetivo de métodos de ataque avanzados, altamente organizados y con motivaciones económicas. Mediante el uso del framework Morpheus de NVIDIA, F5 está investigando técnicas para detectar estas amenazas avanzadas con telemetría en tiempo real y análisis basados en IA.

El papel de la nube en las aplicaciones nativas del edge
Ecosistema de F5 | 14/06/2021

El papel de la nube en las aplicaciones nativas del edge

No debería sorprender que, al igual que la aparición de la nube dio lugar a las aplicaciones nativas de la nube, el edge esté impulsando un conjunto de aplicaciones nativas del edge. Sin embargo, estas aplicaciones no residirán únicamente en el edge. Al mismo tiempo, están surgiendo nuevos patrones arquitectónicos que aprovechan las aplicaciones alojadas en la nube y en el centro de datos.

La creciente diversidad de ubicaciones y usuarios está impulsando a las empresas hacia el edge
Ecosistema de F5 | 03/05/2021

La creciente diversidad de ubicaciones y usuarios está impulsando a las empresas hacia el edge

En el contexto del ámbito de las aplicaciones, el término «usuario» siempre se ha referido a la entidad que interactúa con una aplicación. Del mismo modo que los cambios en las arquitecturas de las aplicaciones impulsan cambios en las tecnologías que permiten ofrecerlas y protegerlas, los cambios en la definición de usuario han provocado cambios en los lugares donde se despliegan las aplicaciones.

El edge está impulsando un renacimiento de las infraestructuras
Ecosistema de F5 | 26/10/2020

El edge está impulsando un renacimiento de las infraestructuras

A medida que las organizaciones aumentan la generación de datos y tratan de extraer valor empresarial de ellos, sin duda recurrirán a la analítica y la automatización basadas en la IA y el aprendizaje automático. Precisamente este tipo de cargas de trabajo son las que más se beneficiarían de una infraestructura optimizada y, sin embargo, hoy en día son las que menos probabilidades tienen de poder aprovecharla.