Was ist Nftables: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 30: | Zeile 30: | ||
Einige Hauptunterschiede zwischen nftables und iptables aus Benutzersicht sind: | Einige Hauptunterschiede zwischen nftables und iptables aus Benutzersicht sind: | ||
| − | + | ;nftables verwendet eine neue Syntax | |
*Das Befehlszeilentool „iptables“ verwendet einen getopt_long()-basierten Parser, bei dem Schlüsseln immer ein doppeltes Minus vorangestellt wird, z. ''--key'' oder ein einzelnes Minus, zB. ''-p tcp''. | *Das Befehlszeilentool „iptables“ verwendet einen getopt_long()-basierten Parser, bei dem Schlüsseln immer ein doppeltes Minus vorangestellt wird, z. ''--key'' oder ein einzelnes Minus, zB. ''-p tcp''. | ||
*Im Gegensatz dazu verwendet nftables eine kompakte Syntax, die von ''tcpdump'' inspiriert ist. | *Im Gegensatz dazu verwendet nftables eine kompakte Syntax, die von ''tcpdump'' inspiriert ist. | ||
| − | + | ;Tabellen und Ketten sind vollständig konfigurierbar | |
| + | *''iptables'' hat mehrere vordefinierte Tabellen und Basisketten, die alle registriert sind, auch wenn Sie nur eine davon benötigen. | ||
| + | *Es gab Berichte über sogar ungenutzte Basenketten, die die Leistung beeinträchtigten. | ||
| + | *Bei nftables gibt es keine vordefinierten Tabellen oder Ketten. | ||
| + | *Jede Tabelle ist explizit definiert und enthält nur die Objekte (Ketten, Sets, Maps, Flowtables und zustandsbehaftete Objekte), die Sie ihr explizit hinzufügen. | ||
| + | *Jetzt registrieren Sie nur die Basisketten, die Sie benötigen. | ||
| + | *Sie wählen Tabellen- und Kettennamen sowie Netzfilter-Hook-Prioritäten, die Ihre spezifische Paketverarbeitungspipeline effizient implementieren. | ||
| − | + | ;Eine einzelne nftables-Regel kann mehrere Aktionen ausführen | |
| + | *Anstelle der in iptables verwendeten Übereinstimmungen und einzelnen Zielaktionen besteht eine nftables-Regel aus null oder mehr Ausdrücken, gefolgt von einer oder mehreren Anweisungen. | ||
| + | *Jeder Ausdruck testet, ob ein Paket mit einem bestimmten Payload-Feld oder Paket-/Flow-Metadaten übereinstimmt. | ||
| + | *Mehrere Ausdrücke werden linear von links nach rechts ausgewertet: Wenn der erste Ausdruck übereinstimmt, wird der nächste Ausdruck ausgewertet und so weiter. | ||
| + | *Wenn wir den letzten Ausdruck erreichen, stimmt das Paket mit allen Ausdrücken in der Regel überein, und die Anweisungen der Regel werden ausgeführt. | ||
| + | *Jede Anweisung führt eine Aktion aus, z.B. das Setzen der netfilter-Markierung, das Zählen des Pakets, das Protokollieren des Pakets oder das Ausgeben eines Urteils, z.B. das Akzeptieren oder Verwerfen des Pakets oder das Springen zu einer anderen Kette. | ||
| + | *Wie bei Ausdrücken werden mehrere Anweisungen linear von links nach rechts ausgewertet: Eine einzelne Regel kann mehrere Aktionen ausführen, indem mehrere Anweisungen verwendet werden. | ||
| + | *Beachten Sie, dass eine Urteilsaussage naturgemäß die Regel beendet. | ||
| − | + | ;Kein eingebauter Zähler pro Kette und Regel | |
| + | *In nftables sind Zähler optional, Sie können sie nach Bedarf aktivieren. | ||
| − | + | ;Bessere Unterstützung für dynamische Regelsatzaktualisierungen | |
| + | *Im Gegensatz zu dem monolithischen Blob, der von iptables verwendet wird, werden nftables-Regelsätze intern in einer verknüpften Liste dargestellt. | ||
| + | *Jetzt lässt das Hinzufügen oder Löschen einer Regel den Rest des Regelsatzes unberührt, was die Verwaltung interner Zustandsinformationen vereinfacht. | ||
| − | + | ;Vereinfachte Dual-Stack-IPv4/IPv6-Administration | |
| + | *Mit der nftables inet-Familie können Sie Basisketten registrieren, die sowohl IPv4- als auch IPv6-Datenverkehr sehen. | ||
| + | *Sie müssen sich nicht mehr auf Skripte verlassen, um Ihren Regelsatz zu duplizieren. | ||
| + | =Links= | ||
*https://wiki.nftables.org/wiki-nftables/index.php/What_is_nftables%3F | *https://wiki.nftables.org/wiki-nftables/index.php/What_is_nftables%3F | ||
Aktuelle Version vom 19. Januar 2023, 08:01 Uhr
Was ist nftables?
- nftables ist das Paketklassifizierungs-Framework des modernen Linux-Kernels.
- 'Es besteht aus neuem Code sollte es anstelle des Legacyframeworks ip(6)tables verwenden
- {ip,ip6,arp,eb}_tables (xtables)-Infrastruktur.
- Für vorhandene Codebasen, die noch nicht konvertiert wurden, wird die Legacy-xtables-Infrastruktur ab 2021 weiterhin beibehalten.
- Automatisierte Tools unterstützen den Konvertierungsprozess von xtables zu nftables.
nftables auf den Punkt gebracht:
- Es ist in Linux-Kernels >= 3.13 verfügbar.
- Es kommt mit einem neuen Befehlszeilenprogramm nft, dessen Syntax sich von iptables unterscheidet.
- Es enthält auch eine Kompatibilitätsschicht, mit der Sie iptables-Befehle über das neue nftables-Kernel-Framework ausführen können.
- Es bietet eine generische Set-Infrastruktur, mit der Sie Karten und Verkettungen erstellen können.
- Sie können diese neuen Strukturen verwenden, um Ihren Regelsatz in einem mehrdimensionalen Baum anzuordnen,
- Dieser hat die Anzahl der Regeln, die überprüft werden müssen, drastisch reduziert
Warum nftables?
- Wir mögen schließlich iptables, dieses Tool hat uns geholfen.
- Es wird es wahrscheinlich in vielen Bereitstellungen noch eine Weile tun
- Es enthält mehr als hundert Erweiterungen, die in den letzten 15 Jahren beigesteuert wurden!.
- Dennoch leidet das iptables-Framework an Einschränkungen, die nicht einfach umgangen werden können:
- Vermeiden Sie Codeduplizierung und Inkonsistenzen
- Schnellere Paketklassifizierung durch verbesserte generische Set- und Map-Infrastruktur.
- Vereinfachte Dual-Stack-IPv4/IPv6-Administration durch die neue inet-Familie,
- Mit dieser Sie Basisketten registrieren können, die sowohl IPv4- als auch IPv6-Verkehr sehen.
- Bessere Unterstützung für dynamische Regelsatzaktualisierungen.
- Stellen Sie eine Netlink-API für Anwendungen von Drittanbietern bereit, genau wie andere Linux-Netzwerk- und Netfilter-Subsysteme.
- Adressieren Sie Syntaxinkonsistenzen und stellen Sie eine schönere und kompaktere Syntax bereit.
Hauptunterschiede zu iptables
Einige Hauptunterschiede zwischen nftables und iptables aus Benutzersicht sind:
- nftables verwendet eine neue Syntax
- Das Befehlszeilentool „iptables“ verwendet einen getopt_long()-basierten Parser, bei dem Schlüsseln immer ein doppeltes Minus vorangestellt wird, z. --key oder ein einzelnes Minus, zB. -p tcp.
- Im Gegensatz dazu verwendet nftables eine kompakte Syntax, die von tcpdump inspiriert ist.
- Tabellen und Ketten sind vollständig konfigurierbar
- iptables hat mehrere vordefinierte Tabellen und Basisketten, die alle registriert sind, auch wenn Sie nur eine davon benötigen.
- Es gab Berichte über sogar ungenutzte Basenketten, die die Leistung beeinträchtigten.
- Bei nftables gibt es keine vordefinierten Tabellen oder Ketten.
- Jede Tabelle ist explizit definiert und enthält nur die Objekte (Ketten, Sets, Maps, Flowtables und zustandsbehaftete Objekte), die Sie ihr explizit hinzufügen.
- Jetzt registrieren Sie nur die Basisketten, die Sie benötigen.
- Sie wählen Tabellen- und Kettennamen sowie Netzfilter-Hook-Prioritäten, die Ihre spezifische Paketverarbeitungspipeline effizient implementieren.
- Eine einzelne nftables-Regel kann mehrere Aktionen ausführen
- Anstelle der in iptables verwendeten Übereinstimmungen und einzelnen Zielaktionen besteht eine nftables-Regel aus null oder mehr Ausdrücken, gefolgt von einer oder mehreren Anweisungen.
- Jeder Ausdruck testet, ob ein Paket mit einem bestimmten Payload-Feld oder Paket-/Flow-Metadaten übereinstimmt.
- Mehrere Ausdrücke werden linear von links nach rechts ausgewertet: Wenn der erste Ausdruck übereinstimmt, wird der nächste Ausdruck ausgewertet und so weiter.
- Wenn wir den letzten Ausdruck erreichen, stimmt das Paket mit allen Ausdrücken in der Regel überein, und die Anweisungen der Regel werden ausgeführt.
- Jede Anweisung führt eine Aktion aus, z.B. das Setzen der netfilter-Markierung, das Zählen des Pakets, das Protokollieren des Pakets oder das Ausgeben eines Urteils, z.B. das Akzeptieren oder Verwerfen des Pakets oder das Springen zu einer anderen Kette.
- Wie bei Ausdrücken werden mehrere Anweisungen linear von links nach rechts ausgewertet: Eine einzelne Regel kann mehrere Aktionen ausführen, indem mehrere Anweisungen verwendet werden.
- Beachten Sie, dass eine Urteilsaussage naturgemäß die Regel beendet.
- Kein eingebauter Zähler pro Kette und Regel
- In nftables sind Zähler optional, Sie können sie nach Bedarf aktivieren.
- Bessere Unterstützung für dynamische Regelsatzaktualisierungen
- Im Gegensatz zu dem monolithischen Blob, der von iptables verwendet wird, werden nftables-Regelsätze intern in einer verknüpften Liste dargestellt.
- Jetzt lässt das Hinzufügen oder Löschen einer Regel den Rest des Regelsatzes unberührt, was die Verwaltung interner Zustandsinformationen vereinfacht.
- Vereinfachte Dual-Stack-IPv4/IPv6-Administration
- Mit der nftables inet-Familie können Sie Basisketten registrieren, die sowohl IPv4- als auch IPv6-Datenverkehr sehen.
- Sie müssen sich nicht mehr auf Skripte verlassen, um Ihren Regelsatz zu duplizieren.