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.
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
Carga
xdp-filter
para procesar los paquetes entrantes en una determinada interfaz, comoenp1s0
:#
xdp-filter load enp1s0
Por defecto,
xdp-filter
utiliza la política deallow
, 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, comotcp
,ipv4
, oethernet
. 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.
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 manualxdp-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.