Beschädigte Dateikopie Windows 2012 -> VPN -> Windows 2012

Beschädigte Dateikopie Windows 2012 -> VPN -> Windows 2012

Ich habe Probleme beim Kopieren von Dateien von einem Windows 2012-Server auf einen anderen über Cisco ASA5505 VPN. Ich hatte ein ähnliches Setup mit Win2008-Servern und hatte nie das Problem (dasselbe ASA5505 hier).

Bei etwa 1 von 20 Dateien (ein- oder zweimal am Tag) mit einer Größe von 20 MB oder mehr kommt es häufig zu Datenbeschädigungen.

Die Beschädigung tritt in der Regel in Form von etwa 5 beschädigten Bereichen auf (manchmal alle innerhalb eines 1 MB großen Abschnitts der Datei lokalisiert) und jeder Bereich ist etwa 12 Byte lang, was insgesamt etwa 60 beschädigte Bytes in der gesamten Datei ergibt. Die Dateigröße ändert sich nicht.

Ich habe dies mit der nativen SQLServer-Log-Ship-Copy und mit Robocopy gesehen.

Damit verbunden ist, dass, wenn ich Windows Drag & Drop verwende, um eine 40 GB große Datei zu kopieren, das Kopieren normalerweise nach etwa 15-30 GB fehlschlägt (oder die Kopiervorgänge teilweise beschädigt sind). Dies scheint nicht zu passieren, wenn ich Win2012 -> VPN -> SBS2011 kopiere und dann SBS2011 -> Win2012 kopiere.

Die Komprimierung scheint auf dem ASA5505 nicht aktiviert zu sein. Im Standard-SMBErrors-Trace von NetMonitor wurden keine Fehler festgestellt.

Antwort1

Es lag am VPN (oder Netzwerk – wird noch bekannt gegeben) und nicht an einem Windows-Problem.

So habe ich es gefunden.

Nachdem ich Microsoft Network Monitor an beiden Enden des VPN ausgeführt hatte, konnte ich ein TCP/IP-Paket mit beschädigtem Dateiinhalt erfassen. Das am Remote-Ende erfasste Paket war nicht beschädigt. Das Paket am Ziel war beschädigt.

Um das fehlerhafte Netzwerkpaket zu finden, habe ich die gute und die fehlerhafte Version der Datei per Hex-Dump erstellt und dann KDiff3 verwendet, um die Hex-Dateien zu vergleichen. Dann habe ich die NetMonitor-Aufnahme nach einem 4-Byte-Hex-Muster durchsucht, das unmittelbar vor der Beschädigung in der Datei auftrat. Ich konnte dieses Muster nicht finden, also habe ich es mit einem anderen Muster unmittelbar nach der Beschädigung versucht, es gefunden und mich dann rückwärts durch die Bytes bis zum fraglichen Block gearbeitet (das erste Muster überschritt eine Paketgrenze).

verwandte Informationen