Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Artigo

Alta disponibilidade de link - rápido e simples
Linux user
danilo neves
21/12/2011
Nesse artigo vou explicar detalhadamente como ter um gateway com alta disponibilidade de link em um único servidor,
de uma forma rápida e simples.
Por: danilorpneves
[ Hits: 5238 ]
Conceito: 10.0   2 voto(s)2 voto(s)2 voto(s)2 voto(s)2 voto(s) + quero dar nota ao artigo

Introdução

Muitas vezes, provedores de internet ou até mesmo empresas, não têm 2 servidores para ter uma alta disponibilidade de link e servidor. E com isso, eles apenas garantem a disponibilidade de link em único servidor, isso garante que o usuário não vá ligar reclamando que não consegue navegar e bla bla bla, caso o link principal venha ficar indisponível.

Para fazer isso, vou usar 2 ferramentas no FreeBSD, uma vai ser o Ifstated para fazer o monitoramento dos link e alterar a rota. E a outra vai ser o Packet Filter, o famoso PF.

Caso o link venha ficar indisponível, o Ifstated vai alterar a rota para o outro link.

Caso o link indisponível venha ficar disponível automaticamente, a rota vai voltar para a rota default, para o link principal.

Já com o PF, vou usar para criar os NAT dos clientes em uma única linha. Ele também pode ser usado como Firewall, redundância de link (round-robin ou source-hash), redirecionamento de portas, e etc.

Vamos ao trabalho.

Preparando o ambiente

Precisamos compilar o Kernel para o PF e instalar o Ifstated.

Primeiro vou compilar o Kernel, e para isso vou descobrir qual o nome do meu Kernel atual:

# uname -a
/usr/obj/usr/src/sys/GENERIC

Veja que no final temos o nome do Kernel que no meu caso o nome padrão: GENERIC.

Precisamos agora editar e adicionar algumas opções para que o PF funcione corretamente.

Para editar:

# ee /usr/src/sys/i386/conf/GENERIC

Vá até o final do arquivo e adicione as seguintes opções:

device pf
options ALTQ
options ALTQ_CBQ
options ALTQ_RED
options ALTQ_RIO
options ALTQ_HFSC
options ALTQ_CDNR
options ALTQ_PRIQ


Feito isto é só salvar, agora vamos compilar o Kernel modificado.

# cd /usr/src
# make buildkernel KERNCONF=GENERIC


Espere, porque isso demora um pouco. Assim que terminar execute o comando abaixo

# make installkernel KERNCONF=GENERIC

Depois é só reiniciar o servidor.

Agora que já compilamos nosso Kernel para o PF, vamos agora instalar o Ifstated pelo ports:

# cd /usr/ports/net/ifstated/
# make install clean


Finalizamos o ambiente, agora vamos para a configuração.
Próxima página >>




Páginas do artigo
   1. Introdução
   2. Configuração
   3. Finalizando

Outros artigos deste autor

Leitura recomendada

Comentários
[1] Comentário enviado por danniel-lara em 21/12/2011 - 11:42h:

Parabens muito bom esse artigo


[2] Comentário enviado por Thalysson S em 21/12/2011 - 14:42h:

Excelente artigo !


[3] Comentário enviado por rafaelc.lopes em 21/12/2011 - 16:32h:

Parabéns, excelente a explicação!

[4] Comentário enviado por sansimon em 24/12/2011 - 01:24h:

E se o link for dinâmico? Qual seria a mudança?


saudações.

[5] Comentário enviado por danilo neves em 24/12/2011 - 14:55h:

sansimon

Preciso saber como é seu ambiente.
Como por exemplo se seu modem tem opção de fazer aquelas configurações de registrar no NOIP. Assim fica simples e você faz o ping no domínio.
E configure seu roteador pra entregar IP privado amarrado com MAC no seu servidor. Assim vai pingar no domínio e caso não conseguir, vai alterar a rota para o outro modem também entregando IP privado. Acho que é isso :D.

[6] Comentário enviado por radeschi em 26/12/2011 - 00:14h:

Fiz um script shell para redundância de links em FreeBSD, mas pode funcionar também em Linux com poucas alterações.. Com ele não existe necessidade de nenhum tipo de software adicional..

O que ele faz é criar uma rota pelo link principal para algum IP externo que dificilmente cai, assim como uma rota com outro IP externo pelo link2, e outros 3 IPs externos para fazer o teste de conexão..

Então ele fica em loop pingando um ip externo (8.8.8.8 por exemplo), se esse IP não responder, ele tenta o próximo cadastrado, se esse também falhar, ele testar o terceiro, sendo que se esse falhar, ele assume que o link atual está fora do ar, então ele testa pra ver qual link está sendo usado(com as rotas estáticas criadas anteriormente), e o link que responder, é o que assume o tráfego, após isso, ele envia um email avisando sobre o ocorrido, e altera a página de acesso negado do squid, informando os usuários que o servidor está operando com a redundância de link(que no meu caso o limite de banda é menor, prejudicando a navegação), inclusive o próprio script adiciona alguns sites na lista de acesso negado do squid(youtube,vimeo, etc)..
A partir daí, além de testar a conexão, o script começa a monitorar o link principal, assim que ele voltar a responder, a rota é alterada novamente, e todas as modificações são desfeitas...

Depois vou ajeitar mais ele, comentar e se possível postar aqui!

[7] Comentário enviado por danilo neves em 26/12/2011 - 15:03h:

bacana em radeschi
depois você compartilha esse script com a galera :D.


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.