Isso é definitivamente viável. Muitos de nós estavam executando configurações de banda larga mistas e com balanceamento de carga para corporações anos atrás e eles funcionaram muito bem. Muitos provavelmente ainda o fazem!
Você pode fazer isso de várias maneiras, inclusive usando as regras iptables
e / ou iproute2
( ip(8)
command) para configurar o roteamento de políticas.
O balanceamento de carga não é feito no nível do pacote, mas no nível conexão . Ou seja, todos os pacotes de uma conexão saem de uma interface. Qual interface isso depende da política de roteamento. Sem a cooperação dos seus primeiros roteadores além da sua própria infraestrutura, essa é a única maneira de fazer isso. Os computadores remotos não têm como saber se os seus dois endereços IP pertencem realmente ao mesmo computador. No TCP, uma conexão é identificada exclusivamente por uma 4-tupla (Remote-IP, Remote-Port, Local-IP, Local-Port). Se você enviar pacotes de IPs diferentes, o servidor remoto achará que eles pertencem a duas conexões diferentes e ficará irremediavelmente confuso.
Obviamente, esse tipo de coisa faz mais sentido em um ambiente corporativo, ou com muitos usuários compartilhando uma única conexão. No trabalho, estávamos combinando uma linha ADSL de 256 kbps com uma linha de cabo de 512 kbps (sim, naquela época) e tudo funcionava notavelmente bem, com o benefício adicional de alta disponibilidade.
Para obter ajuda prática, aqui está uma maneira de fazer isso com iproute2
. É para o Debian, mas funciona no Ubuntu também, claro.