Pessoal,
Li alguns textos sobre balanceamento de links.
O da empresa Alto Rio Preto, Howto 'Linux advanced routing bla bla bla'
e um do grupo de linux de ES...
Outros textos que achei na internet sao mt parecidos com esses....
Vou tentar ser o mais breve possivel pro email não ficar muito longo.
Deixe eu expor meu ambiente:
Servidor Conectiva 10 (apache, email, dhcp, dns, squid pra navegacao).
Um link via rádio IP fixo e um ADSL (velox) dinamico.
Segui os procedimentos dos textos que li e basicamente o q acontece é
que se os pacotes sairem das maquinas dos usuarios direto pra internet,
o balance acontece.... os pacotes originados do meu servidor só saem
pelo rádio.
detalhando, ficaria assim:
Quando eu tiro o proxy transparente, todas as requisicoes das maquinas
clientes são originadas na propria maquina dos usuarios e só acontece um
"forward" atraves do servidor pra ir pra internet.
Dessa forma acaba ocorrendo um certo balanceamento, porém abaixo do
esperado.
O Link ADSL é de 2 megas ... nas regras do iproute2 coloquei pesos
equivalentes (8:1)... mas o link que continua mais ativo é o do rádio...
No outro cenário, quando eu deixo o proxy transparente ativo, acontece o
seguinte:
toda requisicao na porta 80 é redirecionada pro meu servidor pro squid
(:3128)... e a partir do meu servidor é gerada a requisicao pra internet ...
porem como eu já disse, qualquer requisicao startada a patir do meu
servidor não 'entra no balanceamento'....
Não sei se é problema nas regras do balance ou se é problema na marcação
dos pacotes (acho que é a ultima opcao)... outro detalhe que esqueci de
escrever... eu não posso colocar uma regra de marcacao de pacotes maluca
(tipo... uma regra que marque tudo oq passar pelo servidor), pq se nao
os emails podem sair pelo velox e isso pode dar problemas pois o ip do
velox nao tem um MX registrado no DNS (pois é ip dinamico)...
Minhas regras de balance estão da seguinte forma:
"legenda" =) RAD = Radio / VLX = Velox
xxx_NET é a rede, xxx_IP é o IP, xxx_GW é o gateway e xxx_DEV é o
dispositivo:
ip route add $RAD_NET dev $RAD_DEV src $RAD_IP table radio
ip route add default via $RAD_GW table radio
ip route add $VLX_NET dev $VLX_DEV src $VLX_IP table velox
ip route add default via $VLX_GW table velox
ip route add $RAD_NET dev $RAD_DEV src $RAD_IP
ip route add $VLX_NET dev $VLX_DEV src $VLX_IP
ip route add default via $RAD_GW
ip rule add from $RAD_IP table radio
ip rule add from $VLX_IP table velox
ip rule add fwmark 3 lookup conexao prio 3
ip route add default table conexao \
nexthop dev $VLX_DEV via $VLX_GW weight 8 \
nexthop dev $RAD_DEV via $RAD_GW weight 1
ip route flush cache
e aqui estão só as regras de marcacao dos pacotes...
$IPTABLES -A PREROUTING -t mangle -p tcp --dport 80 -j MARK --set-mark 3
$IPTABLES -A PREROUTING -t mangle -p tcp --dport 21 -j MARK --set-mark 3
$IPTABLES -A PREROUTING -t mangle -p tcp --dport 20 -j MARK --set-mark 3
pelo oq eu entendo dessas regras, qquer pacote que o destino seja
páginas web ou ftp serão marcados com o numero 3 .... e teoricamente,
seria qquer pacote que estivessem sendo originados ou roteados pelo meu
servidor...
Como essas marcacoes não deram certo (os pacotes originados do servidor
não estavam sendo balanceados), eu tentei essa aqui só excluindo o
servico de email:
$IPTABLES -A PREROUTING -t mangle -p tcp --dport ! 25 -j MARK --set-mark 3
e tb nao deu certo... eu entrava num ftp pra baixar qquer coisa, e
nada... navegava pelo lynx e baixa algo via http e nada... td
exclusivamente pelo radio... td oq o squid ia buscar na internet tb vai
pelo radio...
desativando o squid daí algumas coisas vao pelo velox, porem como eu ja
disse, a grande maioria dos pacotes vao td pelo radio... o velox de
2megas fica praticamente sem utilizacao...
na verdade eu ja tentei de td...
daí tive a ideia de marcar os pacotes que seriam jogados pro squid...
$IPTABLES -A PREROUTING -t mangle -i $INTIF -s $INTNET -p tcp --dport
80 -j MARK --set-mark 3
$IPTABLES -A PREROUTING -t mangle -i $INTIF -s $INTNET -p tcp --dport
3128 -j MARK --set-mark 3
# proxy transparente
$IPTABLES -A PREROUTING -t nat -i $INTIF -s $INTNET -p tcp --dport 80
-j DNAT --to 10.105.0.1:3128
mas tb nao deu em nada...
eu acho que esses pacotes 'morrem' no squid e o squid gera um 'novo' pra
ir buscar na internet oq nao tem no cache dele...
soh uma observacao final... o default gateway q coloquei é pelo radio
(por causa dos emails e outros servicos que uso nele)... eu soh preciso
que a navegacao saia pelo velox... o resto tem q continuar saindo pelo
radio... e claro, qdo o velox cair e nao voltar, entao passa a sair td
pelo radio até eu ver oq aconteceu....
enfim ... este está sendo meu problema... hehhehehehe ...
se alguem tiver alguma dica , uma luz no fim do tunel (q nao seja uma
carreta vindo em minha direcao), eu agradeco mt ...
Até mais,
Sérgio
---------------------------------------------------------------------------
Esta lista é patrocinada pela Conectiva S.A. Visite http://www.conectiva.com.br
Arquivo: http://bazar2.conectiva.com.br/mailman/listinfo/linux-br
Regras de utilização da lista: http://linux-br.conectiva.com.br
FAQ: http://www.zago.eti.br/menu.html