glaucoperucchi
(usa Debian)
Enviado em 30/09/2014 - 09:22h
Bom dia pessoal do VOL!
Estou com um problema a dias que estou apanhando muito para resolver.
Estou querendo fazer load balance com dois links, mas toda vez que ativo o load balance pelo script abaixo, o redirecionamento de portas hora funciona hora não funciona, verifiquei pelo comando tcptrack -i eth2 que quando a conexão entra pelo eth2, o redirecionamento não funciona, já tentei marcar os pacotes mas sem sucesso também.
O Sistema da empresa hora acessa hora não acessa externamente.
Tenho um link da Oi com 5 IP's e um link da GVT com 1 IP.
Lan -> eth0
Oi -> eth1
GVT -> eth2
#!/bin/bash
# variaveis
OI_IPA="187.xxx.xxx.xx"
OI_NET="187.xxx.xxx.xx/xx"
OI_GAT="187.xxx.xxx.xx"
OI_NIC="eth1"
GVT_IPA="10.1.1.2"
GVT_NET="10.1.1.0/29"
GVT_GAT="10.1.1.1"
GVT_NIC="eth2"
function start() {
# configuracoes tabela OI
ip route add $OI_NET dev $OI_NIC src $OI_IPA table OI
ip route add default via $OI_GAT table OI
# configuracoes tabela GVT
ip route add $GVT_NET dev $GVT_NIC src $GVT_IPA table GVT
ip route add default via $GVT_GAT table GVT
# trafico da eth1 sai pela tabela OI
ip rule add from $OI_IPA table OI
# trafico da eth2 sai pela tabela GVT
ip rule add from $GVT_IPA table GVT
# definindo regra para pacotes marcados sairem pela OI
ip rule add fwmark 1 table OI
# definindo regra para pacotes marcados sairem pela GVT
ip rule add fwmark 2 table GVT
# Criando load balance multilink
ip route del default
ip route add default scope global nexthop via $OI_GAT dev $OI_NIC weight 2 nexthop via $GVT_GAT dev $GVT_NIC weight 1
ip route flush cache
echo "load balance ativado..."
}
function stop() {
# limpando tabelas
ip route flush table OI
ip route flush table GVT
# limpando regras
ip rule del from $GVT_IPA table GVT
ip rule del from $OI_IPA table OI
ip rule del fwmark 0x1 table OI
ip rule del fwmark 0x2 table GVT
#Removendo load balance
ip route del default scope global nexthop via $OI_GAT dev $OI_NIC weight 2 nexthop via $GVT_GAT dev $GVT_NIC weight 1
#Adicinonando uma rota default
ip route add default via $OI_GAT
# fazendo flush no cache de rotas que foram deletadas
ip route flush cache
echo "load balance desativado..."
}
case $1 in
'start') start; exit ;;
'stop') stop; exit ;;
'restart') stop; start; exit ;;
*) start; exit ;;
esac
Estou marcando os pacotes da seguinte forma:
/sbin/iptables -A PREROUTING -t mangle -i eth0 -s 192.168.10.0/24 -d bradesco.com.br -p tcp -m multiport --dports 80,443 -j MARK --set-mark 1
/sbin/iptables -A PREROUTING -t mangle -i eth0 -s 192.168.10.0/24 -d banrisul.com.br -p tcp -m multiport --dports 80,443 -j MARK --set-mark 1
/sbin/iptables -A PREROUTING -t mangle -i eth0 -s 192.168.10.0/24 -d bb.com.br -p tcp -m multiport --dports 80,443 -j MARK --set-mark 1
/sbin/iptables -A PREROUTING -t mangle -i eth0 -s 192.168.10.0/24 -d caixa.gov.br -p tcp -m multiport --dports 80,443 -j MARK --set-mark 1
/sbin/iptables -A PREROUTING -t mangle -i eth0 -s 192.168.10.0/24 -d itau.com.br -p tcp -m multiport --dports 80,443 -j MARK --set-mark 1
/sbin/iptables -A PREROUTING -t mangle -i eth0 -s 192.168.10.0/24 -d 0/0 -p tcp -m multiport --dports 587,110,143,25 -j MARK --set-mark 2
/sbin/iptables -A PREROUTING -t mangle -i eth0 -s 192.168.10.0/24 -d 0/0 -p tcp -m multiport --sports 587,110,143,25 -j MARK --set-mark 2
/sbin/iptables -A PREROUTING -t mangle -p tcp -m multiport --dports 22,10050,10051,10053,10055 -j MARK --set-mark 1
/sbin/iptables -A PREROUTING -t mangle -p tcp -m multiport --sports 22,10050,10051,10053,10055 -j MARK --set-mark 1