Load Balance

1. Load Balance

Nivaldo Paulo Pereira
nivaldopaulo19

(usa Debian)

Enviado em 19/05/2015 - 12:04h

Bom dia pessoal.

Venho solicitar ajuda do pessoal do vol pois sou iniciante, então estou montando um proxy squid + iptables e pra me ajudar pessoal contratou mais um link se tornando minha tarefa mais complicada. Já lí alguns tópicos peço até desculpas pela postagem por ser novato não consegui chegar a conclusão de como implantar no meu proxy o load balance mais squid peço ajuda se alguem puder por favor puder me dar uma ajuda pois sou iniciante mesmo no mundo pinguim to tendo muita dificuldade.

Segue o problema que tenho que resolver:

Não consigo fazer com que o link da eth1 pinga externamente ex: ping www.google.com.br -I eth1 se parar o squid ai consigo pingar.
Não sei como fazer a troca dos links automaticamente caso tenha queda de um dos dois.
A finalidade desse load é somente se um cair o outro manter a internet, não preciso unir os dois.

Segue a dinâmica da rede.

Interfaces:

# Primeira placa de rede (eth0) Master Cabo

auto eth0
iface eth0 inet static
address 192.168.254.253
netmask 255.255.255.0
network 192.168.254.0
broadcast 192.168.255.255
gateway 192.168.254.254

# Segunda Placa de rede (eth1) Viaceu

auto eth1
iface eth1 inet static
address 10.10.10.253
netmask 255.255.255.0
network 10.10.10.0
broadcast 10.10.255.255
gateway 10.10.10.254

# Terceira placa de rede (eth2) Rede local

auto eth2
iface eth2 inet static
address 192.168.0.253
netmask 255.255.255.0

rt_tables

255 local
254 main
253 default
0 unspec
24 master
25 viaceu
#
# local
#
#1 inr.ruhep

Script balance
## Variaveis de Comandos
RULE="/sbin/ip rule"
ROUTE="/sbin/ip route"

## Rede Local
IF_PADRAO="eth2"
RD_PADRAO="192.168.0.0/255.255.255.0"

## viaceu
IF_viaceu="eth1"
IP_viaceu="192.168.2.2"
GW_viaceu="192.168.2.1"
RD_viaceu="192.168.2.0/255.255.255.0"


## master
IF_master="eth0"
IP_master="192.168.254.253"
GW_master="192.168.254.254"
RD_master="192.168.254.0/255.255.255.0"


case $1 in

add)
echo "Adicionando Regras e Tabelas..."

## Configuracoes para o master
$ROUTE $1 $RD_master dev $IF_master src $IP_master table master
$ROUTE $1 default via $GW_master table master
$RULE $1 from $IP_master table master
$ROUTE $1 127.0.0.0/8 dev lo table master
$ROUTE $1 $RD_PADRAO dev $IF_PADRAO table master
$RULE $1 fwmark 1 table master
#

## Configuracoes para o viaceu
$ROUTE $1 $RD_viaceu dev $IF_viaceu src $IP_viaceu table viaceu
$ROUTE $1 default via $GW_viaceu table viaceu
$RULE $1 from $IP_viaceu table viaceu
$ROUTE $1 127.0.0.0/8 dev lo table viaceu
$ROUTE $1 $RD_PADRAO dev $IF_PADRAO table viaceu
$RULE $1 fwmark 2 table viaceu
#

$ROUTE flush cache

echo "[OK]"
;;
del)
echo "Removendo Regras e Tabelas.."

## Limpando Tabelas
$ROUTE flush table master
$ROUTE flush table viaceu

## Limpando Regras
$RULE $1 from $IP_master table master
$RULE $1 from $IP_viaceu table viaceu

# Limpando Marcacoes
$RULE $1 fwmark 1 table master
$RULE $1 fwmark 2 table viaceu

echo "[OK]"
;;
*)
echo "Use add ou del"
;;
esac

Script Iptables

#Compartilha internet

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE


# Proxy transparente

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 80 -j REDIRECT --to-port 3128

# Ativa roteamento no kernell

echo 1 > /proc/sys/net/ipv4/ip_forward

Script squid.conf

# acls bloqueio

acl rede src 192.168.0.0/24
acl site url_regex -i "/home/arquivos/bloqueados.txt"

# bloquenado extensoes de downloads

# acl extensoes urlpatch_regex -i "/home/arquivos/extensoes.txt"

# controle do cache

acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistred ports
acl Safe_ports port 280 # http-mqmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT

# acao das acls

acl manager proto cache_obeject
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl CONNECT method CONNECT

http_access allow manager localhost
http_access deny manager
http_access allow localhost
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

# libera bloqueia redes

http_access allow rede !site
http_access deny all


# erros proxy

error_directory /usr/share/squid3/errors/pt-br

# Proxy transparente

http_port 192.168.0.253:3128 transparent

hierarchy_stoplist cgi_bin ?

access_log /var/log/squid3/access.log squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880
refresh_pattern . 0 20% 4320

coredump_dir /var/spool/squid3


Desde já agradeço a todos que puder me ajudar.








  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts