Non pirem... balaceamento de link é uma coisa, agregacao de link é outra.
agregacao é onda as pontas precisam "chegar em um acordo", balanceamento nao, ou entao voce ta me dizendo que um pacote sai por um link e nao pode retornar por outro? se voce pensar que as rotas tem que ser obrigatoriamente simetrica voce esta enganado.
eu jah fiz isso faz um certo tempo com links ADSLs, _aparentemente_ seu script parece ok e tudo mais, mas na realidade voce so precisa dessa linha de fato:
ip route add default nexthop via ip.addr \
weight 1 nexthop via ip.addr weight 1
nao precisa ficar criando tabela, etc, etc, etc nem marcando pacote, voce esta somente balanceando os links de saidas, voce precisa _sim_ marcar o pacote quando voce quer fazer um QoS da vida ou marcar um pacote para sair sempre por um link, coisas nesse estilo, mas simplesmente para balancear o link, basta criar uma rota default com 2 nexthops (coisa que o route nao faz, so faz para uma)
bom jah falei muito, tente da maneira simples e veja se voce consegue, sem muitas regras de firewall nem nada... se conseguir, veja onde esta errando... ah.. nao espere que voce conseguia baixar usando somente um "download" uma taxa de 1Mbit, supondo q voce tem 2 links de 512k. Ai realmente nao vai funcionar legal.
Vou te dar uma dica onde voce deve ler, eu jah respondi essa pergunta nesse forum uma vez, pode pesquisar depois se quiser mas leia o seguinte: Adv-Routing-Howto (advanced routing howto), voce pode encontrar ele na tldp (
www.tldp.org), ele cobre tanto load balance, quanto outros quesitos de roteamento avancado no linux, basta seguir passo a passo o howto que funciona legal.