Red Hat Training

A Red Hat training course is available for RHEL 8

Capítulo 46. Uso de xdp-filter para el filtrado de tráfico de alto rendimiento para evitar ataques DDoS

En comparación con los filtros de paquetes, como nftables, Express Data Path (XDP) procesa y elimina los paquetes de red justo en la interfaz de red. Por lo tanto, XDP determina el siguiente paso para el paquete antes de que llegue a un cortafuegos o a otras aplicaciones. Como resultado, los filtros XDP requieren menos recursos y pueden procesar paquetes de red a un ritmo mucho mayor que los filtros de paquetes convencionales para defenderse de los ataques de denegación de servicio distribuidos (DDoS). Por ejemplo, durante las pruebas, Red Hat dejó caer 26 millones de paquetes de red por segundo en un solo núcleo, lo que es significativamente mayor que la tasa de caída de nftables en el mismo hardware.

La utilidad xdp-filter permite o descarta los paquetes de red entrantes utilizando XDP. Puede crear reglas para filtrar el tráfico hacia o desde determinados:

  • Direcciones IP
  • Direcciones MAC
  • Puertos

Tenga en cuenta que, aunque xdp-filter tiene una tasa de procesamiento de paquetes significativamente mayor, no tiene las mismas capacidades que, por ejemplo, nftables. Considere xdp-filter como una utilidad conceptual para demostrar el filtrado de paquetes usando XDP. Además, puede utilizar el código de la utilidad para comprender mejor cómo escribir sus propias aplicaciones XDP.

Importante

Red Hat proporciona la utilidad xdp-filter como una Muestra de Tecnología no soportada.

46.1. Descartar paquetes de red que coincidan con una regla de xdp-filter

Esta sección describe cómo utilizar xdp-filter para soltar paquetes de red:

  • A un puerto de destino específico
  • Desde una dirección IP específica
  • Desde una dirección MAC específica

La política allow de xdp-filter define que todo el tráfico está permitido y el filtro sólo deja caer los paquetes de red que coinciden con una regla particular. Por ejemplo, utilice este método si conoce las direcciones IP de origen de los paquetes que desea descartar.

Requisitos previos

  • El paquete xdp-tools está instalado.
  • Un controlador de red que soporta programas XDP.

Procedimiento

  1. Carga xdp-filter para procesar los paquetes entrantes en una determinada interfaz, como enp1s0:

    # xdp-filter load enp1s0

    Por defecto, xdp-filter utiliza la política de allow, y la utilidad sólo elimina el tráfico que coincide con cualquier regla.

    Opcionalmente, utilice la opción -f feature para activar sólo determinadas funciones, como tcp, ipv4, o ethernet. Cargar sólo las funciones necesarias en lugar de todas ellas aumenta la velocidad de procesamiento del paquete. Para activar varias funciones, sepárelas con una coma.

    Si el comando falla con un error, el controlador de red no soporta los programas XDP.

  2. Añade reglas para descartar los paquetes que coincidan con ellas. Por ejemplo:

    • Para dejar caer los paquetes entrantes al puerto 22, introduzca:

      # xdp-filter port 22

      Este comando añade una regla que coincide con el tráfico TCP y UDP. Para que coincida sólo con un protocolo en particular, utilice la opción -p protocol opción.

    • Para descartar los paquetes entrantes de 192.0.2.1, introduzca:

      # xdp-filter ip 192.0.2.1 -m src

      Tenga en cuenta que xdp-filter no admite rangos de IP.

    • Para descartar los paquetes entrantes de la dirección MAC 00:53:00:AA:07:BE, introduzca:

      # xdp-filter ether 00:53:00:AA:07:BE -m src

Pasos de verificación

  • Utilice el siguiente comando para mostrar las estadísticas sobre los paquetes descartados y permitidos:

    # xdp-filter status

Recursos adicionales

  • Para más detalles sobre xdp-filter, consulte la página de manual xdp-filter(8).
  • Si usted es un desarrollador y está interesado en el código de xdp-filter, descargue e instale el correspondiente RPM de origen (SRPM) desde el Portal del Cliente de Red Hat.