Tenho dois modems USB 3G (ou um modem USB e qualquer outra interface de rede - eth
ou wlan
).
Eu conecto as duas interfaces criando regras de IP e adicionando rotas para cada uma delas da seguinte maneira:
sb="ip/subnet"
ifn="network interface (ppp0, eth0..etc)"
ipo="interface ip"
ip route add "$sb" dev "$ifn" src "$ipo" table "$tbl"
ip route add "$sb" dev "$ifn" src "$ipo"
ip route add default via "$gw" table "$tbl"
ip rule add from "$ipo" table "$tbl"
ip rule add to "$ipo" table "$tbl"
Ambas as interfaces são conectadas e cada uma conectada com sua velocidade total independentemente. O problema começa quando tento fazer o download usando as duas interfaces simultaneamente:
Abra um terminal e inicie um download na primeira interface:
curl --interface ppp0 "$URL" -o /dev/null
Abra outro terminal e inicie um download na segunda interface:
curl --interface ppp1 "$URL" -o /dev/null
O problema é que ambas as interfaces ficam mais lentas quando os dois comandos são executados juntos, a primeira interface começa com velocidade de 1.5MBps, quando o próximo comando é iniciado, a primeira interface começa a cair em velocidade. O mesmo acontece ao contrário, quando a segunda interface começa primeiro, a velocidade cai quando a primeira interface é iniciada.
É como ocorre o balanceamento automático de carga. Eu tentei com os parâmetros do kernel rp_filter
e arp_filter
.
Para ser claro, não preciso de balanceamento de carga, só preciso que cada interface seja executada independentemente para conexões simultâneas.
Obrigado!
Mesmo com cada interface em um namespace de rede diferente, eles afetam a velocidade um do outro quando executados simultaneamente.