Ir ao conteúdo
  • Cadastre-se

Balanceamento de carga em Linux Server ou roteador "Loadbalance"?


maozaorox

Posts recomendados

Fala galera, seguinte ...

Tenho aqui na loja um servidor Lilo que distribui o speedy pra loja toda através de 1 switch, agora o problema é p seguinte, devido a varios problemas de conexoes do speedy, nós contratamos o NET virtua tambem, e eu gostaria de saber como configurar meu servidor Lilo pra distribuir as 2 internets, pois se uma cair a outra esta la para suprir.

Tenho 3 placas de rede no servidor, creio que seja uma configuração no pppoe.conf mas como o virtua é Cable não sei se é la que tenho q mexer algo.

Preciso urgente disso, se alguem poder me dar uma luz, grato.

Eu achei isso pesquisando na internet:

http://www.vivaolinux.com.br/artigo/Conexoes-redundantes-a-Internet-utilizando-Linux/?pagina=4

porém não faço ideia de onde fazer essa configuração, pois nao tem inferface grafica aqui, fica só tipo no console.

Link para o comentário
Compartilhar em outros sites

Mas será que não há outra maneira de eu configurar a internet através do servidor para destribuir os dois, ou para usar o virtua e se por acaso cair o speedy entrar no lugar.

Eu pesquisei sobre esses rotiadores e vi que se investir nisso talvez eu nem precise mais do servidor de internet, fazendo com que o investimento nele seja em vão, pois alem de tudo esses rotiadores são caros.

Mas de qualquer forma alguem tem tipo um tutorial para configurar esse roteador? Ou sera que é fácil ? Lembrando que uma conexao é ADSL e a outra é cable.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Antes de começar o script, digite as linhas abaixo no console (como root):


mkdir /etc/link
touch /var/log/redundante.log


#!/bin/bash -x

#a linha abaixo apenas define os caminhos da variável "path"
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/etc

#####A EMBRATEl usa o TERRA para fazer o teste, você pode deixar esse IP pra teste mesmo
TERRA="200.176.2.10"

#####A GVT usa o UOL para fazer o teste, você pode deixar esse IP pra teste mesmo
UOL="200.98.249.120"

#####GW da Embratel - Aqui você diz o seu gateway da Embratel (lembre-se de substituir pelo o do seu provedor)
ROTAEMBRATEL="201.21.xxx.1"

#####GW da GVT - Mesma coisa do de cima, diga o IP do seu gateway.
ROTAGVT="10.1.1.1"

#####IP fixo da embratel
IPEMBRATEL="201.21.xxx.xx"

#####IP da gvt
IPGVT="10.1.1.254"

#####Interface da Embratel
ETHE="eth1"

#####Interface da GVT
ETHG="eth2"

#####IP do terra
TESTE="200.176.2.10"

#####Arquivo de firewall da embratel - Esse arquivo é onde está os comandos, lembre-se dar permissão de execução para esse arquivo
FWE="/etc/firewall/fwEmbratel.sh"

#####Arquivo de firewall da gvt - Esse arquivo é onde está os comandos, lembre-se dar permissão de execução para esse arquivo
FWG="/etc/firewall/fwGvt.sh"

#####Data atual - Isso servirá para colocar no log quando houve mudança do link e a que horas
HORAATUAL=`date +%T`
DATAATUAL=`date +%Y-%m-%d`
DATA=$DATAATUAL" / "$HORAATUAL

#####Verifica a rota atual - Esse comando apenas verifica qual link você está usando
ROTAATUAL=`(route -n | grep UG | awk -F' ' '{ print $2}')`

#####Deleta a rota - Ele irá deltar a rota do gateway, para só depois colocar a outra
ROTADEL="route del default gw "

##### Comando para adicionar a rota - Agora ele adiciona a nova rota para o gateway
ROTAADD="route add default gw "

#####Adiciona a rota do terra (Se a embratel estiver fora) - Agora começa a "moer", se a "embratel" estiver fora, ele joga todo mundo pra o "GVT"
route add -host $TERRA gw $ROTAEMBRATEL dev eth1
route add -host $UOL gw $ROTAGVT dev eth2

#####Se o terra pingar, o link esta OK - agora começa os testes de ping para verificar se o link caiu ou não
if ( ping -I $ETHE -c 4 $TERRA > /dev/null ); then
#Cria os logs - vai gerar os logs
#echo $DATA >> /var/log/redundante.log
#echo "Link Embratel esta OK" >> /var/log/redundante.log

