Il kernel Linux prima della 3.6 utilizzava la route roaching per eseguire il routing multipath IPv4, il che significava che il routing tra due linee / ISP separate era abbastanza semplice. Da 3.6 l'algoritmo è diventato pacchetto per pacchetto, il che significa che sono stati necessari alcuni trucchi marker tabella / route / iptables per ottenere le due linee / ISP.
Tuttavia, se si disponessero di due linee con lo stesso ISP in grado di instradare un singolo IP su entrambe le linee in base al pacchetto in modo bilanciato / failover, da 3.6 è possibile ottenere facilmente il collegamento di linea (a livello IP) a causa di il routing per pacchetto in entrambe le direzioni.
Da 4.4, il kernel è tornato al bilanciamento del carico basato sul flusso basato su un hash sugli indirizzi di origine e destinazione.
Attualmente sto eseguendo il kernel 4.4.36 e sto usando il routing multipath su connessioni PPPoE. Il mio traffico a valle dall'ISP viene instradato attraverso le due linee separate in base al pacchetto (un indirizzo IP viene instradato su entrambe le linee). Questo mi dà una velocità di download superiore alla velocità di una singola linea. Quasi la velocità di entrambe le linee sommate. Funziona davvero bene, video Skype, VoIP (UDP), YouTube ecc. Funzionano tutti alla grande.
A causa dell'esperienza così positiva a valle, voglio provarlo a monte ma il mio traffico a monte viene instradato secondo il più recente algoritmo basato sul flusso su entrambi i dispositivi ppp (che hanno lo stesso indirizzo IP). Ciò significa che non riesco a raggiungere una velocità di upload superiore alla velocità di una singola riga.
C'è un modo per configurare il kernel corrente per usare l'algoritmo per pacchetto? O qualche altro metodo per ottenere il routing multipath per pacchetto? Dovrei tornare a un kernel più vecchio (cosa che non voglio fare per vari altri motivi)?
Il mio ISP non supporta ppp multi-link.
Nel caso sia rilevante, sto attualmente eseguendo Arch Linux ARMv7 su un Raspberry Pi 3.