O Linux Kernel anterior à 3.6 usava o cache de rota para fazer o roteamento de caminhos múltiplos IPv4, o que significava que o roteamento entre duas linhas / ISPs separadas era bastante fácil. De 3.6, o algoritmo mudou para ser por pacote, o que significa que alguns truques de marcador de tabela de rotas / regra / iptables foram necessários para atingir as duas linhas / ISPs.
No entanto, se você tivesse duas linhas com o mesmo provedor de serviços de Internet que poderiam rotear um único IP nas duas linhas por pacote de maneira balanceada / failover, a partir da 3.6, seria possível obter facilmente ligação de linha (no nível IP) por causa de o roteamento por pacote nas duas direções.
Da 4.4, o kernel mudou novamente para o balanceamento de carga baseado em fluxo com base em um hash nos endereços de origem e destino.
Atualmente, estou executando o Kernel 4.4.36 e estou usando roteamento de caminhos múltiplos em conexões PPPoE. Meu tráfego downstream do ISP é roteado pelas duas linhas separadas por pacote (um IP roteado nas duas linhas). Isso me dá uma velocidade de download mais rápida que a velocidade de uma linha individual. Quase a velocidade de ambas as linhas somadas. Funciona muito bem, vídeo do Skype, VoIP (UDP), YouTube etc. tudo funciona muito bem.
Por ter uma experiência tão boa no downstream, quero experimentá-lo upstream, mas meu tráfego upstream é roteado de acordo com o algoritmo baseado em fluxo mais recente nos dois dispositivos ppp (que têm o mesmo endereço IP). Isso significa que não consigo atingir uma velocidade de upload superior à velocidade de uma única linha.
Existe uma maneira de configurar o Kernel atual para usar o algoritmo por pacote? Ou algum outro método para obter o roteamento de caminhos múltiplos por pacote? Eu precisaria reverter para um Kernel mais antigo (o que não quero fazer por vários outros motivos)?
Meu provedor de serviços de Internet não oferece suporte a ppp com vários links.
Caso seja relevante, atualmente estou executando o Arch Linux ARMv7 em um Raspberry Pi 3.