# SMB Deep Dive: High-Performance File Sharing & Security
TL;DR / Management Summary SMB (Server Message Block) ist mehr als nur ein Protokoll für “Netzlaufwerke”. Seit Version 3.0 ist es ein hochperformanter Transportweg für Hyper-V Workloads und SQL-Datenbanken. Senior Admins optimieren SMB durch Multichannel (Bündelung von NICs) und SMB Direct (RDMA), um Latenzen auf SAN-Niveau zu senken. Gleichzeitig sichern wir den Traffic durch SMB Encryption ab, ohne die CPU zu grillen.
# 1. Einführung & Versionierung
Von SMB 1.0 zu 3.1.1.
- SMB 1.0 (CIFS): Veraltet, unsicher (WannaCry), sofort deaktivieren!
- SMB 3.0: Einführung von Multichannel, Encryption und transparentem Failover.
- SMB 3.1.1 (Windows 10/11, Server 2016+): Der aktuelle Standard. Nutzt AES-128-GCM und AES-256-GCM für maximale Sicherheit bei minimaler Latenz.
# 2. Performance Tuning in der Praxis
Die volle Bandbreite nutzen.
# SMB Multichannel
Windows bündelt automatisch mehrere Netzwerkkarten für eine einzelne SMB-Sitzung.
- Vorteil: Erhöht den Durchsatz und bietet Fehlertoleranz.
- Voraussetzung: Identische Geschwindigkeiten an den NICs (z.B. 2x 10GbE).
# Status prüfen
Get-SmbMultichannelConnection
# SMB Direct (RDMA)
SMB Direct nutzt Remote Direct Memory Access (RDMA), um Daten direkt von einem RAM in den anderen zu schieben, ohne die CPU des Host-OS zu belasten.
- Hardware: Erfordert RoCE oder iWARP fähige Netzwerkkarten (z.B. Mellanox ConnectX).
- Ergebnis: 100 Gbit/s mit weniger als 5% CPU-Last.
# 3. Deep Dive: SMB Security & Hardening
Den Datenstrom schützen.
# SMB Encryption (Verschlüsselung)
Seit SMB 3.0 kann der gesamte Traffic verschlüsselt werden.
# Verschlüsselung für einen spezifischen Share erzwingen
Set-SmbShare -Name "HR-Daten" -EncryptData $true
- Pro-Tipp: Moderne CPUs mit AES-NI Instruktionen erledigen das fast ohne Performance-Verlust.
# SMB Signing (Signierung)
Verhindert Man-in-the-Middle Angriffe.
- Wichtig: Ab Windows 11 (24H2) und Server 2025 ist SMB Signing standardmäßig für alle Verbindungen erforderlich!
# 4. Day-2 Operations: Dialekt-Management
Kompatibilität steuern.
Manchmal müssen Sie alten Druckern oder Scannern den Zugriff erlauben (nicht empfohlen!).
# SMB 1.0 Feature installieren (NUR im Notfall!)
Install-WindowsFeature -Name FS-SMB1
# 5. Troubleshooting & “War Stories”
Wenn die Kopie hakt.
# Top 3 Fehlerbilder
-
Symptom: Dateitransfer startet schnell und bricht dann auf KB/s ein.
- Ursache: RAM-Cache läuft voll, während das Storage-Backend (z.B. Proxmox ZFS ohne ZIL) nicht hinterherkommt.
- Lösung: Storage-Latenz prüfen (Artikel 499).
-
Symptom: “Die angeforderte Ressource wird bereits verwendet”.
- Ursache: SMB-Lease oder OpLocks blockieren die Datei.
- Tool:
Get-SmbOpenFile | Where-Object {$_.Path -like "*Dateiname*"}.
-
Symptom: SMB-Performance ist trotz 10G Karte bei 1G gedeckelt.
- Ursache: RSS (Receive Side Scaling) ist deaktiviert. Der gesamte SMB-Traffic landet auf einem einzigen CPU-Kern.
- Lösung:
Enable-NetAdapterRss.
# “War Story”: Der “Hidden” Overhead
Ein Unternehmen wunderte sich, warum das tägliche Backup über SMB plötzlich doppelt so lange dauerte.
Die Entdeckung: Ein Admin hatte “SMB Signing” via GPO für den gesamten Standort auf Required gesetzt. Die alten Prozessoren der Fileserver verbrachten 60% ihrer Zeit damit, Paket-Signaturen zu berechnen.
Lehre: Sicherheit ist wichtig, aber prüfen Sie die Hardware-Fähigkeiten (AES-NI / SSE), bevor Sie kryptografische Pflichten global ausrollen.
# 6. Monitoring & Reporting
Die SMB-Session-Analyse.
# Wichtige Metriken
- SMB Server \ Requests/sec: Last auf dem Server.
- SMB Server \ Avg. sec/Data Request: Zeit pro Operation (Ziel < 10ms).
# 7. Fazit & Empfehlung
SMB ist das stabilste und schnellste Protokoll für Windows-Umgebungen.
- Empfehlung: Nutzen Sie SMB over QUIC (Artikel 481) für Roadwarriors, um VPN-Overhead zu vermeiden.
- Strategie: Deaktivieren Sie SMB 1.0 global und blockieren Sie Port 445 an der Peripherie-Firewall.
# Anhang: Cheatsheet
| Aufgabe | Befehl |
|---|---|
| Shares auflisten | Get-SmbShare |
| Offene Dateien sehen | Get-SmbOpenFile |
| Sessions listen | Get-SmbSession |
| SMB Info (Client) | Get-SmbConnection |
| Cache leeren | ipconfig /flushdns (oft hängen Mounts am DNS) |