SSHFS sobre VPN congela em grande pedaço

1

Estou executando o SSHFS em uma conexão VPN. Ao tentar enviar um bloco de 1270 bytes em um arquivo neste sistema de arquivos remoto:

head -c 1270 /dev/urandom > /path/into/the/sshfs/foo

todo o sistema de arquivos congela e deixa qualquer processo travar que tenta acessá-lo. Isso pode ser corrigido apenas matando o processo sshfs.

Se eu tentar enviar 1269 bytes, nenhum problema ocorrerá.

Eu brinquei bastante com as opções de linha de comando do sshfs e descobri que apenas uma opção tem alguma influência sobre isso:

-o max_write=1240

Se eu passar um valor menor que 1270 aqui, o limite onde o erro começa a ocorrer é reduzido para esse valor + 1 (um valor de 300 reduziu para 1183, embora). Infelizmente, aumentar o valor não ajuda, o limite permanece em 1270 bytes.

É uma coisa com buffers, de alguma forma. Se eu uso para gravações consecutivas, tudo funciona bem:

(head -c 1269 /dev/urandom
 head -c 1269 /dev/urandom) > /path/into/the/sshfs/foo

Ele não parece ser um problema do ssh subjacente porque um

ssh remote_host "bash -c 'head -c 2000 /dev/zero | tr \
ifconfig tun0 mtu 1500
0'" | wc -c

funciona bem e imprime 2000 como esperado.

No entanto, o encaminhamento do X também não parece funcionar, então talvez seja um problema ssh abaixo.

Eu tentei alterar o tamanho da MTU de 1412 para 1500:

head -c 1270 /dev/urandom > /path/into/the/sshfs/foo

mas sem qualquer efeito.

Este é um problema conhecido? Posso de alguma forma corrigir / prevenir / contornar isso?

EDIT: Estou usando um FritzBox (um roteador doméstico) VPN (aparentemente de estilo "cisco", mas não sou especialista neste tópico) e um Ubuntu 16.04 para acessá-lo de fora.

Eu também notei que quando eu testo isso através de uma linha de telefone celular com um laptop, o problema não ocorre. Só ocorre quando estou no site remoto que está atrás de algum firewall restritivo. Note, porém, que a VPN funciona em geral, apenas o aspecto sshfs (e o encaminhamento do X) parece ser problemático.

    
por Alfe 26.09.2017 / 17:50

1 resposta

2

Você provavelmente tem um problema de MTU causado pela sobrecarga da VPN. Aumentar o MTU como você fez não corrigirá o problema, porque ele torna o MTU maior que o tamanho máximo de pacote disponível para a mídia (suponho que você não esteja usando quadros jumbo em um ambiente somente de lan).

De fato, uma solução pode ser DIMINUIR o mtu do dispositivo de túnel.

Você não especificou a VPN ou os roteadores. A maneira como resolvemos esse problema é com a fixação de MTU no nível do sistema operacional. Alternativamente / adicionalmente, se você estiver usando o OpenVPN, existem diretivas que você pode usar para pacotes fragmentados, por exemplo, usando o mssfix - você pode querer olhar para link e também a opção de fragmento - link

    
por 26.09.2017 / 20:06

Tags