BBR auf einem CentOS 7 KVM-Server aktivieren
BBR steht für „Bottleneck Bandwidth and Round-Trip Time“ und ist ein moderner Algorithmus zur Stausteuerung, entwickelt von Google. Dieser wurde direkt in den TCP-Stack des Linux-Kernels integriert. Die Aktivierung von BBR führt in der Regel zu einer deutlich besseren Datenübertragung und geringeren Latenzen bei Netzwerkverbindungen. Ein großer Vorteil von BBR ist die einfache Umsetzung – es genügt, die Konfiguration auf Senderseite anzupassen. Netzwerkgeräte oder Empfänger müssen nicht verändert werden.
Voraussetzungen
- Ein virtueller CentOS 7 x64 Server
- Ein Benutzer mit Sudo-Rechten
Schritt 1: Kernel-Aktualisierung über das ELRepo-Repository
Um BBR zu aktivieren, muss der Kernel auf Version 4.9.0 aktualisiert werden. Das geht bequem über das RPM-Repository von ELRepo.
Aktuelle Kernel-Version prüfen
Vor dem Upgrade sollte zunächst die aktuelle Kernel-Version ermittelt werden:
uname -r
Die Ausgabe sollte in etwa so aussehen:
3.10.0-514.2.2.el7.x86_64
Dies zeigt, dass aktuell Kernel-Version 3.10.0 verwendet wird.
ELRepo-Repository aktivieren
Nun wird der GPG-Schlüssel sowie das ELRepo-Paket installiert:
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
Neuen Kernel installieren
Über ELRepo lässt sich der aktuelle Mainline-Kernel wie folgt installieren:
sudo yum --enablerepo=elrepo-kernel install kernel-ml -y
Installierte Kernel überprüfen
Zur Bestätigung kann man alle installierten Kernel anzeigen lassen:
rpm -qa | grep kernel
Die Liste sollte unter anderem folgende Einträge enthalten:
kernel-ml-4.9.0-1.el7.elrepo.x86_64
kernel-3.10.0-514.el7.x86_64
kernel-tools-libs-3.10.0-514.2.2.el7.x86_64
kernel-tools-3.10.0-514.2.2.el7.x86_64
kernel-3.10.0-514.2.2.el7.x86_64
Kernel 4.9.0 als Standard setzen
Damit das System künftig mit dem neuen Kernel startet, muss der Standard-Eintrag im Bootloader geändert werden. Zuerst werden alle GRUB2-Menüeinträge angezeigt:
sudo egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
Mögliche Ausgabe:
CentOS Linux 7 Rescue a0cbf86a6ef1416a8812657bb4f2b860 (4.9.0-1.el7.elrepo.x86_64)
CentOS Linux (4.9.0-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.2.2.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-bf94f46c6bd04792a6a42c91bae645f7) 7 (Core)
Da Kernel 4.9.0 an Position 1 steht, kann dieser wie folgt als Standard gesetzt werden:
sudo grub2-set-default 1
Neustart durchführen und Kernel prüfen
Um die Änderungen zu übernehmen, starte das System neu:
sudo shutdown -r now
Nachdem der Server wieder hochgefahren ist, erneut anmelden und die Kernel-Version überprüfen:
uname -r
Die Ausgabe sollte nun wie folgt aussehen:
4.9.0-1.el7.elrepo.x86_64
Schritt 2: BBR-Stausteuerung aktivieren
Um BBR als aktiven Algorithmus für die Netzwerkkontrolle zu nutzen, musst du bestimmte sysctl
-Parameter anpassen:
echo 'net.core.default_qdisc=fq' | sudo tee -a /etc/sysctl.conf
echo 'net.ipv4.tcp_congestion_control=bbr' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Überprüfe nach dieser Konfiguration, ob BBR korrekt aktiviert ist. Führe dazu folgenden Befehl aus:
sudo sysctl net.ipv4.tcp_available_congestion_control
Die erwartete Ausgabe sollte etwa so aussehen:
net.ipv4.tcp_available_congestion_control = bbr cubic reno
Um zu sehen, welcher Algorithmus aktuell aktiv ist, verwende diesen Befehl:
sudo sysctl -n net.ipv4.tcp_congestion_control
Die erwartete Rückmeldung lautet:
bbr
Überprüfe zum Schluss, ob das Kernel-Modul für BBR geladen ist:
lsmod | grep bbr
Die Ausgabe sollte etwa wie folgt aussehen:
tcp_bbr 16384 0
Schritt 3 (optional): Netzwerkgeschwindigkeit mit BBR testen
Um die Leistungsverbesserungen durch BBR zu überprüfen, kannst du einen einfachen Download-Test im Browser durchführen. Installiere dazu zunächst den Apache-Webserver und starte ihn:
sudo yum install httpd -y
sudo systemctl start httpd.service
Erlaube anschließend den HTTP-Zugriff über die Firewall:
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload
Jetzt kannst du eine Testdatei erstellen, die später heruntergeladen werden soll:
cd /var/www/html
sudo dd if=/dev/zero of=500mb.zip bs=1024k count=500
Rufe nun im Browser die folgende URL auf:
http://[deine-server-IP]/500mb.zip
Durch den Download dieser Datei kannst du die Geschwindigkeit deines Netzwerks mit aktivem BBR einschätzen.
Fazit
Wenn du die oben beschriebenen Schritte befolgt hast, ist BBR nun erfolgreich auf deinem CentOS 7 Server aktiviert. Dieser moderne Algorithmus zur Netzwerk-Stausteuerung verbessert die Datenübertragung und verringert Verzögerungen, insbesondere bei hoher Last.
Administrator:innen können BBR einfach aktivieren, da sie nur das sendende System anpassen müssen. So steigern sie die Serverleistung, ohne Clients oder Netzwerkkomponenten verändern zu müssen. Mit aktivierter BBR-Unterstützung ist dein Server nun besser auf anspruchsvolle Netzwerkbedingungen vorbereitet.