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
yIPv6
- 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 herramientanft
) - 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)