Réseau
nftables remplace iptables comme cadriciel de filtrage de paquets réseau par défaut
Le cadriciel nftables
fournit des facilités de classification des paquets et est le successeur désigné des outils iptables
, ip6tables
, arptables
et ebtables
. Il offre de nombreuses améliorations en termes de commodité, de fonctionnalités et de performances par rapport aux outils de filtrage de paquets précédents, notamment :
-
Tables de recherche au lieu d’un traitement linéaire.
-
Un cadriciel unique pour les protocoles IPv4 et IPv6.
-
Les règles sont toutes appliquées de manière atomique au lieu d’aller chercher, de mettre à jour et de stocker un jeu de règles complet.
-
Support pour le débogage et le traçage dans le jeu de règles (
nftrace
) et la surveillance des évènements de traçage (dans l’outilnft
). -
Syntaxe plus cohérente et plus compacte, pas d’extensions spécifiques au protocole.
-
Une API Netlink pour les applications tierces.
Tout comme pour iptables
, nftables
utilise des tables pour stocker les chaines. Les chaines contiennent des règles individuelles pour effectuer des actions. L’outil nft
remplace tous les outils des précédents cadriciels de filtrage de paquets. La bibliothèque libnftables
peut être utilisée pour une interaction de bas niveau avec l’API Netlink nftables
par le biais de la bibliothèque libmnl
.
Les outils iptables
, ip6tables
, ebtables
et arptables
sont remplacés par des outils basés sur nftables et portant le même nom. Le comportement est identique à celui de leurs homologues existants, mais en interne ils utilisent nftables
avec les anciens modules du noyau netfilter
par le biais d’une interface de compatibilité lorsque cela est nécessaire.
L’effet des modules sur le jeu de règles nftables
peut être observé en utilisant la commande nft list ruleset
. Comme ces outils ajoutent des tables, des chaines et des règles au jeu de règles nftables
, il faut savoir que les opérations sur le jeu de règles nftables
, comme la commande nft flush ruleset
, peuvent affecter les jeux de règles installés à l’aide des anciennes commandes séparées.
Pour identifier rapidement quelle variante de l’outil est présente, les informations sur la version ont été mises à jour pour inclure le nom du back-end. Dans Fedora 32, l’outil iptables
basé sur nftables imprime la chaine de version suivante :
$ iptables --version
iptables v1.8.4 (nf_tables)
À titre de comparaison, les informations suivantes sont imprimées si l’ancien outil iptables
est présent :
$ iptables --version
iptables v1.8.4 (legacy)
Pour plus d’informations, consultez les pages https://fedoraproject.org/wiki/Changes/iptables-nft-default et https://wiki.nftables.org/wiki-nftables/index.php/Legacy_xtables_tools.
Want to help? Learn how to contribute to Fedora Docs ›