nftables vs iptables : performances réseau et filtrage sous le capot
On présente souvent nftables comme un iptables à la syntaxe rangée. C’est passer à côté de l’essentiel : sous le capot, ce n’est plus une pile de modules qui inspecte les paquets un à un, mais une petite machine virtuelle qui évalue des règles compilées dans le noyau. Le gain n’est pas cosmétique · il est sur le chemin de données, là où chaque paquet compte.
Avec iptables, mille adresses à bloquer, c’est jusqu’à mille comparaisons par paquet : le coût grimpe avec la liste, linéairement. nftables charge ces mêmes adresses dans un set indexé et tranche en une seule recherche, quelle que soit la taille · et une map va plus loin, en associant directement une valeur à une action sans chaîner les règles. Sur un jeu de règles qui grossit, l’écart ne se discute pas, il se mesure au débit.
table inet filter {
set trusted_ips { type ipv4_addr; elements = { 10.0.1.10, 10.0.1.20 } }
chain input {
type filter hook input priority 0; policy drop;
ip saddr @trusted_ips tcp dport { 22, 443 } accept
}
}