Detecção de gateway inativo no linux

4

Eu tenho que configurar a detecção do gateway inativo em uma caixa linux com três interfaces de rede. Os únicos guias que encontrei até agora sobre o tópico implicam em consertar o kernel, o que não estamos muito interessados em fazer. Existe alguma outra maneira?

Obrigado.

Editado para esclarecer

As 3 interfaces são: 1 Ethernet, 1 wifi e 1 modem 3G. O com fio é a conexão principal e os outros dois são para fins de backup, sendo o modem 3G o último recurso.

A alta disponibilidade não é um problema, já que podemos nos desconectar por curtos períodos de tempo.

A caixa é ao mesmo tempo cliente (envia dados para um servidor central) e servidor (o servidor central pode alterar sua configuração) e torna público seu IP atual por um mecanismo semelhante a dyndns.

No final, teremos centenas de caixas informando para um servidor central, para que a manutenção nas caixas seja a mais baixa possível.

    
por Figo 01.02.2011 / 17:01

3 respostas

4

Se o gateway responder a solicitações do ICMP, você poderá usar ping:

ping -qc 4 $GATE1 > /dev/null

if [ "$?" -ne 0 ];
ping -qc 4 GATE2 > /dev/null
if [ "$?" -ne 0 ];
 ping -qc 4 $GATE3 > /dev/null
 if [ "$?" -ne 0 ];
  ip route del default;ip route add default via $GATE3
 else
  echo "Three gateway down!"
 fi
else
 ip route del default;ip route add default via $GATE2
fi

Se o gateway não responder aos pedidos ICMP, altere "ping -qc 4" para "ping -qc 4 -I IP_OF_INTERFACE_TO_GATE_N 8.8.8.8"

    
por 01.02.2011 / 17:45
3

Por que não executar rip ou outro protocolo de roteamento? Isso é exatamente para o que eles são projetados. O Quagga é executado no Linux (entre outros) e implementa vários desses protocolos muito bem.

Nos meus próprios sistemas eu uso ucarp para gerenciar um IP virtual e, em seguida, anunciar o endereço virtual como o gateway para o meu clientes via DHCP. Então os gateways reais usam rip para decidir o que realmente fazer com os pacotes que recebem.

    
por 01.02.2011 / 17:47
0

O iproute2 tem uma opção "ip monitor" que pode monitorar o estado da rota e alterá-los, se necessário.

Nunca tentei, mas não parece complicado e parece mais utilizável que um script.

    
por 03.02.2011 / 20:45