Estou tendo um problema com a tentativa de fazer um load balence.
A minha situação é a seguite: tenho dois links de internet, uma é o virtua com 1200 kbps e outro é um speedy com 600 kbps
Tenho uma maquina linux conectiva 10 com kernel 2.6.5 rodando iptables e iproute2 com 3 placas de rede
etho é a placa do virtua ( 1º link) e tem o ip 201.6.76.42/22 com gateway 201.6.76.1/22
eth1 é a placa da rede local e tem o ip 192.168.0.1/24
eth2 é a placa do speedy ( 2º link) e tem o ip 200.204.152.219/24 e gateway 200.204.152.193/24
nehuma configuração de rota é feita na mão, todas as configurações de roteamento e compartilhamento e balanceamento é feita por um script que segue abaixo na integra. O arquivo rt_tables se encontra da seguinte forma:
10 virtua
11 speedy
30 geral
segue o script:
#!/bin/bash
########LIMPAR TODAS AS TABELAS
iptables -F -t filter
iptables -F -t nat
iptables -F -t mangle
########APAGA TODAS AS CHAINS
iptables -X -t filter
iptables -X -t nat
iptables -X -t mangle
########ZERA TODAS A TABELAS
iptables -Z -t filter
iptables -Z -t nat
iptables -Z -t mangle
########ATIVAR O FORWARD
echo 1 >/proc/sys/net/ipv4/ip_forward
########REGRAS PADRAO
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
########habilitando o compartilhamento
echo -n "Habilitando o mascaramento..."
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
echo " [OK]"
######## regra para negar pacotes icmp
iptables -t filter -A INPUT -p icmp --icmp-type echo-request -i eth1 -j ACCEPT
iptables -t filter -A INPUT -p icmp --icmp-type echo-request -j DROP
iptables -t filter -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
######## recusar pacotes fragmentados
iptables -t filter -A FORWARD -j REJECT -f -p tcp -d 192.168.0.0/24
######## negar acesso ao endereço de broadcast
iptables -t filter -A FORWARD -j DROP -d 192.168.0.255
######## regras para ssh no firewall
iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
########regras de redirecionamento (DNAT)
iptables -t nat -A PREROUTING -p tcp --dport 5900 -j DNAT --to 192.168.0.254
iptables -t nat -A PREROUTING -p tcp --dport 5800 -j DNAT --to 192.168.0.254
########REGRAS PARA FECHAR PORTAS 21,25,110,389 E 80
iptables -t filter -A INPUT -p tcp -i eth0 -m multiport --dport 21,25,80,110,389 -j DROP
###### BALANCEAMENTO DE LINKS ######################
######## 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..."
######## virtua #1
ip route add 201.6.76.0/22 dev eth0 src 201.6.76.42 table virtua
ip route add default via 201.6.76.1 table virtua
######## speedy #2
ip route add 200.204.152.0/24 dev eth2 src 200.204.152.219 table speedy
ip route add default via 200.204.152.193 table speedy
######## setando virtua/speedy na tabela principal de roteamento
ip route add 201.6.76.0/22 dev eth0 src 201.6.76.42
ip route add 200.204.152.0/24 dev eth2 src 200.204.152.219
######## setando a rota preferencial
ip route add default via 201.6.76.1
######## regras das tabelas
ip rule add from 201.6.76.42 table virtua
ip rule add from 200.204.152.219 table speedy
######## balanceamento de link
ip rule add fwmark 3 lookup 30 prio 30
ip route add default table geral nexthop via 201.6.76.1 dev eth0 weight 2 nexthop via 200.204.152.193 dev eth2 weight 1
######## flush no roteamento
ip route flush cache
echo " [OK]"
sleep 3
Dessa forma hora as maquinas conseguem acessar a internet outra hora não e parece estar tendo problema para resolver dns
Por favor quem puder me ajudar ?
Desde ja agradecido