Bei der Arbeit an einem L2TP-VPN tritt nach dem Upgrade von macOS 10.11 auf 10.12 ein seltsames Problem mit Datenkorruption auf. Zufällig beschädigte Daten treten mitten in etwas "größeren" heruntergeladenen Dateien auf, z. B. JavaScript-Ressourcen oder andere Quelldateien mit einer Dateigröße von etwa 1 bis 2 MB. Es scheint, dass die Beschädigung gelegentlich bei Dateigrößen < 1 MB auftritt, aber ziemlich zuverlässig bei Dateigrößen darüber. Die Position und der Inhalt scheinen zufällig zu sein. Ich hänge einen Screenshot an, der ein Beispiel für die Dateibeschädigung enthält, die in einer 1,4-MB-JavaScript-Datei aufgetreten ist.
Unter macOS 10.10 oder 10.11 hatte ich diesbezüglich nie Probleme und das neueste Problem führt zu sehr ärgerlichen Folgen. Z.B. Ich kann nicht mehr auf JS-lastige Web-Apps zugreifen. Darüber hinaus ist es riskant, in Live-Systemen von Unternehmenssoftware zu arbeiten, wenn Dateien heruntergeladen, gepatcht und hochgeladen werden. Leute um mich herum, die dasselbe VPN unter macOS 10.12 verwenden, haben das gleiche Problem, während Leute, die noch an macOS 10.11 arbeiten, überhaupt keine Probleme haben.
Hat noch jemand dieses Problem? Wie kann ich das beheben?
Bezieht sich auch auf einen älteren Beitrag in Apple Communities, der ein ähnliches (oder dasselbe?) Problem in älteren macOS-Versionen beschreibt: https://discussions.apple.com/message/30908122?start=0&tstart=0#30908122
Bearbeiten 08.11.2016
Interessant: scp
(SSH-)Downloads werden durch einen Fehler abgebrochen.
xyz-macbook:Downloads xyz$ scp xyz@192.168.227.123:/srv/www/xyz/ext-5.0.1/build/ext-all.js .
xyz@192.168.227.123's password:
ext-all.js 0% 0 0.0KB/s --:-- ETACorrupted MAC on input.
ssh_dispatch_run_fatal: Connection to 192.168.227.123 port 22: message authentication code incorrect
lost connection
Während curl
(HTTP)-Downloads beendet werden, aber die oben genannten beschädigten Zeichen enthalten.
xyz-macbook:Downloads xyz$ curl "http://192.168.227.123/xyz/ext-5.0.1/build/ext-all.js" -o "ext-all.js"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1952k 100 1952k 0 0 1728k 0 0:00:01 0:00:01 --:--:-- 1729k
Bearbeiten 11.11.2016
Die beschädigten Daten sind bei jedem Download ein und derselben Datei anders:
xyz-macbook:Downloads xyz$ md5 dummy_novpn.txt
MD5 (dummy_novpn.txt) = ca323efb28ed75534f8f6b7b0237d9da
xyz-macbook:Downloads xyz$ md5 dummy_vpn.txt
MD5 (dummy_vpn.txt) = 060bbe9846e7845993041a1481c34b93
xyz-macbook:Downloads xyz$ md5 dummy_vpn2.txt
MD5 (dummy_vpn2.txt) = dacfc661f9a85606afbdfefa72d50516
xyz-macbook:Downloads xyz$ md5 dummy_vpn3.txt
MD5 (dummy_vpn3.txt) = 8c3f06f9ee440947a9e5864748bd7010
Haben Sie zufällig ein https://eshop.macsales.com/item/OWC/TCDOCK11PSG/ ? Ich hatte das gleiche Problem, und es stellte sich heraus, dass das Problem verschwunden war, wenn ich das Ethernet vom Port des OWC-Replikators auf ein USB-C-Ethernet verschoben hatte.
Ich habe identische Symptome bei einem L2TP-over-IPsec-Tunnel mit der integrierten drahtlosen Schnittstelle auf einem MacBook Pro (2019) mit macOS 12.6 festgestellt.
Nach ein wenig Experimentieren bestand die Lösung darin, das RX-Hardware-Prüfsummen-Offloading zu deaktivieren mit:
sudo sysctl -w net.link.generic.system.hwcksum_rx=0
wodurch 100 % der Datenkorruptionsprobleme behoben wurden. Da das Auslagern der Prüfsumme eine Frage der Leistung ist, möchten Sie es möglicherweise rückgängig machen, wenn Sie das VPN nicht verwenden (dh den Wert auf 1 und nicht auf 0 zurücksetzen).
Es ist möglich, die Einstellung bei Bedarf beizubehalten, indem sysctl beim Neustart aufgerufen wird. Fügen Sie dazu Folgendes in ein /Library/LaunchDaemons/sysctl.plist
:
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>sysctl</string>
<key>ProgramArguments</key>
<array>
<string>/usr/sbin/sysctl</string>
<string>-w</string>
<string>net.link.generic.system.hwcksum_rx=0</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
und dann ausführen
launchctl load /Library/LaunchDaemons/sysctl.plist
Ich zögere jedoch, dies zu empfehlen, da dies Auswirkungen auf die Leistung und/oder den Energieverbrauch haben kann. Persönlich bewahre ich die manuelle Einstellung in einem kleinen Shell-Skript auf, das nur bei Bedarf ausgeführt wird.
Fahrrad
rsync
oder webdav oder eine andere Möglichkeit, diese Dateien in das Dateisystem herunterzuladen? Grundsätzlich - welche Transportmethode scheitert bei VPN?Proximus
curl
/wget
(WebDAV/HTTP) als auch überscp
/rsync
(SSH) bemerkt. Interessant:scp
(SSH)-Downloads werden durch einen Fehler (ETACorrupted MAC on input. / ssh_dispatch_run_fatal: Connection to 192.168.227.227 port 22: message authentication code incorrect / lost connection
) unterbrochen, währendcurl
(HTTP)-Downloads beendet werden, aber die oben genannten beschädigten Zeichen enthalten.aal ghEEz
_ransfer-Encoding: chunked
. Ich habe dann einen Thread aus dem Jahr 2009 zur HTTP/1.1-Datenbeschädigung gefunden, curl.haxx.se/mail/lib-2009-09/0169.html (aber ich kann git nicht ändern, um HTTP/1.0 zu verwenden).