load balance

Iniciado por movidoalinux, 23 de Abril de 2007, 09:43

tópico anterior - próximo tópico

movidoalinux

Bom dia!

Tenho um problema com balanceamento de links, tenho um link de adsl de 800 e preciso adicionar mais um de 800 e fazer load balance, só que simplesmente não funciona, já segui vários tutoriais e nada, para tanto mandei o esquema em anexo, tenho um proxy server também que já está funcionando com um link, quero adicionar um segundo servidor para fazer load balance, só que neste servidor sempre sai pela rota padrão, não joga nada pela outra rota, tenho um adsl com ip fixo e outro com ip dinamico, os dois com modem com roteador, já corretamente configurados e funcionando.

Segui o tutorial do seguinte link http://www.gulbf.com.br/?q=node/26, dentre outros mas simplesmente não funciona.

Uso kernel 2.6.17, preciso recompila-lo, com alguma opção ?

Se alguem tiver uma dica, fico grato.

Junior
Junior Bohn
Rio Grande do Sul
100% movido à linux!

Nitibailoff

Ola movidoalinux,

Não entendi a parte de um 'segundo servidor'. Tentou utilizar apenas UM servidor para o load balance? Aqui trabalhamos com apenas um server, com tres placas de rede, sendo duas para os modems routers e a outra para rede local. Temos um link da Brasil telecom e outro da GVT. Nas regras do tutorial que voce passou é assim que estão explicando, se não estou enganado. No mais, sobre o tutorial que voce esta seguindo, acho que as regras estão certas, acredito que tenha algum detalhe que esta ficando para tras.
É complicado porque requer testes, mas vai postando ai pra trocarmos idéias e se conseguir, diga o que fez.

abraços e até mais.

movidoalinux

Boa tarde!

O motivo de eu usar um segundo servidor é porqui li na internet que o squid só trabalha com a rota default, se ele estiver na mesma máquina não utuliza as duas rotas.


Você utiliza o squid proxy no seu servidor.

Consegui fazer funcionar, tem um erro neste script no site http://www.gulbf.com.br/?q=node/26, como ainda não terminei o servidor, vou fazer um testes. Tenho dois links da bersil telecom de 820 Kbps cada.

Obrigado.
Junior
Junior Bohn
Rio Grande do Sul
100% movido à linux!

Nitibailoff

Ola,
Bem, no freebsd 6.1 eu sei que funcionou load balance com squid, sem erros. Tu utiliza dois modems routers? Se um não for, ele vai pela rota padrão mesmo. Como voce fez com duas máquinas? não ficou com dois gateways? Nunca tentei com uma arquitetura assim, interessante.

bom fim de semana
abraços

movidoalinux

Bom dia!

Assim, vou fazer um servidor só fazer load balance e atraz dele ligar um servidor com squid e outras coisas, tenho dois modems com roteador, já configurados e dois links de 820 kbps, um com ip fixo outro com ip dinamico.

Ainda não instalei, o servidor com squid já funciona a um ano e o outro com load balance vou adicionar, a principio na terça feira.

Depois passo o script que usei e como funcionou.

Junior
Junior Bohn
Rio Grande do Sul
100% movido à linux!

movidoalinux

Bom dia!

Estava devendo o script para vocês:

#########################################
#!/bin/bash

#IPT=/usr/local/sbin/iptables
INT=eth2 #rede interna
IF_ADSL1=eth0 #adsl 1
IF_ADSL2=eth1 #adsl 2

# Limpando Regras antigas
iptables -t nat -F
iptables -t filter -F
iptables -t mangle -F
iptables -t nat -X
iptables -t filter -X
iptables -t mangle -X

#remove defaults routers
route del default gw 192.168.3.1
route del default gw 192.168.4.1

# Definicao de regras padrão
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

#marcando os pacotes que chegam pela rede local
iptables -A PREROUTING -t mangle -i eth2 -d 0/0 -j MARK --set-mark 3

#mascarando os pacotes de saida
iptables -t nat -A POSTROUTING -o $IF_ADSL2 -j MASQUERADE
iptables -t nat -A POSTROUTING -o $IF_ADSL1 -j MASQUERADE

# Mantendo conexoes ativas:
echo -n "Manutencao de conexoes ativas..."
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
echo "                             [OK]"

echo -n "Otimizando o roteamento..."
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
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
        cat /proc/sys/net/ipv4/conf/*/rp_filter
echo "                                [OK]"

# Interface ADSL 1
IF1=eth0
# Interface ADSL 2
IF2=eth1

# IP 1
IP1=192.168.3.5
# IP 2
IP2=192.168.4.5

# Gateway 1
P1=192.168.3.1
# Gateway 2
P2=192.168.4.1

# Rede 1
P1_NET=192.168.3.0
# Rede 2
P2_NET=192.168.4.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


modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward

ip route flush cache

#para acesso local a internet
route add default gw 192.168.4.1
############################################

Só tem um problema ainda, o msn cai de tempos em tempos, será que existe uma maneira de dizer que se uma conexão saiu por um link, fique naquele link até ser fechada?

A regra:

# Mantendo conexoes ativas:
echo -n "Manutencao de conexoes ativas..."
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
echo "                             [OK]"

Já não era para isto?

Junior
Junior Bohn
Rio Grande do Sul
100% movido à linux!