#####Se a rota default for igual a rota da embratel, nao faz nada
if [ "$ROTAATUAL" == "$ROTAEMBRATEL" ]; then
echo "Rota Embratel esta OK - $HORAATUAL" >> /var/log/redundante.log
#####Se a rota default for diferente da embratel, coloca a rota default como embratel
else
$ROTADEL $ROTAATUAL
$ROTAADD $ROTAEMBRATEL
$FWE
cat /etc/firewall/networkEmbratel.txt > /etc/sysconfig/network
echo "#!/bin/bash" >> /etc/firewall/linkVolto.sh
echo "$ROTADEL$ROTAGVT" >> /etc/firewall/linkVolto.sh
echo "$ROTAADD$ROTAEMBRATEL" >> /etc/firewall/linkVolto.sh
echo "$FWE" >> /etc/firewall/linkVolto.sh
chmod +x /etc/firewall/linkVolto.sh
/etc/firewall/linkVolto.sh
/bin/bash /etc/firewall/linkVolto.sh
rm -rf /etc/firewall/linkVolto.sh

echo "Link da Embratel esta no ar novamente OK - $HORAATUAL" >> /var/log/redundante.log
#Envia um email avisando que voltou o link da embratel
#mail -s "Cliente XYZ - O Link da EMBRATEL voltou a funcionar" [email protected] < /etc/firewall/embratel.txt
fi
#Finaliza os logs
#echo "Fim da verificacao EMBRATEL" >> /var/log/redundante.log
#echo " " >> /var/log/redundante.log
#echo " " >> /var/log/redundante.log

else
#####Se pingar é porque o link esta ok
if ( ping -I $ETHG -c 4 $UOL >/dev/null ); then
#cria os logs
echo $DATA >> /var/log/redundante.log
echo "Link GVT esta OK" >> /var/log/redundante.log

##### Se a rota default for igual a da gvt, nao faz nada
if [ "$ROTAATUAL" == "$ROTAGVT" ]; then
echo "Rota Embratel ainda esta fora do ar" >> /var/log/redundante.log
echo " " >> /var/log/redundante.log
echo " " >> /var/log/redundante.log
##### Se a rota default for diferente da GVT, adiciona a rota defaul como sendo da GVT
else
$ROTADEL $ROTAEMBRATEL
$ROTAADD $ROTAGVT
$FWG
cat /etc/firewall/networkGvt.txt > /etc/sysconfig/network
echo "Ativando a rota da GVT" >> /var/log/redundante.log
#Envia o email avisando o que link da Embratel caiu
# mail -s "Cliente XYZ - O Link da EMBRATEL fora do AR" [email protected] < /etc/firewall/embratel_caiu.txt
# mail -s "Link da GVT esta no AR" [email protected] < /etc/firewall/gvt.txt
fi

#Cria os logs
echo "Fim da verificacao GVT" >> /var/log/redundante.log
echo " " >> /var/log/redundante.log
echo " " >> /var/log/redundante.log
fi

fi


#####Deleta rotas do Terra
route del -host $TERRA gw $ROTAEMBRATEL dev eth1
route del -host $UOL gw $ROTAGVT dev eth2

Pronto !

Esse arquivo pode ser criado onde você quiser, apenas recomendo que seja dentro de /usr/local para manter tudo bem organizado.

;)

Recomendo que você faça isso via Putty :D:D

Link para o comentário
Compartilhar em outros sites

Nossa, acho que isso era o que eu estava precisando mesmo, só me deixe claro algumas coisas por favor, o que tenho q mudar ali? Só o IP's e o e-mail de envio de falha de conxão ? Ou tem algo mais que seja importante eu mudar?

Outra coisa, preciso de um nome especifco para o arquivo do codigo, que nome você me sugere? Ele será executado automaticamete quando eu reiniciar o servidor ou algo do tipo?

As duas conexoes devem ter o IP fixo ?

Agradeço mas uma vez.

Abraços.

Link para o comentário
Compartilhar em outros sites

Nossa, acho que isso era o que eu estava precisando mesmo, só me deixe claro algumas coisas por favor, o que tenho q mudar ali? Só o IP's e o e-mail de envio de falha de conxão ? Ou tem algo mais que seja importante eu mudar?

Outra coisa, preciso de um nome especifco para o arquivo do codigo, que nome você me sugere? Ele será executado automaticamete quando eu reiniciar o servidor ou algo do tipo?

As duas conexoes devem ter o IP fixo ?

Agradeço mas uma vez.

Abraços.

Aguardo respostas, pois já estou querendo testar esse script hoje mesmo :D

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

O nome pode ser qualquer um, normalmente uso "link.sh", mas lembre-se de dar permissão de execução a ele.

Se quiser colocá-lo na inicialização da máquina, basta colocá-lo dentro do "rc.local" .

;)

Altere apenas o seu IP e o e-mail no caso de dar falhas.

