SQUID BALANCEADO COM LVS

DESCRITIVO DO AMBIENTE

 

Nesta etapa vou apresentar o ambiente criado.

NOTA: é importante que todos os servidores tenham acesso direto à Internet. Em muitas corporações, principalmente no Governo, que é o meu caso, é necessário um IP válido, liberações de firewall etc. Neste artigo estou visando somente o funcionamento da solução.

Também vou considerar que os servidores Squid já estejam configurados e em funcionamento.

Para todos os servidores foi usado o Centos 6.4.

O LVS (Linux Virtual Server) é muito usado em soluções de servidores Web, por quê não utilizá-lo em outras situações? Este recurso permite que as requisições que cheguem nele sejam direcionadas à outros servidores (2, 3, 4, N servidores).

Foi usado o LVS em modo direct-routing.

  1. o cliente faz a requisição
  2. o LVS encaminha ao PROXY
  3. o proxy responde direto ao cliente

(o caminho de volta não passa pelo LVS)

Servidor LVS:

ETH0=192.168.0.1/24
ETH0:0= 192.168.0.4/24

Servidor Proxy1:

ETH0=192.168.0.2/24
lo:0=192.168.0.4/32

Servidor Proxy1:

ETH0=192.168.0.3/24
lo:0=192.168.0.4/32

 

INSTALAÇÃO E CONFIGURAÇÃO LVS

 

No servidor LVS configure os IPs abaixo:

# vim /etc/sysconfig/network-scripts/ifcfg-eth0

(neste arquivo altere os valores de IP, máscara, gateway etc)

Configure o IP Virtual:

# ifconfig eth0:0 192.168.0.4 netmask 255.255.255.0 broadcast 192.168.0.255

Instale o pacote do LVS – ipvsadm:

# yum install ipvsadm

Coloque o serviço para ser iniciado junto com o sistema

# ntsysv

Marque o serviço ipvsadm.

Adicione as regras:

ipvsadm -A -t 192.168.0.4:8080
ipvsadm -a -t 192.168.0.4:8080 -r 192.168.0.2:8080 -g
ipvsadm -a -t 192.168.0.4:8080 -r 192.168.0.3:8080 -g

Para facilitar, crie um arquivo com estas entradas e o adicione ao rc.local do servidor. Assim, sempre que os servidor reiniciar as regras serão iniciadas automaticamente.

Pronto, o LVS está configurado. Agora vamos configurar os servidores Proxy1 e Proxy2.

 

CONFIGURAÇÃO REDE PROXY1 E PROXY2

 

Nos servidores proxy, configure os IPs conforme abaixo:

PROXY1

Considerando que o IP da placa ETH0 esteja configurado, vamos configurar a interface que irá comunicar e atender as requisições com o LVS.

# ifconfig lo:0 192.168.0.4 netmask 255.255.255.255

Desabilite o envio de ARP:

# ifconfig lo:0 -arp up

Obs.: crie um script com os comandos acima e deixe-o na inicialização do rc.local.

Faça a mesma coisa no servidor Proxy2.

PROXY 2

Execute:

# ifconfig lo:0 192.168.0.4 netmask 255.255.255.255

Desabilite o envio de ARP:

# ifconfig lo:0 -arp up

Bem, se tudo tiver sido feito conforme o tutorial, vamos aos testes.

Em uma estação de trabalho (192.168.0.10) configure o proxy:

Servidor: 192.168.0.4
Porta: 8080

Acesse o site de algum portal (globo.com, uol.com.br etc) e verá que as requisições serão direcionadas aos dois servidores.

No servidor LVS, para verificar se as regras estão aplicadas:

# ipvsadm -L -n –stats

IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port         Conns   InPkts  OutPkts  InBytes OutBytes
 ->    RemoteAddress:Port
TCP  192.168.0.4:8080          5333    28186        0  1740404        0
  ->    192.168.0.2:8080       2517    13291        0   820673        0
  ->    192.168.0.3:8080       2816    14895        0   919731        0

Nos servidores proxy monitore o acesso:

# tail -f /var/log/squid/access.log | grep 192.169.0.10

Pronto. Agora é só fazer alguns ajustes se necessário, como iniciação de serviços, firewall etc.

Obs.: no meu ambiente precisei desabilitar o iptables, isso porque já possuo firewall de borda.

Boa sorte!

Rolar para cima