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".