Discagem para várias conexões PPP

3

Tenho vários Modems baseados em USB 3G. Eu gostaria que eles continuassem conectados simultaneamente, NÃO necessariamente agregando sua largura de banda; um aplicativo inteligente separado gerenciaria sua utilização de maneira eficaz.

No entanto, estou com problemas para configurar rotas adequadas para as interfaces ppp0, ppp1: quando uma delas se conecta, as entradas de outros na tabela de roteamento são atualizadas, portanto, não é mais utilizável. Se eu reconectar o segundo, ele substituiria as entradas de roteamento do primeiro. Se eu fizer isso várias vezes, às vezes as entradas de ambos desaparecem enquanto, em casos raros, as duas funcionam bem.

Eu tentei tanto usando o NetworkManager quanto o WVDial, mas o problema aparece em ambos. Talvez ambos usem o mesmo discador PPP no backend e é por isso que esse problema aparece.

Qual é a solução adequada para fazê-los trabalhar juntos? No longo prazo, eu também gostaria que eles ligassem automaticamente assim que o USB fosse conectado.

    
por sharjeel 23.12.2010 / 11:52

1 resposta

1

Você pode tentar configurar suas conexões móveis com um simples ajuste: marcando a caixa de seleção Use esta conexão somente para os recursos de sua rede , que está um pouco escondida, infelizmente:

Nas configurações da sua conexão, vá para a guia IPv4, clique no botão Rotas e marque a última caixa de seleção nessa caixa de diálogo.

Não testado, mas aproximadamente, o que deve estar acontecendo é que cada dispositivo pppX deve ser ativado com rotas corretas em cada uma das redes de seus provedores, mas a rota padrão não deve ser configurada para passar qualquer um deles.

Você deve então ser capaz de escrever um script simples que, por exemplo, pinga o mesmo servidor de cada uma das interfaces e escolhe o mais rápido para definir a rota padrão; algo como:

route_candidate=$(
for iface in 'ifconfig -a | grep ppp | awk '{print $1; }''; do
    echo $iface = 'ping -I $iface -c 1 -q 8.8.8.8 | grep avg | awk -F/ '{print $5;}''
done | sort -k 3 -rn | head -n 1
)

logger "Setting new route from candidate: $route_candidate"

ip route del default
ip route add default dev 'echo $route_candidate | awk '{print $1;}''

Eu não testei isso completamente, mas é mais ou menos o que precisa ser feito; com a adição ou modificação de usar "via whatever_the_default_gw_ip_is" para o comando ip route add default . Execute isso com o cron em um intervalo regular e você terá um sistema barato para ficar no ISP "mais rápido".

    
por Mathieu Trudel-Lapierre 20.04.2011 / 22:00