iproute balanceador de carga ADSL múltiple a través de VM


10

Durante mucho tiempo (¿2 años?), He estado ejecutando una máquina virtual (servidor Ubuntu 12.04) con una capacidad de equilibrio de carga saliente muy básica, enviando diferentes conexiones salientes a diferentes enrutadores ADSL.

Configurado simplemente mediante el uso de iproute sin enmascaramiento NAT, NAT es administrado por los enrutadores ADSL salientes, lo que permite que las conexiones se enruten directamente al remitente sin pasar por la VM del enrutador de equilibrio de carga. Tampoco hay reglas de firewall (iptables) en la máquina virtual del enrutador.

echo 1 > /proc/sys/net/ipv4/ip_forward

# flush initially
ip route flush cache

# remove whatever is there for the default to begin with
ip route delete default

# default load balancing rule
ip route add default scope global \
    nexthop via ${ROUTER2} dev ${INTERFACE} weight 6 \
    nexthop via ${ROUTER1} dev ${INTERFACE} weight 4

Esto ha funcionado bien durante mucho tiempo.

Recientemente he actualizado (do-release-upgrade -d) el equilibrador de carga (máquina virtual del servidor Ubuntu 12.04) a Ubuntu 14.04.

Dado que la actualización de las conexiones a Internet con el comando "ip route add default" anterior está causando problemas de conexión esporádicos y creando una experiencia inutilizable. Casi como si se enviaran paquetes individuales a través de ambos enrutadores y no de conexiones completas.

Esto se ha intentado con una segunda máquina virtual 14.04 con el mismo efecto.

Me encantaría tener la misma funcionalidad en Ubuntu 14.04 (núcleo actual: 3.13.0-24). No entiendo lo que ha cambiado.

¿Alguna sugerencia?


Mucha gente se queja de problemas de red. ¿Puedes actualizar tu kernel a 3.14? Aquí hay algunas instrucciones de instalación: linuxg.net/…
Sacx

La actualización a 3.14 mató a la VM. Panico kernel. Tal vez no lo hice bien, pero seguí esas instrucciones. Mientras tanto, he bajado a 12.04 (VM reinstalada) para continuar usando la funcionalidad de trabajo anterior, el soporte hasta 2017 probablemente esté bien.
Drew Anderson el

Para que la gente sepa, ya no necesito esta solución (cambio de trabajo), así que no sabré si puedo hacer que funcione en 14.04.
Drew Anderson el

¿Ambos enrutadores están en la misma red L3? es mejor tener 1 subred por NIC / ruta.
user158798

Respuestas:


2

Me doy cuenta de que el póster original ya no necesita una solución, pero esta es mi opinión sobre la mejor solución para este problema. También me doy cuenta de que el póster preferiría usar Ubuntu, pero configurar las reglas de enrutamiento manualmente de esa manera no es excelente para transferir la propiedad a otros o incluso hacer referencia a usted mismo años después.

Yo personalmente sugeriría una configuración más robusta usando una VM PFSense para equilibrar la carga de las conexiones. Probablemente también sugiera realizar NAT en el cuadro PFSense en lugar de en los módems. Tengo algo similar a esto configurado en una VM y funciona bien.

Para las conexiones entre los módems y la máquina virtual PFSense, utilizo un conmutador compatible con vlan para conectar 3 VLans separados a la máquina virtual y separarlos en 3 puertos separados en el conmutador. En efecto, esto proporciona un cable directo (virtual) desde cada módem a la caja pfsense y otro cable a la LAN. Luego puede configurar los módems para el paso a través, que varía de un proveedor a otro.

Es cierto que esto evita el problema en lugar de abordarlo directamente, pero poner el NAT en los módems me parece que solo estoy buscando problemas. Además, PFSense está específicamente diseñado como una solución de enrutador preempaquetado, por lo que admite y continuará probándose con configuraciones como esta, asegurando una mejor confiabilidad a través de las actualizaciones.


Esta respuesta puede haber sido mejor como comentario, pero no tengo la reputación de eso.
stonecrusher
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.