Load Balance - Problema no ping

1. Load Balance - Problema no ping

Ulisses
upaiva

(usa Fedora)

Enviado em 14/12/2006 - 10:08h

Pessoal configurei um load Balance em um Linux (fedora) para rede com 10 computadores (windows).
De maneira geral esse load balance faz um balanceamentre dos links na ordem de 1 pra 1..
Como maneira de manter a internet sempre funcionando a cada momento ele verifica se os links estão sempre ativos..
Uma rotina que checa a todo momento se os links estão up, e se um dos links não esteja ele roda um procedimentos que faz com que as regras de load balance serão mudadas de forma que todo fluxo da rede vá apenas pelo link que esteja funcionando.
O problema está aí....quando se verifica que, por exemplo, o link 1 esteja fora acontece o seguinte...Eu peço pra pingar em um determinado site atravéz da placa correspondente ao link 1, e como esperado ele não responde, e se eu peço para pingar através placa correspondente ao link 2 ele pinga normalmente tbm (até aí está tudo ok)...Dai quando o link 1 volta a funcionar,, eu faço um procedimento para reestabelecer as regras antigas, porém não acontece totalmente como esperado, pois se eu peço pra pingar pela placa correspondente ao link 1, ele volta a pingar perfeitamente (como esperado), porém se eu peço pra pingar pela placa correspondente ao link 2 que sempre ficou ativo aparece a seguinte mensagem:


ping: sendmsg: Operation not permitted


Ah, vale lembrar que isso acontece apenas com o servidor linux, pois todos os computadores da rede (windows) funcionam perfeitamente..


Por favor, será que poderiam me ajudar???

Abaixo segue o #script 1, rodado quando o link cai, e o #script 2, rodado quando o link 1 volta a funcionar...

IFI Internal Interface
NWE1, NWE2 External network address
NME1, NME2 Mask for the External Network
IFE1, IFE2 External interfaces
BRD1, BRD2 Broadcast address for external network
GWE1, GWE2 Gateway for external interface


##SCRIPT1 - roda qdo o link 1 cai

ip route del default via $GWE1 dev $IFE1 src $IPE1 proto static table 201

ip link set lo up
ip addr del 127.0.0.1/8 brd + dev lo
ip addr add 127.0.0.1/8 brd + dev lo

ip link set $IFI up

ip addr del $IPI/$NMI brd + dev $IFI
ip rule del prio 50 table main
ip addr add $IPI/$NMI brd + dev $IFI
ip rule add prio 50 table main


ip link set $IFE1 up
ip addr flush dev $IFE1
ip addr add $IPE1/$NME1 brd $BRD1 dev $IFE1


ip link set $IFE2 up
ip addr flush dev $IFE2
ip addr add $IPE2/$NME2 brd $BRD2 dev $IFE2

ip route flush cache


ip rule del prio 201 from $NWE1/$NME1 table 201
ip rule add prio 201 from $NWE2/$NME2 table 201
ip route add default via $GWE2 dev $IFE2 src $IPE2 proto static table 201

ip route del default table 222 proto static nexthop via $GWE1 dev $IFE1 weight 1 nexthop via $GWE2 dev $IFE2 weight 1
ip route add default table 222 proto static via $GWE2 dev $IFE2


##SCRIPT2 - Roda qdo o link 1 volta a funcionar

ip route del default via $GWE2 dev $IFE2 src $IPE2 proto static table 201
ip link set lo up


ip addr del 127.0.0.1/8 brd + dev lo
ip addr add 127.0.0.1/8 brd + dev lo

ip link set $IFI up

ip addr del $IPI/$NMI brd + dev $IFI
ip rule del prio 50 table main
ip addr add $IPI/$NMI brd + dev $IFI
ip rule add prio 50 table main

ip link set $IFE1 up
ip addr flush dev $IFE1
ip addr add $IPE1/$NME1 brd $BRD1 dev $IFE1

ip link set $IFE2 up
ip addr flush dev $IFE2
ip addr add $IPE2/$NME2 brd $BRD2 dev $IFE2

ip route flush cache

ip rule del prio 201 from $NWE2/$NME2 table 201
ip rule add prio 201 from $NWE1/$NME1 table 201

ip route add default via $GWE1 dev $IFE1 src $IPE1 proto static table 201
ip route add default table 222 proto static nexthop via $GWE2 dev $IFE2 weight 1 nexthop via $GWE1 dev $IFE1 weight 1


  


2. Load Balancing

Thiago Diniz Macena Silvino
tdmsilvino

(usa Slackware)

Enviado em 15/12/2006 - 21:32h

Kra.. eu acredito que a melhor forma de detectar um problema num script eh fazendo testes.

Você pode desligar uma das conexões propositalmente e ir no seu gateway para verificar o estado das conexões.

Verfique as tabelas de roteamento:
ip route show
ip route show table 201

Com isso você terá certeza de que o gateway sabe encaminhar os pacotes para a interface correta.

Execute um traceroute para alguns sites e veja se os pacotes estão saindo da sua rede.

Se tudo estiver ok! Vá nesse server Linux que não consegue executar o ping e faça um traceroute para um site, assim vc verá se os pacotes estão saindo do server ou qual host está rejeitando o pacote, se é o seu gateway ou outra máquina na internet.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts