Por um longo tempo (2 anos?) Eu tenho uma máquina virtual (servidor Ubuntu 12.04) com um recurso de balanceamento de carga de saída muito básico, enviando diferentes conexões de saída para diferentes roteadores ADSL.
Configurado simplesmente usando o iproute sem mascarada de NAT, o NAT é gerenciado pelos próprios roteadores ADSL de saída, permitindo que as conexões sejam roteadas diretamente de volta ao remetente, ignorando a VM do roteador de balanceamento de carga. Também não há regras de firewall (iptables) na VM do roteador.
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
Isso funcionou bem por um longo tempo.
Atualizei recentemente (do-release-upgrade -d) o balanceador de carga (máquina virtual do servidor Ubuntu 12.04) para Ubuntu 14.04.
Como as conexões de atualização da Internet usando o comando "ip route add default" acima estão causando problemas esporádicos de conexão e criando uma experiência inutilizável. Quase como se pacotes individuais estivessem sendo enviados pelos roteadores e não pelas conexões completas.
Isso foi tentado com uma segunda máquina virtual 14.04 com o mesmo efeito.
Eu adoraria ter a mesma funcionalidade no Ubuntu 14.04 (kernel atual: 3.13.0-24). Eu não entendo o que mudou.
Alguma sugestão?