Red Hat Training

A Red Hat training course is available for RHEL 8

9.2. Filtrado de paquetes

9.2.1. nftables sustituye a iptables como marco de filtrado de paquetes de red por defecto

El marco de trabajo nftables proporciona facilidades de clasificación de paquetes y es el sucesor designado de las herramientas iptables, ip6tables, arptables, y ebtables. Ofrece numerosas mejoras en cuanto a comodidad, características y rendimiento con respecto a las anteriores herramientas de filtrado de paquetes, sobre todo:

  • tablas de búsqueda en lugar de procesamiento lineal
  • un único marco para los protocolos IPv4 y IPv6
  • reglas aplicadas atómicamente en lugar de buscar, actualizar y almacenar un conjunto completo de reglas
  • soporte para la depuración y el rastreo en el conjunto de reglas (nftrace) y la supervisión de los eventos de rastreo (en la herramienta nft )
  • sintaxis más coherente y compacta, sin extensiones específicas de protocolo
  • una API Netlink para aplicaciones de terceros

Al igual que iptables, nftables utiliza tablas para almacenar cadenas. Las cadenas contienen reglas individuales para realizar acciones. La herramienta nft sustituye a todas las herramientas de los anteriores marcos de filtrado de paquetes. La biblioteca libnftables puede utilizarse para la interacción de bajo nivel con nftables Netlink API sobre la biblioteca libmnl.

Las herramientas iptables, ip6tables, ebtables y arptables son reemplazadas por sustitutos basados en nftables con el mismo nombre. Mientras que el comportamiento externo es idéntico al de sus homólogas heredadas, internamente utilizan nftables con los módulos del kernel netfilter heredados a través de una interfaz de compatibilidad cuando es necesario.

El efecto de los módulos en el conjunto de reglas nftables puede observarse utilizando el comando nft list ruleset. Dado que estas herramientas añaden tablas, cadenas y reglas al conjunto de reglas nftables, tenga en cuenta que las operaciones del conjunto de reglas nftables, como el comando nft flush ruleset, podrían afectar a los conjuntos de reglas instalados mediante los comandos heredados anteriormente separados.

Para identificar rápidamente qué variante de la herramienta está presente, se ha actualizado la información de la versión para incluir el nombre del back-end. En RHEL 8, la herramienta iptables basada en nftables imprime la siguiente cadena de versión:

$ iptables --version
iptables v1.8.0 (nf_tables)

Para comparar, se imprime la siguiente información de la versión si la herramienta iptables está presente:

$ iptables --version
iptables v1.8.0 (legacy)