Você pode agendá-lo no cron, assim, ele fará a checagem a cada 10 minutos , por exemplo.

Desculpe a demora na resposta.

Abraços !

Link para o comentário
Compartilhar em outros sites

Muito obrigado, só estou na espera da 3 placa de rede para testar esse script, assim que ela chegar ja vou mandar bala! o/

Uma pergunta meio fora do negócio, como faço pra instalar essa placa de rede no linux? Só meter o CDzão mesmo ? Ou sera q reconhece sozinha ? Pois como não tem interface grafica, não tenho certeza dessas coisas apenas digitando no console dele =x

Grato mais uma vez e assim que eu testar postarei o resultado.

Link para o comentário
Compartilhar em outros sites

É uma plaquinha de rede comum, não vi a marca ainda, mas eu acredito que ela reconheça sozinha mesmo.

Só uma pergunta que ficou no ar, os IP's devem ser fixos? Pois o do speedy é dinamico e distribuido pelo servidor, acho que continua a mesma coisa né ? O servidor conecta normalmente e esse script faz o resto do trabalho certo?

outra coisinha, o Gateway do speedy e do virtua eu pego onde? se alguem tiver e quiser me passar ficaria ate mais fácil ^^

Abraços e obrigado mais uma vez.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Quando você se conecta via ADSL você recebe um IP privado do modem, então caso você use um modem ADSL, defina uma reserva de IP para o seu servidor.

Caso use Cable Modem eu recomendo que você use um roteador (desses baratos mesmo), já que você precisa informar seu IP, Gateway e afins ...

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

Opa :)

Então, estou com dificuldades para encontrar uma placa de rede por aqui, esta tudo em falta, e não consigo arranjar ninguém que venda uma usada ;/

Andei pensando, se eu comprasse um roteador não seria mais fácil para mim?

Pois ele faria todo o trabalho de distribuição de IP para a minha rede, tanto no Speedy(ADSL, IP dinânico) como no Virtua(Cable, IP Fixo), esto certo?

Agradeço desde já,

Abraços.

Link para o comentário
Compartilhar em outros sites

Eu desisti da ideia do roteador já.

Vou ter que quebrar a cabeça para configurar o servidor para trabalhar com a redundância.

Falei com o rapaz que fez a configuração do servidor do speedy aqui a um tempo atrás, nós usamos o squid pra gerenciar o que as pessoas entram e para bloqueio de sites.

Se eu configurar esse Script que o Ardanuy me forneceu as 2 internets terão o bloqueio dos sites e tal?

Ou tenho que configurar outra coisa? Ele disse que precisa configurar o IP do virtua não o que =O

Mas não sei se é configurar pro squid, ou se é pra configurar pra internet funcionar em si.

Link para o comentário
Compartilhar em outros sites

O bloqueio de sites continuará funcionando para qualquer link que exista na máquina.

Você precisará no script, definir os IPs dos dois links.

Desculpe ficar amolando, mas é que estou meio confuso e tenso, pois disse pro chefe que se caisse o speedy eu conseguiria colocar o virtua rapidinho pra poder usar a internet hehehehe

O que ta me encucando é que o seguinte, então precisarei dessa terceira placa de rede(OK) e um roteador ? Ou o roteador não é necessariamente preciso? Pois no script ele pede o Gatway do Speedy e do Virtua, tem algum específico ou eu coloco qual eu quiser (192.168.0.1) ?

E ele pede também o IP do virtua e do speedy, só que o speedy é IP Dinânico, então ele não vai trocar de IP sempre? Como vou colocar um IP especifico sendo que ele mudará depois? Ou esses IP's que el pede, são os IP's dos modens?

No windows tem o ipconfig do DOS que mostra o IP, mascara e gateway, no linux como vejo isso? Pois estou na maquina aqui da rede com windows, se digito ipconfig ele aparece o gateway do servidor linux daki e o IP que nós atribuimos a ela., e se eu precisar pega os IP dos modems creio que terei de fazer algo do tipo.

Mais uma vez me desculpe, é que eu to começando a me aprofunda mais nessa história de rede com 2 internets, e alem do que não fui eu que fiz a configuração que tem no server, então tenho que i fuçando e descobrindo as coisas por mim mesmo :X

Obrigado desde já e desculpe a amolação :D

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Cara, relaxa pode perguntar a vontade :D

Em relação ao IP dinâmico, isso é simples ;)

Basta você pedir para eles fixarem o IP, normalmente se paga uma taxa (na minha cidade , os provedores cobram em torno de 30,00 por isso ). Aí você vai e joga os IPs que eles liberarem no script, inclusive o gateway.

Mais alguma dúvida ?? :D

Link para o comentário
Compartilhar em outros sites

