Kernel-Log – Was 3.12 bringt (2): Netzwerk
Linux kann nun auch als SYN-Proxy arbeiten und so SYN-Flooding-Attacken abwehren. Zum Kernel stießen Treiber für 40-Gigabit-Ethernet-Chips von Intel und einen USB-WLAN-Chip von Realtek.
- Thorsten Leemhuis
Der Firewall-Code von Linux 3.12 kann als SYN-Proxy konfiguriert werden, der die Auswirkungen von SYN-Flooding-Attacken reduziert (u. a. 1, 2). Typischerweise arbeitet ein SYN-Proxy als vorgeschalteter Server, der ausschließlich die SYN-Anfragen eingehender Verbindungen beantwortet; an den eigentlichen Server reicht der Proxy nur diejenigen Anfragen weiter, bei denen der Client ein ACK-Paket zurückliefert und so ernsthaftes Interesse bekundet.
Der Kernel-Code, auf den der für Software-Defined Networking (SDN) verwendete Open vSwitch zurückgreift, tunnelt nun auch Virtual Extensible LAN (VXLAN). Die neue "Mega flow implementation" verspricht einen Flaschenhals bei der Datenverarbeitung durch Open vSwitch zu beseitigen, was die Performance verbessern soll.
Entwicklungsstand
In der Nacht von Sonntag auf Montag hat Linus Torvalds die fünfte Vorabversion von Linux 3.12 veröffentlicht. In der Freigabe-Mail erwähnt er erfreut, die Entwicklung käme langsam zur Ruhe; Andeutungen zum Freigabetermin der Version 3.12 macht er keine. Da er und viele andere Kernel-Entwickler aber in der nächste Woche auf dem diesjährigen Kernel-Summit in Edinburgh zusammen kommen, ist es eher unwahrscheinlich, dass er Linux 3.12 vor dem 26. Oktober veröffentlicht.
Der VXLAN-Code von Linux 3.12 unterstützt jetzt auch IPv6. Zudem kann der Kernel nun die Paketgröße beim TCP Segmentation Offload (TSO) anpassen und bringt den "Fair Queue Packet Scheduler" mit; das soll "Bufferbloat"-Probleme beim Netzwerkverkehr vermeiden helfen, die durch zu starkes Puffern von Daten entstehen.
Der Kernel bringt jetzt einen Treiber für die noch nicht erhältlichen XL710-LAN-Chips von Intel mit, die offenbar 40-Gigabit-Ethernet (40GbE) beherrschen (u. a. 1, 2, 3). In den Staging-Bereich für unreifen Code wurde ein Treiber für den USB-WLAN-Chip RTL8188EU aufgenommen, den unter anderem TP-Link beim TL-WN725N einsetzt (u. a. 1, 2).
Durch eine Reihe von Änderungen unterstützt der WLAN-Stack des Kernels nun auch die Funkübertragung mit 5 oder 10 MHz schmalen Kanälen (1, 2, 3); diese bislang nur von einigen Treiber unterstützte Funktion ist für Unterstützung von 802.11p (Wireless Access in Vehicular Environments/WAVE) interessant und kann WLAN-Verbindungen robuster machen, bei denen die Funkstrecke recht lang ist.
Einige weitere Änderungen listet der Kommentar zum Merge-Commit, der die wichtigsten Änderungen am Netzwerkcode enthält.
Die kleinen Perlen
Die kleinen Perlen
Die folgenden Links führen zu einigen kleineren, aber keineswegs unbedeutende Änderungen:
Networking
- Pull networking changes from David Miller
- Pull networking fixes from David Miller
- [
DN1] Documentation: add networking/netdev-FAQ.txt - [
D] bonding: Make alb learning packet interval configurable - [
1] bonding: initial RCU conversion - [
] ip6tnl: add x-netns support - [
] ipip: add x-netns support - [
] ipv6: Add generic UDP Tunnel segmentation - [
D] ipv6: drop fragmented ndisc packets by default (RFC 6980) - [
D] ipv6: make unsolicited report intervals configurable for mld - [
DN] net/phy: micrel: Add OF configuration support for ksz9021 - [
1] net: add lower_dev_list to net_device and make a full mesh - [
] net: add ndo to get id of physical port of the device - [
] net: export physical port id via sysfs - [
D] net: ipv6: mld: document force_mld_version in ip-sysctl.txt - [
C] net: neighbour: Remove CONFIG_ARPD - [
D] net: packet: document available fanout policies - [
] net: qmi_wwan: add new Qualcomm devices - [
1] net: sctp: Add rudimentary infrastructure to account for control chunks - [
] net: sctp: probe: allow more advanced ingress filtering by mark - [
N1] net: sync some IP headers with glibc - [
] net: tcp_probe: add IPv6 support - [
] net: tcp_probe: allow more advanced ingress filtering by mark - [
N4] netfilter: nf_conntrack: make sequence number adjustments usuable without NAT - [
C D] netfilter: tproxy: remove nf_tproxy_core, keep tw sk assigned to skb - [
C 1] openvswitch: Add SCTP support - [
] openvswitch: Use RCU lock for dp dump operation. - [
] openvswitch: Use RCU lock for flow dump operation. - [
] openvswitch: Use non rcu hlist_del() flow table entry. - [
] openvswitch: optimize flow compare and mask functions - [
] openvswitch:: link upper device for port devices - [
C] pktgen: Require CONFIG_INET due to use of IPv4 checksum function - [
D] qdisc: allow setting default queuing discipline - [
] rtnl: export physical port id via RT netlink - [
] sctp: Pack dst_cookie into 1st cacheline hole for 64bit host - [
D 1] tcp: TCP_NOTSENT_LOWAT socket option - [
D] tcp: add tcp_syncookies mode to allow unconditionally generation of syncookies - [
] team: add support for sending multicast rejoins - [
N] vxlan: Extend vxlan handlers for openvswitch. - [
4] xen-netback: switch to NAPI + kthread 1:1 model
Ethernet
- [
D 1] Documentation/networking/: Update Intel wired LAN driver documentation - [
CI N2] USB2NET : SR9700 : One chip USB 1.1 USB2NET SR9700Device Driver Support - [
4] bnx2x: VF RSS support - PF side - [
1] bnx2x: VF RSS support - VF side - [
D] driver:net:stmmac: Disable DMA store and forward mode if platform data force_thresh_dma_mode is set. - [
N] drivers/net: enic: Add an interface for USNIC to interact with firmware - [
1] drivers/net: enic: Adding support for Cisco Low Latency NIC - [
] ethernet/arc/arc_emac: Fix huge delays in large file copies - [
I 1] ixgbe: add support for quad-port x520 adapter - [
2] net/usb/r8152: support aggregation - [
C DN2] net: Add MOXA ART SoCs ethernet driver - [
1] qlcnic: Add support for per port eswitch configuration - [
1] qlcnic: Enable Tx queue changes using ethtool for 82xx Series adapter. - [
1] qlcnic: Enable diagnostic test for multiple Tx queues. - [
4] qlcnic: Multi Tx queue support for 82xx Series adapter. - [
I 1] qlcnic: dcb: Add support for CEE Netlink interface. - [
1] qlcnic: dcb: Get DCB parameters from the adapter. - [
C N1] qlcnic: dcb: Query adapter DCB capabilities. - [
1] sfc: Add support for MCDI v2 - [
CI N9] sfc: Add support for Solarflare SFC9100 family - [
] sfc: Add support for new board sensors - [
] sfc: Generalise packet hash lookup to support EF10 RX prefix - [
C] sfc: Minimal support for 40G link speed - [
9] sfc: Update MCDI protocol definitions for EF10 - [
C] sh_eth: Add support for r8a7790 SoC - [
] tile: support TSO for IPv6 in tilegx network driver
Wifi
- [
1] ath10k: implement device recovery - [
] ath5k: enable support for 5 MHz and 10 MHz channels - [
] ath5k: report 5/10 MHz channels - [
] ath5k: set 5/10 MHz supported channels and fix duration - [
] ath9k: Support ANT diversity for WB225 - [
] ath9k: announce that ath9k supports 5/10 MHz - [
C] ath9k: make rfkill configurable - [
] ath9k: report 5/10 MHz channels - [
] ath9k: set 5/10 MHz supported channels and fix bitrate - [
] cfg80211/mac80211: use reduced txpower for 5 and 10 MHz - [
2] cfg80211/nl80211: Add packet coalesce support - [
C 2] iwlwifi: dvm: remove P2P support - [
1] iwlwifi: mvm: Add basic uAPSD client support - [
1] iwlwifi: mvm: Implement CQM offloading - [
1] iwlwifi: mvm: add support to the new FW time event API - [
1] mac80211: add APIs to allow keeping connections after WoWLAN - [
2] mac80211: add channel switch command and beacon callbacks - [
D] mac80211: add control port protocol TX control flag - [
] mac80211: add radiotap flag and handling for 5/10 MHz - [
] mac80211: allow scanning for 5/10 MHz channels in IBSS - [
1] mwifiex: add packet coalesce support - [
1] nl80211/cfg80211: add channel switch command - [
1] nl80211: add scan width to bss and scan request structs - [
] nl80211: allow 5 and 10 MHz channels for IBSS - [
2] rt2x00: rt2800lib: add TX power configuration for RT3593 - [
1] rt2x00: rt2800lib: add channel configuration for RF3053 - [
CI] rt2x00: rt2800usb: add USB device ID for Linksys AE3000 - [
] wil6210: Enable TCP/UDP checksum HW offload
Ein "C" im Bereich "[ ]" kennzeichnet Commits mit Änderungen an Kconfig-Dateien, welche die Konfigurationsoptionen samt der zugehörigen Hilfetexte enthalten. Mit "I" ausgezeichneten Patches rüsten neue PCI- oder USB-IDs nach; jene mit "D" verändern die dem Kernel beiliegende Dokumentation; Commits mit "N" legen neue Dateien an. Die Zahl vermittelt einen groben Eindruck zur Größe des Patches: Eine "1" kennzeichnet Patches, die inklusive Kommentar zwischen 10 und 20 KByte groß sind; Patches mit einer "9" sind 90 KByte oder größer.
Die "Was Linux 3.12 bringt"-Serie
Das Kernel-Log kann bereits jetzt einen Überblick über die wichtigsten Neuerungen der Linux-Version 3.12 geben, da alle größeren Änderungen bereits in den ersten beiden Entwicklungswochen integriert wurden; das Ende Oktober oder Anfang November erwartete Linux 3.12 befindet sich seit dem in der Stabilisierungsphase, in der die Kernel-Hacker nur selten größere Umbauten vornehmen.
Über einige der Neuerungen von Linux 3.12 hat das Kernel-Log bereits im Rahmen der Artikelserie "Was 3.12 bringt" berichtet:
In den kommenden Wochen erscheinen noch Artikel zu den Änderungen an Infrastruktur und Treibern.
Weitere Hintergründe und Informationen rund um Entwicklungen im Linux-Kernel und dessen Umfeld finden sich in den vorangegangenen Kernel-Logs auf heise open. Neue Ausgaben des Kernel-Logs werden auf dem Twitter-Konto "@kernellog" erwähnt. (thl) (thl)