Balanceamento de links adsl
From: Julio Cesar Damasceno
To: LinuxISP
Sent: Wednesday, April 14, 2004 10:45 AM
Subject: (linuxisp-br) Balanceamento de ADSL


Senhores gostaria de saber de algem tem alguma solução para balancear a
carga usando dois links ADSL, vejam que não quero dividir a carga e sim
balancear, tipo se tenho dois ADSL de 512K quero somá-los e usar um 1MB,
isso é possível?

Grato,

Julio Cesar Damasceno

Sim, eh possivel, eu fiz desse jeito
ps: claro que outras regras sao necessarias
como a de NAT por exemplo.

#!/bin/sh
######################################
# Firewall for ADSL Velox Telemar                   #
# By Leandro R. leandro@cesan.com.br            #
# OBS: Balanceamento de trafego para              #
# 2 links ADSL                                                  #
######################################

# Marcando pacotes
echo -n "Marcando pacotes..."
iptables -A PREROUTING -t mangle -s 192.168.0.0/24 -d 0/0 -j MARK --set-mark
3
echo " [OK]"

# Desabilitando o filtro de pacotes do martian source
echo -n "Desligando rp_filter..."
for eee in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 0 > $eee
done
echo " [OK]"

# Definindo regras de balanceamento de Link:
echo -n "Balanceando links velox..."

# velox #1
ip route add 192.168.1.0/24 dev eth1 src 192.168.1.2 table velox1
ip route add default via 192.168.1.1 table velox1

# velox #2
ip route add 192.168.2.0/24 dev eth2 src 192.168.2.2 table velox2
ip route add default via 192.168.2.1 table velox2

# setando velox na tabela principal de roteamento
ip route add 192.168.1.0/24 dev eth1 src 192.168.1.2
ip route add 192.168.2.0/24 dev eth2 src 192.168.2.2

# setando a rota preferencial
ip route add default via 192.168.1.1

# regras das tabelas
ip rule add from 192.168.1.2 table velox1
ip rule add from 192.168.2.2 table velox2

# balanceamento de link
ip rule add fwmark 3 lookup velox prio 3
ip route add default table velox nexthop via 192.168.1.1 dev eth1 weight 1
nexthop via 192.168.2.1 dev eth2 weight 1

# flush no roteamento
ip route flush cache
echo " [OK]"