2435901

BBR: Der neue Netzwerkturbo für Linux im Überblick

05.07.2019 | 12:02 Uhr | David Wolski

Die Netzwerkfähigkeiten des Linux-Kernels haben gegenüber den BSD-Betriebssystemen aufgeholt: Mit den Linux-Ausgaben ab Version 4.9, die auf Servern weit verbreitet sind, gibt es eine neue Methode zur Stauvermeidung von Netzwerkpaketen.

Bisher galten die Netzwerkfähigkeiten von Free BSD und den anderen BDS-Varianten als schneller als jene des Linux-Kernels. Auch haben die Systeme den Ruf, auch extreme Netzwerklast stemmen zu können. Deshalb verwenden beispielsweise Whatsapp, Netflix und die Apache Software Foundation auf öffentlich erreichbaren Servern und Load Balancern eher Free BSD als Linux-Systeme. Der Grund dafür ist einfach der höhere Reifegrad der BSD-Systeme, die gut 15 Jahre Vorsprung gegenüber dem Linux-Kernel haben. Lange waren im Quellcode des Linux-Kernels fortgeschrittene Netzwerkfunktionen auskommentiert, weil der letzte Schliff fehlte oder Funktionen im Detail noch nicht komplett umgesetzt waren.

BBR statt Bremse 

Eine bemerkenswerte Verbesserung am Netzwerkstack – also die Architektur der Netzwerkfunktionen vom Paket bis zur Netzwerkkarte – haben Mitarbeiter von Google beigesteuert: Der Linux-Kernel 4.9 bekam zur Nutzung der maximalen Bandbreite der Netzwerkverbindung eine neue Flusskontrolle für Netzwerkpakete, die Pakete in Höchstgeschwindigkeit durch die Leitung jagt. Diese Technik hat den langen Namen „Bottleneck Bandwidth and Round Trip Time bekommen“ – oder viel kürzer: „ BBR “. Kernel 4.9 ist schon Ende 2016 erschienen, aber erst jetzt kommen die Ausgaben ab dieser Kernel-Version in die maßgeblichen Serversysteme. So kann BBR jetzt erst auf den verbreiteten Serversystemen wie Ubuntu 18.04 LTS aktiviert werden, sofern man dort mit dem empfohlenen Standard-Kernel der Distribution arbeitet.

Flusskontrollen zur optimalen Netzwerkauslastung sind nicht neu und der Linux-Kernel kennt bereits mehrere Methoden. Das von Google beigesteuerte BBR arbeitet allerdings anders als die herkömmlichen Algorithmen. Beim Aushandeln der optimalen Übertragungsgeschwindigkeit von TCP-Verbindungen mit einer Gegenstelle orientiert sich die neue Methode nicht mehr am gesamten Paketverlust einer Verbindung, sondern wertet die empfangenen Bestätigungspakete aus. Das Resultat ist eine hohe Toleranz gegenüber zufälligen Paketverlusten, die über die dauerhafte Verbindungsqualität wenig aussagen würden.

Vereinfacht gesagt: BBR regelt die Geschwindigkeit einer Verbindung bei Paketverlusten nicht sofort herunter wie herkömmliche Flusskontrollen, sondern wertet erst weitere Indizien aus. Das gesamte Papier zu BBR hat Google hier  veröffentlicht.

Tipp: Die 10 wichtigsten Linux-Befehle für Netzwerk und Internet

BBR in der Praxis

Der Netzwerkstack BBR des Linux-Kernels wird über die Konfigurationsdatei „/etc/sysctl.conf“ aktiviert.
Vergrößern Der Netzwerkstack BBR des Linux-Kernels wird über die Konfigurationsdatei „/etc/sysctl.conf“ aktiviert.