Onde fica esse cron? UHUHAUHA (sou bem chato :< )

Eu to perguntando bastante porque é o seguinte, a loja não pode ficar sem internet muito tempo, então quando eu for mexer nisso tenho que ter certeza de tudo o que tenho que fazer.

Porque ai eu ja ligo as placas, os cabos e configuro o script certinho, e rezo pra funcionar, porque se não funcionar eu to ferrado UHAHUAHUAHU

Eu fiz faculdade de redes, mas é meu primeiro emprego, então tudo acaba sendo uma novidade, pois nada na prática é como na teoria HUHUHUHU

Só uam perguntinha que talvez você não saiba mas não custa pergunta, esse esquema de transformar o IP do speedy em fixo demora ou é na hora? Pois se demorar vou ter que pensar o que fazer direitinho =)

Mas até la da pra eu ir usando só o virtua com aquele script certo ?

Agradecido mais uma vez.

Abraços.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
Onde fica esse cron? UHUHAUHA (sou bem chato :< )

Eu to perguntando bastante porque é o seguinte, a loja não pode ficar sem internet muito tempo, então quando eu for mexer nisso tenho que ter certeza de tudo o que tenho que fazer.

Porque ai eu ja ligo as placas, os cabos e configuro o script certinho, e rezo pra funcionar, porque se não funcionar eu to ferrado UHAHUAHUAHU

Ok ok, é melhor prevenir do que remediar :D

Eu fiz faculdade de redes, mas é meu primeiro emprego, então tudo acaba sendo uma novidade, pois nada na prática é como na teoria HUHUHUHU

Mas até la da pra eu ir usando só o virtua com aquele script certo ?

Que legal cara ! É isso aí, o primeiro emprego a gente nunca esquece :D

Só uam perguntinha que talvez você não saiba mas não custa pergunta, esse esquema de transformar o IP do speedy em fixo demora ou é na hora? Pois se demorar vou ter que pensar o que fazer direitinho =)

Pra definir como IP fixo aqui na minha cidade eles pedem 24 horas, sabendo disso, pedi para eles alterarem num sábado, porque na segunda já estaria ok ;)

Link para o comentário
Compartilhar em outros sites

Bad News :/

Hoje pra variar o Speedy parou HUHUHU

Então pensei, AGORA É A HORA!

Coloquei o script no /home/scripts (que é onde tem o script do vnc acho que para o squid)

Coloquei ele na execução no arquivo /etc/rc.d/rc.local, coloquei o caminho certo, /home/scripts/links.sh

O IP e o Gateway fiz da seguinte forma, liguei o cabo do virtua na maquina com WIndows aqui do lado, ele navegou normal, então dei um ipconfig, peguei o IP 189.55.xxx.xxx e o GW 189.55.160.1 que me mostrava la no DOS.

Fui no script, mudei o GWDAEMBRATEL para o respectivo gw e o IP FIXO tmb para o valor citado a cima.

Ai fiz uma mudança que achei necessária, me corrija se estiver errado, o cabo do modem ele entra na placa on-board do micro, ou seja em vez de 'eth1' eu coloquei 'eth0', pois a placa que esta ligada no slot PCI é a que vai para os switchs(eth1), estou certo? : )

Bom, beleza, fiz isso e póff reiniciei o PC pra ver o que ia dar, quando ele carrega todas aquelas linhas e tal, no fim aparece:

/etc/rc.d/rc.local: /home/script/links.sh: /bin/bas: bad interpreter: No such file or directory

E é claro, nada da internet =x

Eu mudei de novo para eth1 pra ver se ia e nada tmb, outra coisa que me deixou encucado:

#####Arquivo de firewall da embratel - Esse arquivo é onde está os comandos, lembre-se dar permissão de execução para esse arquivo ;)

FWE="/etc/firewall/fwEmbratel.sh"

Eu nao tenho essa pasta do firewall, sera que isso influencia? Tenho que liberar esse script em algum lugar? ;x

Por favor, SOCORRO!!! AUHUAHAUHAUHUAH

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Calma, vamos por partes.

Realmente no seu caso a interface é a eth0.

Esse arquivo "FWE="/etc/firewall/fwEmbratel.sh"" É onde estará o seu firewall (caso você use).

E você colocou errado no rc.local.

Mas para verificar se está tudo ok, execute ele manualmente "./link.sh".

Ok ?

Link para o comentário
Compartilhar em outros sites

Então, mesmo manualmente ele da esse mesmo erro.

-bash: ./links.sh: /bin/bas: bad interpreter: No such file or directory

E a pasta /etc/firewall não tinha aqui, creio eu que não use nenhum firewall ;x

O rc.local fica onde então?

Pois aquele foi o unico rc.local que encontrei :s

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...