Por que minha chave 3G bloqueia minha interface eth0 e como resolver isso?

1

Eu tenho um PC Linux (Debian Squeeze) que está localizado em uma sala em outra cidade (não posso acessar fisicamente a este PC de onde eu estou)

Este PC está ligado à internet usando uma caixa de internet. Eu posso conectar a este PC usando ssh através da porta 22 (na verdade eu tenho um NAT da porta da caixa remota XXXX para a porta 22 do PC).

Um dos meus colegas conecta uma chave 3G. Eu então uso o script sakis para conectar este PC à rede 3G, e então minha conexão ssh é enforcada (Broken pipe). Meu colega ainda pode acessar o PC de sua rede local usando o ssh; Eu não posso.

Quais são os motivos pelos quais a conexão 3G interrompe a conexão ssh externa? Como posso resolver esse problema (mantendo minha conexão ssh aberta enquanto a conexão 3G é feita)?

Editar: informações adicionais

Eu conecto usando o NAT antes que o script 3G seja lançado

IP não muda para eth0 (a interface que eu uso para conectar)

Uma nova interface é adicionada após a conexão 3G: ppp0 Link encap:Point-to-Point Protocol

rota ip (antes da conexão 3G)

172.16.210.0/24 dev br0  proto kernel  scope link  src 172.16.210.254 
192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.50 
default via 192.168.0.254 dev eth0 

rota ip (após conexão 3G)

10.64.64.64 dev ppp0  proto kernel  scope link  src 10.99.122.183 
172.16.210.0/24 dev br0  proto kernel  scope link  src 172.16.210.254 
192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.50 
default via 10.64.64.64 dev ppp0 
    
por lauhub 09.04.2013 / 17:44

1 resposta

1

Depois de executar esse script, sua rota padrão aponta para outra interface. Os dados da sua conexão ssh são enviados para lá, mas são jogados fora porque eles têm o endereço errado, são NATted pela rede 3G para algum endereço não relacionado e / ou o que for.

Solução: adicione uma rota explícita. A variável $ SSH_CLIENT informa de onde a conexão está vindo.

# set $SSH_CLIENT
# ip route replace $1 via 192.168.0.254 dev eth0

deve resolver seu problema.

    
por 17.04.2013 / 18:58