Genug der Theorie. Google setzt BBR bereits seit gut zwei Jahren auf Youtube.com ein. Die neue Flusskontrolle erscheint aber auch ideal für Server im lokalen Netzwerk, die hin und wieder die Netzwerkbandbreite voll ausschöpfen sollen, etwa bei der Übertragung großer Dateien bei NAS-Geräten, Nextcloud- oder Streamingservern.

Ein kurzer Check im Terminal zeigt über das Kommando 

egrep 'CONFIG_TCP_CONG_BBR|CONFIG_NET_SCH_FQ' /boot/config-$(uname -r)

schnell, ob der verwendete Kernel fit für BBR ist. Der Kernel beherrscht die neue Flusskontrolle, wenn danach diese drei Zeilen 

CONFIG_TCP_CONG_BBR=m 
CONFIG_NET_SCH_FQ_CODEL=y 
CONFIG_NET_SCH_FQ=m 

ausgegeben werden. Zur Aktivierung der Funktion ist erfreulicherweise kein Serverneustart nötig. Es genügt, auf dem Server die Datei „/etc/sysctl.conf“ mit root-Rechten in einem Texteditor zu öffnen: 

sudo nano /etc/sysctl.conf 

Dort fügen Sie am Ende der Datei diese drei Zeilen ein, um BBR im Netzwerkstack des Kernels einzuschalten: 

# BBR aktivieren 
net.core.default_qdisc=fq 
net.ipv4.tcp_congestion_control=bbr

Das nachfolgende Kommando

sudo sysctl --system 

lädt die geänderten Parameter.

Linux-Server: Die besten Distributionen im Überblick

Auswirkungen auf das Netzwerk

Bandbreite messen mit iperf.
Vergrößern Bandbreite messen mit iperf.

Eine Einschränkung vorweg: Die Optimierungsmaßnahme des Netzwerkstacks bringt auf Notebooks und Desktop-PCs wenig und wird sich nur in Ausnahmesituationen unter einer anhaltenden Netzwerklast bemerkbar machen – etwa bei der Übertragung von mehreren Gigabyte im Gigabit-Netzwerk. Von BBR profitieren können vor allem Server im Internet und dies vor allem unter Last.

Zur Messung der Auslastung und Geschwindigkeit eines LAN/WLAN oder der Internetanbindung stehen auf einem Linux-System eine ganze Reihe nützlicher Werkzeuge zur Verfügung. Für die Messungen vor und nach dem Wechsel zu BBR kam in unseren Tests das Kommandozeilentool iperf zum Einsatz, das die Geschwindigkeit der Datenübertragung zwischen zwei Linux-Systemen über eine Netzwerk- beziehungsweise Internetverbindung misst. Es funktioniert nach dem Client-Server-Prinzip und erwartet, dass eine Gegenstelle vorhanden ist, auf der ebenfalls iperf im Servermodus läuft. Das Tool liegt in den Standardpaketquellen von Debian, Ubuntu, Fedora und vielen anderen Distributionen. Unter Debian/Ubuntu installieren Sie es beispielsweise mit diesem Befehl: 

sudo apt-get install iperf 
Auf der Serverseite startet man iperf über die Eingabe von 
iperf -s

im Terminal. Auf dem Client startet anschließend der Befehl

iperf -c [Server-Adresse] -i 2 -t 60 

den eigentlichen Test mit der Serveradresse als Gegenstelle für 60 Sekunden. Alle zwei Sekunden zeigt das Tool die Messergebnisse an. Es ist aufschlussreich, iperf einmal mit der herkömmlichen Flusskontrolle auszuführen und dann noch einmal mit dem gleichen Server als Gegenstelle, auf welchem BBR aktiviert ist. Die Steigerung der genutzten Bandbreite der Einzelverbindung ist teils erheblich. Um bis zu hundert Prozent bessere Übertragungsraten sind zu erwarten.

Ergebnis der Messungen mit iperf.
Vergrößern Ergebnis der Messungen mit iperf.

Risiken und Nebenwirkungen 

