Kernel-Log – Was 3.13 bringt (2): Netzwerk

Der Kernel 3.13 enthält die neue Firewall-Infrastruktur Nftables, die mittelfristig Iptables und Co. ersetzen soll.

In Pocket speichern vorlesen Druckansicht 19 Kommentare lesen
Lesezeit: 12 Min.
Von
  • Thorsten Leemhuis
Inhaltsverzeichnis

Die wohl größte Neuerungen des im Januar erwarteten Linux-Kernel 3.13 ist das Netzwerk-Paketfilter-Subsystem Nftables. Mittelfristig soll diese Firewall-Technik die existierenden Paketfilter Iptables, Ip6tables, Arptables und Ebtables ablösen, bei denen die Unterstützung für IPv4, IPV6, ARP und Ethernet Bridging direkt im Kernel-Code steckt. Das Nftables-Subsystem hingegen ist protokollunabhängig, denn es ist im wesentlichen eine simple virtuelle Machine, bei der Bytecode die Filterarbeiten erledigt.

Dieser Bytecode wird durch Userspace-Software wie dem Nftables-Programm Nftables-Tool nft erstellt und über ein Netlink-API in den Kernel geladen. Statt im Kernel steckt die Unterstützung für IPv4 und Co. so in nft, das allerdings eine andere Syntax aufweist als iptables und ip6tables, die bislang zur Konfiguration von Linux-Firewalls dienen. Um Abwärtskompatibilität zu bieten und den Übergang auf Nftables zu erleichtern, haben die Entwickler Varianten dieser beiden Programme erstellt, die aus bestehen Filterregeln Bytecode für das Nftables-Subsystem generieren.

Entwicklungsstand

In der Nacht von Sonntag auf Montag hat Linus Torvalds die vier Vorabversion von Linux 3.13 veröffentlicht. In der Freigabe-Mail zeigt er sich leicht ungehalten über die Vielzahl von Änderungen, die den RC4 verhältnismäßig groß gemacht haben.

Die Protokoll-Implementierung im Userspace soll die Wartung des Kernel-Codes erleichtern und einige Beschränkungen beseitigen, die mit dem bisherigen Ansatz nur schwer zu lösen waren. Dadurch soll mit Nftables etwa das Ändern von Filter-Regeln im Betrieb nicht nur zuverlässiger, sondern auch erheblich schneller funktionieren; das soll insbesondere für Firewalls mit einem großen Regelsatz von Vorteil sein.

Wie die bisherigen Paketfilter und deren Userland-Tools stammt auch Nftables von den Entwicklern des Netfilter-Projekts. Die Integration in den Kernel wurde maßgeblich von Pablo Neira Ayuso vorangetrieben; er hat bei seiner Arbeit auf Code von Patrick McHardy zurück gegriffen, der Nftables 2009 gestartet hat. Es konkurrierte eine Weile mit Xtables2, dessen Entwicklung allerdings eingestellt wurde, als sich abzeichnete, dass Nftables mehr Unterstützer hatte.

Weitere Details zu Nftables liefert dessen Homepage und ein LWN.net-Artikel. Einen anderen Blick liefern Präsentationsfolien und Videoaufzeichnung eines Nftables-Vortrags, den Netfilter-Entwickler Eric Leblond vor wenigen Monaten gegeben hat. Von ihm stammt auch das "nftables quick howto", das die Grundfunktionen von Nftables erläutert.

Der Netzwerk-Stack von Linux 3.13 nutzt nun standardmäßig TCP Fast Open (TFO). Die TCP-Erweiterung, die den HTTP-Verbindungsaufbau beschleunigen kann und beim IETF noch Draft-Status hat, wird Client-seitig seit Linux 3.6 unterstützt; der Server-Code folgte bei 3.7. Auch Chromium und der von ihm abgeleitete Browser Chrome beherrschen die TCP-Erweiterung.

Der Tg3-Treiber unterstützt jetzt die Broadcoms Tigon3-Chips 57764, 57765, 57787, 57782 und 57786. Linux 3.11 spricht auch Intels WLAN-Module der Serie Wireless N 7265.

Der Linux-Kernel 3.13 beherrscht das Protokoll High-availability Seamless Redundancy (HSR), mit dem sich ein hochverfügbare Netzwerk-Verbindung einrichten lässt, und bietet IPsec Virtual Tunnel Interfaces (VTI), die die Datenströme via IPv6 tunneln.

Ipset unterstützt nun Netzwerk-Namespaces; zudem kann es die Parameter von Netzwerken mit IPv4- und IPv6-Adressen als Paar speichern (1, 2).

Der Kernel-Code für Near field communication (NFC) beherrscht jetzt nicht nur NFC-A-Übertragungen mit 106 Kbit/s, sondern auch das im Zahlungsverkehr genutzte Secure Element IO API.

Über die neue Socket-Option SO_MAX_PACING_RATE können Anwendungen das Tempo vorgeben, mit der der Kernel die Daten überträgt; das funktioniert allerdings nur mit dem bei Linux 3.12 intergrierten Fair Queue (FQ) Packet Scheduler.

Die über das Userspace-Werkzeug tc ("Traffic Control") konfigurierte Kernel-Infrastruktur zur Regelung des Netzwerkverkehrs kann Pakete jetzt mit Hilfe des Berkeley Packet Filter und seinem Just in Time Compiler klassifizieren, die Linux seit 3.0 mitbringt; das soll flexibler sein als mit dem weiterhin unterstützten "ematch".

Einige weitere Änderungen finden Sie auf der nächsten Seite oder über die drei Merge-Commits, mit denen die wesentlichsten Neuerungen am Netzwerkcode zum Kernel stießen (1, 2, 3).