Linux Kernel antes de 3.6 usaba el almacenamiento en caché de rutas para realizar el enrutamiento de múltiples rutas IPv4, lo que significaba que el enrutamiento entre dos líneas / ISP separadas era bastante fácil. A partir de 3.6, el algoritmo cambió a ser por paquete, lo que significa que se necesitaron algunos trucos de marcador de tabla de ruta / regla / tablas ip para lograr las dos líneas / ISP.
Sin embargo, si tuviera dos líneas con el mismo ISP que pudiera enrutar una sola IP por ambas líneas por paquete de forma equilibrada / conmutación por error, entonces desde 3.6 podría lograr fácilmente la vinculación de línea (a nivel de IP) debido a el enrutamiento por paquete en ambas direcciones.
A partir de 4.4, el kernel cambió nuevamente al equilibrio de carga basado en el flujo basado en un hash sobre las direcciones de origen y destino.
Actualmente estoy ejecutando Kernel 4.4.36, y estoy usando enrutamiento de múltiples rutas sobre conexiones PPPoE. Mi tráfico descendente desde el ISP se enruta a través de las dos líneas separadas por paquete (una IP enrutada por ambas líneas). Esto me da una velocidad de descarga más rápida que la velocidad de una línea individual. Casi la velocidad de ambas líneas sumadas. Funciona muy bien, video de Skype, VoIP (UDP), YouTube, etc. todo funciona muy bien
Debido a que tengo una experiencia tan buena en sentido descendente, quiero probarlo en sentido ascendente, pero mi tráfico ascendente se enruta de acuerdo con el algoritmo basado en flujo más nuevo en ambos dispositivos ppp (que tienen la misma dirección IP). Esto significa que no puedo lograr una velocidad de carga que sea más rápida que la velocidad de una sola línea.
¿Hay alguna forma de configurar el Kernel actual para usar el algoritmo por paquete? ¿O algún otro método para lograr el enrutamiento de múltiples rutas por paquete? ¿Tendría que volver a un kernel anterior (que no quiero hacer por otras razones)?
Mi ISP no admite ppp multienlace.
En caso de que sea relevante, actualmente estoy ejecutando Arch Linux ARMv7 en una Raspberry Pi 3.