Rete informatica
nftables replaces iptables as the default network packet filtering framework
Il framework nftables`fornisce funzionalità di classificazione dei pacchetti ed è il successore designato degli strumenti `iptables, ip6tables, arptables`ed `ebtables. Offre numerosi miglioramenti in termini di praticità, funzionalità e prestazioni rispetto ai precedenti strumenti di filtraggio dei pacchetti, in particolare:
-
Tabelle di ricerca (lookup tables) invece dell’elaborazione lineare.
-
Un framework unico sia per il protocollo IPv4 che per il protocollo IPv6.
-
Le regole vengono applicate tutte atomicamente invece di recuperare, aggiornare e memorizzare un ruleset completo.
-
Supporto per il debug e il tracciamento nel set di regole (
nftrace) e per il monitoraggio degli eventi di traccia (nello strumentonft). -
Sintassi più coerente e compatta, senza estensioni specifiche per i protocolli.
-
Un’API Netlink per applicazioni di terze parti.
Analogamente a iptables, nftables utilizza delle tabelle per memorizzare le catene (chain). Le catene contengono le singole regole per eseguire le azioni. Lo strumento nft sostituisce tutti i tool dei precedenti framework di filtraggio dei pacchetti. La libreria libnftables può essere utilizzata per l’interazione a basso livello con l’API Netlink di nftables tramite la libreria libmnl.
Gli strumenti iptables, ip6tables, ebtables e arptables sono sostituiti da versioni alternative basate su nftables con lo stesso nome. Sebbene il comportamento esterno sia identico a quello delle controparti legacy, internamente utilizzano nftables con i moduli kernel legacy di netfilter attraverso un’interfaccia di compatibilità dove richiesto.
L’effetto dei moduli sul set di regole `nftables`può essere osservato utilizzando il comando nft list ruleset. Poiché questi strumenti aggiungono tabelle, catene e regole al set di regole nftables, è bene tenere presente che le operazioni sul set di regole nftables, come il comando nft flush ruleset, potrebbero influenzare anche i set di regole installati utilizzando i comandi legacy precedentemente separati.
Per identificare rapidamente quale variante dello strumento è presente, le informazioni sulla versione sono state aggiornate per includere il nome del back-end. In Fedora 32, lo strumento `iptables`basato su nftables stampa la seguente stringa di versione:
$ iptables --version
iptables v1.8.4 (nf_tables)
A titolo di confronto, se è presente lo strumento `iptables`legacy, vengono stampate le seguenti informazioni sulla versione:
$ iptables --version
iptables v1.8.4 (legacy
Per ulteriori informazioni, consultare i link: https://fedoraproject.org/wiki/Changes/iptables-nft-default e https://wiki.nftables.org/wiki-nftables/index.php/Legacy_xtables_tools.
Want to help? Learn how to contribute to Fedora Docs ›