Re: balanceamento de links
	
	
		lucianogf, implementei o load balance e vou tentar ajudar você em suas dúvidas.
1. Os links ADSL serão configurados normalmente, entretanto, a rota padrão deve ser excluída para que seja incluída uma nova regra no final, informando que a rota padrão será composta pelo balanceamento dos dois links:
ip route add default table $T0 nexthop via $P1 dev $IF1 weight 1 nexthop via $P2 dev $IF2 weight 1
  Também será configurada uma rota padrão para a tabela main.
2. Essa regra é a principal do load balance, e para fazer o balanceamento com pesos diferentes basta mudar na regra acima o valor de um dos valores após a palavra "weight":
ip route add default table $T0 nexthop via $P1 dev $IF1 weight 1 nexthop via $P2 dev $IF2 weight 3
Neste caso, para 100 pacotes transmitidos através da $IF1 para fora, aproximadamente 30% dos pacotes serão transmitidos através do LINK da $IF1.
3. Essa é a mais importante das dúvidas: como fazer?
IF1=eth1
IF2=eth2
IP1=192.168.0.1
IP2=192.168.1.1
P1=192.168.0.254
P2=192.168.1.254
P1_NET=192.168.0.0
P2_NET=192.168.1.0
echo "199  T1" >> /etc/iproute2/rt_tables
echo "200  T2" >> /etc/iproute2/rt_tables
echo "201  T0" >> /etc/iproute2/rt_tables
iptables -A PREROUTING -t mangle -s 10.0.0.1/24 -d 0/0 -j MARK --set-mark 3
ip route add $P1_NET dev $IF1 src $IP1 table T1
ip route add default via $P1 table T1
ip route add $P2_NET dev $IF2 src $IP2 table T2
ip route add default via $P2 table T2
ip route add $P1_NET dev $IF1 src $IP1
ip route add $P2_NET dev $IF2 src $IP2
ip route add default via $P1
ip rule add from $IP1 table T1
ip rule add from $IP2 table T2
ip rule add fwmark 3 lookup $T0 prio 3
ip route add default table $T0 nexthop via $P1 dev $IF1 weight 1 nexthop via $P2 dev $IF2 weight 1
ip route flush cache
As únicas diferenças entre esse script e o que você postou é a existência de uma terceira tabela onde será configurada a rota padrão por onde sairão os pacotes da rede interna (que foram marcados antes), devidamente balanceados.
Quando tentei implementar o loadbalance pela primeira vez, todos os scripts que eu encontrava na Internet configuravam o balanceamento na rota padrão. Tentei por diversas vezes implementar do modo como você postou e não consegui.
Daí tive a idéia de marcar os pacotes da rede interna direcionados aos links e direcioná-los para a tabela $T0. Não sei te explicar porquê, mas sem uma rota na tabela main não rola...
Bem, espero ter ajudado. Tenta aê e posta o resultado!
	 
	
	
	
		Re: balanceamento de links
	
	
		cara...
fiz uns testes aqui mas não saiu como o esperado...
os todas as requisições sempre saem pela rota padrão..
até onde eu sei deveria intercalar entre as duas interfaces, mas não é isso que está acontecendo... 
as regras que estou usando são as seguintes:
	Citação:
	
		
		
			#!/bin/bash
IPT=/usr/local/sbin/iptables
INT=eth0
IF_ADSL1=eth1
IF_ADSL2=eth2
# Limpando Regras antigas
    $IPT -t nat -F
    $IPT -t filter -F
    $IPT -t mangle -F
    $IPT -t nat -X
    $IPT -t filter -X
    $IPT -t mangle -X
# Definicao de regras padrão
    $IPT -P INPUT ACCEPT
    $IPT -P OUTPUT ACCEPT
    $IPT -P FORWARD ACCEPT
    $IPT -A PREROUTING -t mangle -i eth0 -d 0/0 -j MARK --set-mark 3
    $IPT -t nat -A POSTROUTING -o $IF_ADSL2 -j MASQUERADE
    $IPT -t nat -A POSTROUTING -o $IF_ADSL1 -j MASQUERADE
			
		
	
 
	Citação:
	
		
		
			#!/bin/bash
# Interface ADSL 1
IF1=eth1
# Interface ADSL 2
IF2=eth2
# IP 1
IP1=10.0.1.1
# IP 2
IP2=10.0.2.1
# Gateway 1
P1=10.0.1.254
# Gateway 2
P2=10.0.2.254
# Rede 1
P1_NET=10.0.1.0
# Rede 2
P2_NET=10.0.2.0
ip route add $P1_NET dev $IF1 src $IP1 table ADSL1
ip route add default via $P1 table ADSL1
ip route add $P2_NET dev $IF2 src $IP2 table ADSL2
ip route add default via $P2 table ADSL2
ip route add $P1_NET dev $IF1 src $IP1
ip route add $P2_NET dev $IF2 src $IP2
ip route add default via $P1
ip rule add from $IP1 table ADSL1
ip rule add from $IP2 table ADSL2
ip rule add fwmark 3 lookup ADSL0 prio 3
ip route add default table ADSL0 nexthop via $P1 dev $IF1 weight 1 nexthop via $P2 dev $IF2 weight 1
ip route flush cache
			
		
	
 /etc/iproute2/rt_tables
	Citação:
	
		
		
			#
# reserved values
#
255   local
254   main
253   default
0    unspec
#
# local
#
#1   inr.ruhep
200   ADSL2
199   ADSL1
198   ADSL0
			
		
	
 valeu
	 
	
	
	
		Re: balanceamento de links
	
	
		cara..
resolvi a parada aqui...
seguindo o seguinte endereço:
http://www.debian-administration.org/articles/377 
depois de ver este artigo, percebi q o problema é q em todos os artigos q havia lido, neles falava pra adicionar a rota padrão, mas se irá fazer balanceamento não precisa adicioná-la, o próprio balanceamento adiciona as duas ou mais rotas como padrão, mas definindo que será feito balanceamento..
e pra poder balancear especificando os tipos de pacotes foi bem simples, é só marcar o pacote com iptables, depois adicionar o outro link, q nao seja o padrão, a uma tabela, e depois especificar a marcação para esta tabela...
valeu
	 
	
	
	
		Re: balanceamento de links
	
	
		Eu não conseguia fazer no início por isso... Daí adicionei mais uma tabela conforme postei, marquei os pacotes da rede interna pra serem roteados através da tabela $T0 e tá funcionando aqui até hoje.
Quando eu tentei fazer sem especificar a rota padrão na tabela main não funcionava de jeito nenhum...
Mas gostei de saber disso! Vou "acertar" o meu aqui e testar pra ver se funciona.
	 
	
	
	
		Re: balanceamento de links
	
	
		cara..
eu testei das duas maneiras, colocar os dois links pra serem usados balanceadamente
e colocar um como padrão e no outro especificar que tipo de serviço usará ele...
aqui vou usar a segunda opção, pois desta forma posso melhorar a qualidade de serviços específicos, como http, https, dns.. e assim vai