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