Es wäre reines Wunschdenken, hier von einer tatsächlichen höheren Bandbreite durch die veränderte Flusskontrolle auszugehen. Die Bandbreite der Netzwerkverbindung bleibt stets gleich. Was sich ändert, ist lediglich die resultierende Übertragungsrate einer Verbindung. Ein Router wie etwa eine Fritzbox hat alle Hände damit zu tun, eine Verbindung zu einem Server mit BBR zu bedienen. Währenddessen warten die anderen Verbindungen zu Servern mit herkömmlicher Flusskontrolle brav auf ihre Daten oder werden heruntergeregelt. BBR geht also an der Schnittstelle zwischen LAN und Internet beziehungsweise auf dem Switch oder Router auf Kosten anderer Netzwerkteilnehmer.

Setzt sich BBR durch, so ist zu erwarten, dass Rechenzentren und Internetprovider von sich aus für einzelne Server eine sinnvolle Begrenzung der zugewiesenen Bandbreite vornehmen müssen.

Weiterführende Lektüre: Linux: Das umfassende Handbuch von Michael Kofler. Für alle aktuellen Distributionen (Desktop und Server)

Die Themen in Tech-up Weekly #158:

► (00:28) AMD Ryzen 9 3950X - neue Gaming-CPU mit 16 Kernen:
www.pcwelt.de/news/AMD-Ryzen-9-3950X-Neue-Gaming-CPU-mit-16-Kernen-10607792.html

► (02:50) Spiele-Abos von Microsoft…: www.pcwelt.de/news/Xbox-Game-Pass-fuer-Windows-PCs-mit-100-Spielen-gestartet-10607682.html

►…und Ubisoft:
www.pcwelt.de/news/Uplay-Alle-Ubisoft-PC-Spiele-fuer-14-99-Euro-Monat-10607757.html

► (04:51) Xbox Project Scarlett: www.pcwelt.de/news/Xbox-Scarlett-mit-8K-und-Raytracing-Unterstuetzung-10607631.html

► (06:21) Mozilla: Firefox-Browser soll Premium-Modell erhalten
www.pcwelt.de/news/Mozilla-Firefox-Browser-soll-Premium-Modell-erhalten-10607922.html

(07:45) Quick-News:

► 5G-Auktion beendet - Bund erhält 6,5 Milliarden Euro: www.pcwelt.de/news/5G-Auktion-ist-beendet-Bund-erhaelt-6-5-Milliarden-Euro-10609451.html

► Google ist nicht mehr die wertvollste Marke der Welt: www.pcwelt.de/news/Google-nicht-mehr-wertvollste-Marke-der-Welt-10608186.html

► AMD Radeon RX 5700 (XT): Navi-Grafikkarten schneller & günstiger als Nvidia GeForce RTX: www.pcwelt.de/news/AMD-Radeon-RX-5700-XT-Navi-Grafikkarten-schneller-guenstiger-als-Nvidia-GeForce-RTX-10608123.html

► Bundeswehr will deutsche Laserkanone einsetzen: www.pcwelt.de/news/Bundeswehr-will-deutsche-Laserkanone-einsetzen-10608661.html

► Nintendo Switch: The Witcher 3 und neues Zelda-Spiel angekündigt:
www.pcwelt.de/news/Nintendo-Switch-The-Witcher-3-und-neues-Zelda-Spiel-angekuendigt-10608697.html

► Dropbox erhält ein großes Update - künftig alles auf einer Oberfläche:
www.pcwelt.de/news/Dropbox-erhaelt-ein-grosses-Update-kuenftig-alles-auf-einer-Oberflaeche-10608773.html

► (09:54) Kommentar der Woche

(10:46) Fail der Woche:

► Nach WC-Stream: "DrDisrespect" von Twitch gebannt:

www.pcwelt.de/news/Nach-WC-Stream-DrDisrespect-von-Twitch-gebannt-10609237.html

► Zum PC-WELT T-Shirt-Shop:
www.pcwelt.de/fan


2435901