Netwerken

nftables vervangt iptables as het standaard netwerkpakketfiltering kader

Het nftables kader biedt pakketclassificatiefaciliteiten en het is de aangewezen opvolger van de iptables, ip6tables, arptables en ebtables gereedschappen. Het biedt talloze verbeteringen op het gebied van gemak, functies en prestaties ten opzichte van eerdere pakketfiltergereedschappen, met name:

  • Opzoektabellen in plaats van lineaire verwerking.

  • Een enkel raamwerk voor zowel de IPv4- als IPv6-protocollen.

  • Regels worden allemaal atomair toegepast in plaats van een volledige regelset op te halen, bij te werken en op te slaan.

  • Ondersteuning voor foutopsporing en tracering in de regelset (nftrace) en monitoring van trace-gebeurtenissen (in het nft gereedschap).

  • Meer consistente en compactere syntaxis, geen protocolspecifieke extensies.

  • Een Netlink-API voor toepassingen van derden.

Net als bij iptables gebruikt nftables tabellen voor het opslaan van kettingen. De kettingen bevatten individuele regels voor het uitvoeren van acties. Het nft gereedschap vervangt alle gereedschappen van de vorige pakketfilteframeworks. De libnftables bibliotheek kan worden gebruikt voor interactie op laag niveau met nftables Netlink API via de libmnl bibliotheek.

De iptables, ip6tables, ebtables en`arptables` gereedschappen worden vervangen door op nftables gebaseerde drop-in vervangingen met dezelfde naam. Hoewel het externe gedrag identiek is aan hun oudere tegenhangers, gebruiken ze intern nftables met legacy netfilter kernelmodules via een compatibiliteitsinterface waar nodig.

Het effect van de modules op de nftables regelset kan worden waargenomen met het nft list ruleset commando. Aangezien deze gereedschappen tabellen, kettingen en regels toevoegen aan de nftables regelset, moet je er rekening mee houden dat nftables regelsetbewerkingen, zoals het nft flush regelset commando, regelsets kunnen be├»nvloeden die zijn ge├»nstalleerd met de voorheen afzonderlijke verouderde commando’s.

Om snel te kunnen identificeren welke variant van het gereedschap aanwezig is, is versie informatie bijgewerkt met de back-end naam. In Fedora 32 drukt het op nftables gebaseerde gereedschap iptables de volgende versietekenreeks af:

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

Ter vergelijking: de volgende versie informatie wordt afgedrukt als het oude iptables gereedschap aanwezig is:

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