Mam serię plików, które muszę kopiować za pośrednictwem SCP przez VPN na zdalny serwer linux każdej nocy. Pliki nie są duże, mówimy tutaj o dziesiątkach megabajtów, ale kopia pliku prawie zawsze zatrzymuje się po kilku sekundach. Uruchamiając komendę SCP z opcją -vvv, w trakcie próby kopiowania pojawiają się następujące informacje:
debug2: channel 0: rcvd adjust 131072
debug2: channel 0: rcvd adjust 131072
debug2: channel 0: rcvd adjust 131072
jakieś pomysły? Widzę to pytanie zadawane w różnych miejscach, ale nigdy nie ma odpowiedzi. Każda pomoc będzie mile widziana.
Odpowiedzi:
Czy pozwalasz ICMP przez VPN? „Połączenie TCP zatrzymuje się po kilku sekundach” często tłumaczy się jako „ czarna dziura PMTU ”.
źródło
Podobnie do odpowiedzi @ Geralda, ta strona http://www.netheaven.com/pmtu.html zawiera dobre wyjaśnienie MTU Discovery i opcji w obliczu tego problemu.
Również oficjalna dokumentacja Cisco, która omawia fragmentację IP, MTU Discovery i MSS, wszystkie dotyczące tuneli IPSec VPN, ale jest równie ważna w podobnych sytuacjach. http://www.cisco.com/en/US/tech/tk827/tk369/technologies_white_paper09186a00800d6979.shtml
źródło
Czy korzystasz z najnowszej wersji serwerów i klientów ssh, których używasz? Polecam również sprawdzenie ich list e-mail, ponieważ wydaje się to dość niejasne.
źródło
Mieliśmy podobne problemy spurios z scp do niektórych serwerów Linux (Debian, 2.6.24-etchnhalf).
Byliśmy w stanie pozbyć się przeciągnięć, wyłączając zmienną TCP tcp_sack („selektywne potwierdzenia tcp”) na zdalnych serwerach:
sysctl -w net.ipv4.tcp_sack=0
W Debianie tcp_sack jest domyślnie włączony. Jeśli przeczytam http://www.frozentux.net/ipsysctl-tutorial/chunkyhtml/tcpvariables.html , wyłączenie tej opcji nie powinno mieć sensu, ale w naszym przypadku pomogło.
Możesz wprowadzić tę zmianę na stałe, dodając wiersz
net.ipv4.tcp_sack=0
do /etc/sysctl.conf (w innych systemach Linux YMMV).źródło
sprawdź swoją MTU ścieżki
skonfiguruj tę jednostkę MTU dla połączenia sieciowego
(zauważ, że jest to tymczasowe)
źródło