Pessoal,
Fala-se muito em balanceamento de carga com mais de um link internet,
porém não é uma coisa simples. O grande problema é que você vai ter
IPs diferentes em cada link. Tendo IPs diferentes, quando você iniciar
uma conexão, esse trafego vai por um link. Quando você iniciar outra
conexão (da mesma sessão, por exemplo) esse trafego pode ser enviado
pelo segundo link, e a aplicação ( o servidor de destino ) não vai
entender, pois estão chegando pacotes de um outro IP para a mesma
sessão. Se for uma aplicação WEB não tem problema, pois a sessão é
controlada pelo browser. Para navegação WEB é tranquilo, porém para as
demais aplicações não funciona. Para sites de banco, que utilizam
conexões SSL, quando você inicia a sessão, ele vai por um link. Quando
você clica para tirar um extrato por exemplo, o servidor vai receber a
conexão pelo seu segundo IP, o browser está com todos os cookies da
sessão, porém o banco vai achar que alguem roubou sua sessão e vai
encerrar o acesso.
Outro caso é o MSN, pois a sessão fica amarrada ao IP que originou a conexão.
Para poder utilizar os 2 ou mais links eu recomendo que você faça uma
divisão do trafego. Tipo, navegação por um lado, email por outro,
etc...
Bom, voltando ao roberto, pra direcionar o squid por um link você
faria da seguinte forma:
Digamos o seguinte:
Na eth0 está o seu link principal, com ip 200.200.200.1/24 e GW 200.200.200.254
Na eth1 está o seu segundo link, com ip 200.100.100.1/24 GW 200.100.100.254
Na eth2 está a sua LAN, 192.168.0.0/24
Então você tem a tabela de roteamento principal:
200.200.200.0/24 dev eth0
200.100.100.0/24 dev eth1
192.168.0.0/24 dev eth2
default via 200.200.200.254
Você precisa criar uma tabela secundária:
echo "200 secundario" >> /etc/iproute2/rt_tables
ip route add 200.200.200.0/24 dev eth0 table secundario
ip route add 200.100.100.0/24 dev eth1 table secundario
ip route add 192.168.0.0/24 dev eth2 table secundario
ip route add default via 200.100.100.254 dev eth1 table secundario
Agora você cria uma regra:
ip rule add fwmark 0x10 lookup secundario
Os pacotes marcados com 0x10 vão ser jogados pela tabela de roteamento
'secundario'
Agora, é preciso marcar os pacotes que vão sair pelo secundário:
iptables -t mangle -A OUTPUT -s 200.100.100.1/32 -p tcp --dport 80 -j
MARK --set-mark 0x10
Estamos marcando todos os pacotes gerados localmente com ip
200.100.100.1 e tem destino a porta 80/tcp.
Agora, configure o squid para utilizar esse IP na diretiva tcp_outgoing_address
tcp_outgoing_address 200.100.100.1
Isso vai fazer com que o squid gere os pacotes para acesso aos
servidores web, com ip 200.100.100.1, que por sua vez estão sendo
marcados no iptables, com a marca 0x10, que por sua vez tem uma regra
dizendo que os pacotes com essa marca devem utilizar a tabela
secundario, que por sua vez tem gateway 200.100.100.254.
Simples né?
Ah, Heracias, channel bonding não serve para esse caso. É utilizado
normalmente para configurar 2 placas com a mesma rede para redundancia
e tolerancia a falhas.
Abraços!
2009/6/5 Heracias Bezerra <heracias(a)hotmail.com>:
Grande, da uma olhada em Bonding, acho que resolve o que vc ta
querendo.
Heracias B. L. Neto.
Project Fedora Ambassador
LPCI-I, Consultor em Segurança da Informação.
heracias(a)fedoraproject.org
Fone:+559888176613
https://fedoraproject.org/wiki/User:Heracias /
http://www.linkedin.com/pub/10/3a8/945
> From: andre(a)felicio.com.br
> To: fedora-users-br(a)redhat.com
> Subject: Re: [Fedora-users-br] Squid 2 Links
> Date: Fri, 5 Jun 2009 16:45:11 -0300
> CC:
>
> Rau,
>
> > Se alguém conseguir fazer *BALANCEAMENTO DE CARGA*, me avisa, pois até
> > hoje
> > não encontrei ninguém que conseguiu!
> > Trabalho com 3 links aqui, porém, o que consigo é fazer redundância
> > (quando
> > um link cai outro assume)... e editar rotas através do RT_TABLES....
>
> Logo abaixo você mesmo mostra fez o balanceamento. A solução é essa mesmo,
> iptables + iproute2
>
> > Tipo: redes do GMAIL e HOTMAIL saem por um link e coisas mais
> > importantes
> > saem pelo link dedicado !!! isso conseguimos fazer aqui (distribuir o
> > tráfego por diversos links)
>
> Isso é uma forma de balanceamento.
>
> > Agora fazer o chamado, BALANCEAMENTO DE CARGA, acredito que não vá
> > rolar...
> > tentei seguir diversos "tutoriais" encontrados pelo google, mas
sempre
> > geram um efeito colateral... MSN caindo, fora outros problemas !!!!
>
> Esta faltando um pouco de "conceitos" de rede.
>
> Seus links são de operadores diferentes, com IPs diferentes, não dá para
> fazer
> um balanceamento "perfeito", pacote a pacote. Utilize outras técnicas.
>
> > Enfim, se alguém conseguir, manda pra gente a mágica !!!!
>
> Uma técnica bem interessante para quem tem 2 links é tentar trabalhar com
> IPs
> impar para um link e pares para outros.
>
> --
> Att,
>
> André Felício
>
http://www.felicio.com.br
>
> "What people have been reduced to are mere 3-D representations of their
> own
> data." -- Arthur Miller
>
________________________________
Novo Internet Explorer 8: mais rápido e muito mais seguro. Baixe agora, é
grátis!
--
Fedora-users-br mailing list
Fedora-users-br(a)redhat.com
https://www.redhat.com/mailman/listinfo/fedora-users-br
--
Alejandro Flores
http://www.triforsec.com.br/