O tráfego SSH pela conexão openvpn congela quando eu ligo um arquivo


13

Eu tenho uma configuração de conexão openvpn (versão 2.1_rc15 nas duas extremidades) entre duas caixas do gentoo usando chaves compartilhadas. funciona bem na maior parte do tempo. Eu uso o mysql, http, ftp, scp sobre o vpn sem problemas. Mas quando ssh do cliente para o servidor pela VPN, coisas estranhas acontecem. Posso entrar, posso executar alguns comandos. Mas se eu tentar executar um aplicativo ncurses como top, ou tentar criar um arquivo, a conexão será interrompida e terei que interromper a sessão ssh.

Eu posso, por exemplo, executar "echo blá; eco. Echo blá" e ele produzirá as três linhas de texto sobre a sessão ssh. Mas se eu executar "cat / etc / motd", a sessão congelará no momento em que eu pressionar enter.

Compilei o openvpn 2.1.1 no meu mac e copiei no meu diretório config do meu cliente gentoo. As sessões mac e ssh conectadas funcionaram bem sem congelamento.

Eu então o compilei na minha caixa antiga do gentoo (kernel 2.6.26), que estou retirando devido a um disco rígido em extinção, e o ssh sobre ele também funciona perfeitamente.

Por que falha na minha nova caixa do gentoo? Eu tentei compilar três kernels diferentes, caso isso acontecesse, mas fora isso, não deveria haver diferença entre minhas caixas gentoo mais antigas e mais novas que eu possa imaginar.

Alguma sugestão sobre o que está errado?


No meu caso, ssh, cat, tope HTTP tudo funcionou, mas scpnão o fez (ele iria mostrar 100% transferida e pendurar lá). Baixar o MTU para 1380 corrigiu-o.
Roger Dueck 15/10

Respostas:


13

cheira a questão mtu. tente abaixá-lo conforme descrito no manual oficial ou nesta postagem do blog .


2
Obrigado. Eu tentei soltar o MTU da interface Ethernet sem resultado, mas adicionar "fragmento 1400" ao cliente e servidor, como no post mencionado, funcionou muito bem. Eu me pergunto por que a caixa gentoo mais antiga funcionou bem, mas a mais nova não funcionou. Oh bem, consertado agora. Obrigado
Pawz Lion

Obrigado. Isso corrigiu meu problema. No escritório, tenho a mesma configuração exata, sem problemas, mas em minha casa, há alguns travamentos nos casos. Se eu enrolar um URL de um arquivo com um - nele, ele trava. Sem um -, ele funciona: D, e se eu quebrar longas linhas no arquivo, ele também funciona. Não faz sentido, mas obrigado pela solução.
Peter

1
Observe a opção mtu-test do openvpn mencionada na postagem do blog acima vinculada. Isso testará empiricamente o mtu do seu túnel openvpn para que você saiba quais valores usar ao definir fragmento e mssfix e não esteja apenas adivinhando. Eu vi muitas postagens na internet configurando mtu / fragmento para 1400, 1350, 1200, etc. Mas quando eu executei o mtu-test, o openvpn determinou que o MTU fosse 1189!
Jdhildeb

7

Este comando resolve para mim:

$ sudo ip link set dev tun0 mtu 1350 && echo ":)"

Você pode verificar as configurações tun0 com

$ ip a s

Felicidades!


1

Eu tive um problema semelhante quando o OpenVPN estava se conectando acima de 3G com cobertura ruim e perda de perda de pacotes. Mudar para TCP em vez de UDP corrigiu todos os problemas que tive depois disso. Espero que isso ajude você.


A execução de uma VPN por TCP vem com seu próprio conjunto de problemas. Corrigir o problema da MTU e permanecer no UDP provavelmente funcionará melhor do que o TCP.
kasperd

Para OP, alterar apenas MTU é provavelmente uma sugestão melhor do que alterar de TCP para UDP. Se você é extremamente ruim, tão ruim que o OpenVPN nem sequer estabelece uma conexão de conexão estável, tente o TCP em vez do UDP. Em casos 3G extremamente ruins, mudar para TCP foi a única coisa que funcionou para mim.
valentt

1

Sim, é tudo sobre MTU.

Mas no meu caso, tenho um problema ainda mais estranho. Em casa, usando um cliente Windows OpenVPN, ele congela. Mas no meu escritório funciona bem.

Tentei alterá-lo no meu modem ADSL sem êxito. No meu escritório, uso um modem a cabo e outro ISP.

Depois de alterar o MTU do adaptador Windows TAP para 1200, ele funciona bem. Algo alto que isso congelaria para mim.

insira a descrição da imagem aqui


0

Usei o tunnelblick em vez do OpenVPN e não consegui encontrar uma configuração para o valor da MTU. Em vez disso, encontrei a interface para a VPN na saída de ifconfig(no meu caso utun0) e configurei o MTU manualmente da seguinte forma:

ifconfig utun0 mtu 576

Depois disso, minha sessão ssh não congelaria mais.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.