Pessoal,
Para quem usa o OpenBSD e FreeBSD, a solução é usar o PF. Veja este link http://www.openbsd.org/faq/pf/pt/pools.html. Na semana que vem vou implentar usando dois links.. qualquer novidade eu volto a comunicar a vcs
Pessoal,
Para quem usa o OpenBSD e FreeBSD, a solução é usar o PF. Veja este link http://www.openbsd.org/faq/pf/pt/pools.html. Na semana que vem vou implentar usando dois links.. qualquer novidade eu volto a comunicar a vcs
olah senhores.
eu consegui colocar o load balance no linux sem usar o patch-o-magic, soh estou tendo um problema, o msn nao esta conectando, entao agora estou pensando em adicionar alguma regra de marcacao de pacotes com destino ae msn e direcionar para apenas um link dsl assim como eu fix com os autenticadores dsl .
segue a regra do firewall , alteracao no velox.pl e a alteracao na rota de acordo com a marcacao.
eth0 = 192.168.1.1
roteador eth0 = 192.168.1.2
eth1 = 10.0.0.1 (clientes)
roteador eth2 = 192.168.2.2
eth2 = 192.168.2.1
velox.pl
#!/usr/bin/perl
$VELOX = 'COM';
$COMERCIAL='local';
$PROVEDOR='provedor'
$LOGIN = '[email protected]'
$SENHA = 'senha';
#ip local da interface eth0
#para outras interfaces basta alterar o
#numero de ip
$IPLOCAL='192.168.1.1';
$HOST = 'www.veloxzone.com.br';
$PORTA = 80;
@HOSTS =('mx.uol.com.br','mx.terra.com.br','mail.telemar.net.br');
$HOSTPORTA = 25;
$HOSTTIMEOUT = 2;
$RES_URL="/serviceLogon";
$RES_POST="service=internet_$PROVEDOR&fcn=serviceLogon&ac=home&usr=&username=$LOGIN&password=$SENHA&OK=OK";
$COM_URL="/serviceStart?service=internet_$COMERCIAL";
$COM_POST="confirmed=true";
if ($VELOX eq 'RES')
{
$URL=$RES_URL;
$POST=$RES_POST;
}
elsif ($VELOX eq 'COM')
{
$URL=$COM_URL;
$POST=$COM_POST;
}
else
{
print "!ERRO! Tipo do velox mal configurado, edite o script !!\n";
print "!ERRO! Somente as opcoes \"RES\" ou \"COM\" sao possiveis!!\n";
exit 2;
}
use IO::Socket;
sub autentica()
{
#adicionar LocalAddr => $autentica_ip
$sock = new IO::Socket::INET ( LocalAddr => $IPLOCAL, PeerAddr => $HOST, PeerPort => $PORTA, Proto => 'tcp');
die("!ERRO! Nao e' possivel conectar em $HOST !!\n") unless $sock;
print "!OK! Conexao estabelecida com $HOST.\n";
$sock->print("POST $URL HTTP/1.0\r\n");
$sock->print("Content-Type: application/x-www-form-urlencoded\r\n");
$sock->print("Host: $HOST\r\n");
$sock->print("Content-Length: " . length($POST) . "\r\n");
$sock->print("\r\n$POST\r\n\r\n\r\n");
print "!OK! Aguardando resposta do servidor....\n";
while ($sock->getline()) {}
$sock->close();
}
sub ping($)
{
$x=0;
foreach (@HOSTS)
{
if (($_[0] eq 'rapido') && ($x>0))
{ return 0; }
$c = new IO::Socket::INET ( LocalAddr => $IPLOCAL, PeerAddr => "$_" , PeerPort => $HOSTPORTA, Proto => 'tcp', Timeout => $HOSTTIMEOUT);
if ($c)
{
$c->close();
return 1;
}
$x++;
}
}
print "!OK! Verificando se voce ja esta autenticado...\n";
if ( ping('rapido') )
{
print "!OK! Voce JA esta autenticado !\n";
exit 0;
}
print "!OK! Voce ainda nao esta autenticado.\n";
autentica();
while ( not ping('completo') )
{
print "!ERRO! Servidor nao liberou acesso, possivel senha ou configuracao incorreta...\n";
print "!OK! Tentando novamente...\n";
autentica();
}
print "!OK! Autenticado com sucesso !!\n";
#end velox.pl EOF
#firewall marcacoes para autenticacao
#eu uso mais seguro mas aki coloquei para aceitar td de td
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth2 -j ACCEPT
iptables -A FORWARD -i eth2 -o eth1 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
#roteador 1
iptables -t mangle -A PREROUTING -s 192.168.1.0/30 -d www.veloxzone.com.br -j MARK --set-mark 3
#roteador2
iptables -t mangle -A PREROUTING -s 192.168.2.0/30 -d www.veloxzone.com.br -j MARK --set-mark 4
#clientes
iptables -t mangle -A PREROUTING -s 10.0.0.0/24 -d 0/0 -j MARK --set-mark 2
iptables -t mangle -A PREROUTING -s 192.168.1.0/30 -d ! www.veloxzone.com.br -j MARK --set-mark 2
iptables -t mangle -A PREROUTING -s 192.168.2.0/30 -d ! www.veloxzone.com.br -j MARK --set-mark 2
#EOF firewall
#rotas
############# OK ##############
echo dsl1
ip route add 192.168.1.0/30 dev eth0 src 192.168.1.1 table velox1
ip route add default via 192.168.1.2 dev eth0 table velox1
echo dsl2
ip route add 192.168.2.0/30 dev eth2 src 192.168.2.1 table velox2
ip route add default via 192.168.2.2 dev eth2 table velox2
echo rotas
ip route add 192.168.1.0/30 dev eth0 src 192.168.1.1
ip route add 192.168.2.0/30 dev eth2 src 192.168.2.1
echo rota default
ip route add default via 192.168.1.1
echo tabelas
ip rule add from 192.168.1.1 table velox1
ip rule add from 192.168.2.1 table velox2
echo pacotes com flags default
ip rule add fwmark 2 lookup velox prio 2
#pacotes para autenticar velox1
ip rule add fwmark 3 lookup velox1 prio 3
#pacotes para autenticar velox2
ip rule add fwmark 4 lookup velox2 prio 4
echo adicinando hups entre as interfaces
ip route add default table velox nexthop via 192.168.1.2 dev eth0 weight 1 nexthop via 192.168.2.2 dev eth2 weight 1
ip route flush cache
#EOF iproute
that`s alll
duvidas sugestoes ?
[email protected] (msn)
a solucao de parar de cair o msn é essa mesmo somente essa q eu saiba a n ser usar router cisco com Rip, BGP ou OSPF para fazer isso
Cara te digo sem o patch alem do msn, vai ter problemas com bancos e downloads grandes, por isso sugiro seguir o tutorial todo, pois tb conseguia balanceamento, mas msn, bancos e downloads grandes nçaod ava certo.
falows
mas amigos to precisando fazer isso em router eu acho q fica bem melhor oq vc me endicam um que tenha 4 wans para unir 4 link dedicados 2 de 2 MB e 2 de 1 MB um q tenho custo beneficio bom....
grato.
Voce precisa num router eh isso?? se for que eu saiba da com o Cisco se os links forem da mesma operadora, ae voce pede pra ela criar um AS pra voce ae voce configura o AS e o cisco balanceia.Postado originalmente por tiagomatias
falows
8)