iproute vários balanceadores de carga ADSL através da VM

10

Por muito tempo (2 anos?) Eu tenho rodado uma máquina virtual (servidor Ubuntu 12.04) com uma capacidade de balanceamento de carga de saída muito básica, enviando diferentes conexões de saída para diferentes roteadores ADSL.

Configurado simplesmente usando o iproute sem o mascaramento NAT, o NAT é gerenciado pelos próprios roteadores ADSL de saída, permitindo que as conexões sejam encaminhadas diretamente para o 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.

Eu recentemente atualizei (do-release-upgrade -d) o balanceador de carga (Ubuntu 12.04 server virtual machine) para o Ubuntu 14.04.

Como as conexões de atualização da Internet usando o comando "ip route add default" acima estão causando problemas de conexão esporádicos e criando uma experiência inutilizável. Quase como se pacotes individuais estivessem sendo enviados pelos dois roteadores e não por 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?

    
por Drew Anderson 29.04.2014 / 12:02

1 resposta

2

Sei que o pôster original não precisa mais de uma solução, mas aqui está minha opinião sobre a melhor solução para esse problema. Eu também percebi que o cartaz preferiria usar o Ubuntu, mas configurar as regras de roteamento manualmente dessa forma não é ótimo para transferir a propriedade para outras pessoas ou mesmo para se referenciar anos depois.

Eu pessoalmente sugiro uma configuração mais robusta usando uma VM do PFSense para balancear as conexões. Eu provavelmente também sugeriria a realização de NAT na própria caixa do PFSense em vez de nos modems. Eu tenho algo semelhante a isso configurado em uma VM e funciona bem.

Para as conexões entre os modems e a VM do PFSense, eu uso um comutador vlan capaz de conectar 3 VLans separados à VM e dividi-los em 3 portas separadas no comutador. Isso, na verdade, fornece um cabo direto (virtual) de cada modem para a caixa pfsense e outro cabo para a lan. Você pode então configurar os modems para repasse, que varia de provedor para provedor.

É verdade que isso evita o problema em vez de abordá-lo diretamente, mas colocar o NAT nos próprios modems parece-me apenas pedir problemas. Além disso, o PFSense é especificamente projetado como uma solução de roteador pré-empacotada, portanto, ele suporta e continuará a ser testado com configurações como essa, garantindo melhor confiabilidade por meio de atualizações.

    
por 02.04.2015 / 18:54