Ich habe hier einen interessanten verwandten Beitrag gefunden. Der von cifs gemountete Ordner wird immer wieder getrennt (Ubuntu-Server) und spricht von einem ähnlichen Problem (gleicher Fehler, Samba-Freigaben).
Der relevante Leckerbissen hier, um dem Rest der Antwort zu folgen, ist, dass CIFS-Mounts standardmäßig das SMBv1.0-Protokoll verwenden, wie überprüft werden kann, indem der mount
Befehl ausgegeben wird und das vers=1.0
Feld beachtet wird.
$mount
//10.2.1.2/XX/ZZ/YY on /mnt/mount_point type cifs (rw,relatime,vers=1.0,cache=strict,username=someusername,domain=XXX,uid=1001,forceuid,gid=1001,forcegid,addr=10.2.1.2,file_mode=0770,dir_mode=0770,nounix,serverino,mapposix,rsize=61440,wsize=65536,echo_interval=60,actimeo=1)
Ich habe auch in Stack Overflow festgestellt, dass der Post- Mount-CIFS-Host nicht verfügbar ist
Dies könnte auch an einer Nichtübereinstimmung des Protokolls liegen. 2017 hat Microsoft Windows Server gepatcht und empfohlen, das SMB1-Protokoll zu deaktivieren.
Von nun an kann mount.cifs Probleme mit der Protokollaushandlung haben.
Der angezeigte Fehler lautet "Host ist ausgefallen". aber wenn Sie debuggen mit:
smbclient -L <server_ip> -U <username> -d 256
Sie erhalten den Fehler:
protocol negotiation failed: NT_STATUS_CONNECTION_RESET
In dem Beitrag wird erwähnt, dass Windows-Patches für das Protokoll / Wannacry und andere die Funktionalität von v1 CIFS-Anforderungen deaktivieren. Ähnliche Probleme sind an der Windows-Front aufgetreten, und angesichts des Zeitpunkts habe ich den Verdacht, dass das Problem damit zusammenhängen muss.
Wir haben v1 CIFS auf diesem bestimmten Server nicht deaktiviert, AFAIK (und Tests bestätigen dies). Die MS-Bulletins legen jedoch nahe, dass das Standardverhalten von SMBv1 (geringfügig) geändert wurde.
Am Ende folgte ich der allgemeinen Idee, die in der erwähnten Samba-Frage vorgeschlagen wurde. Vom Menschenmounts.cifs
:
vers=
SMB-Protokollversion. Zulässige Werte sind:
1.0 - Das klassische CIFS / SMBv1-Protokoll. Dies ist die Standardeinstellung.
2.0 - Das SMBv2.002-Protokoll. Dies wurde ursprünglich in Windows Vista Service Pack 1 und Windows Server 2008 eingeführt. Beachten Sie, dass die Erstversion von Windows Vista einen etwas anderen Dialekt (2.000) sprach, der nicht unterstützt wird.
2.1 - Das SMBv2.1-Protokoll, das in Microsoft Windows 7 und Windows Server 2008R2 eingeführt wurde.
3.0 - Das SMBv3.0-Protokoll, das in Microsoft Windows 8 und Windows Server 2012 eingeführt wurde.
Beachten Sie auch, dass diese Option zwar die verwendete Protokollversion regelt, jedoch nicht alle Funktionen jeder Version verfügbar sind.
--verbose
Drucken Sie zusätzliche Debugging-Informationen für den Mount. Beachten Sie, dass dieser Parameter vor dem angegeben werden muss -o
. Zum Beispiel:
mount -t cifs //server/share /mnt --verbose -o user=username
Wie aus dem Handbuch hervorgeht, ist die Verwendung von Windows in neueren Windows-Versionen nach Windows 8 vers=2.0
möglicherweise sinnvoller. Die alternative Syntax in der Befehlszeile mit der genannten --verbose
Option ist auch nützlich, um eventuell auftretende Komplikationen weiter zu debuggen.
Da es sich bei dem Windows-Server, von dem aus ich in dieser Frage Informationen bereitstelle, um einen Windows-Server 2008 R2 handelt, habe ich Folgendes eingegeben /etc/fstab
:
//10.2.1.2/XX/ZZ/YY /mnt/mount_point cifs credentials=/root/.smbcredentials,iocharset=utf8,file_mode=0770,dir_mode=0770,uid=1001,gid=1001,vers=2.1 0 0
Dann wurde es erneut montiert, damit die Option wirksam wird:
sudo mount -o remount /mnt/mount_point
Jetzt überprüfen wir mount
erneut, um das ausgehandelte Protokoll zu bestätigen:
$mount
//10.2.1.2/XX/ZZ/YY on /mnt/mount_point type cifs (rw,relatime,vers=2.1,cache=strict,username=someusername,domain=XXX,uid=1001,forceuid,gid=1001,forcegid,addr=10.2.1.2,file_mode=0770,dir_mode=0770,nounix,serverino,mapposix,rsize=61440,wsize=65536,echo_interval=60,actimeo=1)
Und wir können tatsächlich bestätigen, dass wir das verwendete SMB-Protokoll erfolgreich geändert haben.
Siehe auch MS Developer Network - [MS-SMB2]: Versionierung und Fähigkeitsverhandlung - 1.7 Versionierung und Fähigkeitsverhandlung
Es sollte auch beachtet werden, dass CIFS v1.0 nicht nur veraltet ist, sondern im Vergleich zu neueren Versionen des Protokolls äußerst ineffizient und unsicher ist.
Aus MS-Blogs - Verwenden Sie SMB1 nicht mehr
SMB1 ist nicht modern oder effizient
Wenn Sie SMB1 verwenden, verlieren Sie wichtige Leistungs- und Produktivitätsoptimierungen für Endbenutzer.
- Größere Lese- und Schreibvorgänge (2.02+) - effizientere Nutzung schnellerer Netzwerke oder WANs mit höherer Latenz. Große MTU-Unterstützung.
- Peer-Caching von Ordner- und Dateieigenschaften (2.02+) - Clients speichern lokale Kopien von Ordnern und Dateien über BranchCache
- Langlebige Handles (2.02, 2.1) - Ermöglichen eine transparente Wiederverbindung der Verbindung zum Server, wenn eine vorübergehende Trennung vorliegt
- Client-Oplock-Leasing-Modell (2.02+) - Begrenzt die zwischen Client und Server übertragenen Daten, verbessert die Leistung in Netzwerken mit hoher Latenz und erhöht die Skalierbarkeit von SMB-Servern
- Multichannel & SMB Direct (3.0+) - Aggregation von Netzwerkbandbreite und Fehlertoleranz, wenn mehrere Pfade zwischen Client und Server verfügbar sind, sowie Nutzung moderner Ultrahoch-Werte in der gesamten RDMA-Infrastruktur
- Directory Leasing (3.0+) - Verbessert die Antwortzeiten von Anwendungen in Zweigstellen durch Caching
Interessanterweise schlägt dieser letzte Artikel vor, dass die Probleme mit der Trennung nach einer Trennung weniger wahrscheinlich auftreten (dauerhafte Handles), wenn ein Protokoll> = 2.01 verwendet wird. Daher möchte ich noch einmal betonen, dass CIFS v1.0 nicht weiter verwendet wird. ( echo_interval=60
Wenn z. B. in 1.0 die Verbindung hergestellt bleibt, wenn ein Netzwerkfehler oder eine andere Serverunterbrechung auftritt, kann sich der Mount bei Verwendung von CIFS v1.0 ohne manuelles Eingreifen nicht selbst wiederherstellen.)
Vermeiden Sie als letzten Ratschlag Folgendes sudo mount -a
und beginnen Sie:
sudo mount -o remount -a
Siehe meine Frage auch CIFS, das mehrere Kopien derselben Freigabe auf demselben Bereitstellungspunkt bereitstellt