Como detectar falhas na conexão de rede?

1

Eu tenho uma conexão Ethernet direta entre uma caixa do Windows e uma caixa do Linux. Se eu desabilitar a conexão no lado do Windows, o Linux ainda parece acreditar que o link está ativo.

Isso é um comportamento normal? Eu gostaria que o Linux executasse if down se o link falhasse e ifup quando retornasse. Isso é possível?

    
por Ian 08.12.2013 / 22:07

2 respostas

6

Você está tentando adicionar um erro no Windows ao Linux. O Linux não tem essa má função de propósito.

Eu chamo isso de falta de funcionalidade porque quando o Windows faz isso, ele elimina todas as conexões usando essa interface de rede mesmo se nenhum pacote for perdido. Além disso, a menos que você esteja no caso mais simples possível, com apenas duas máquinas e um cabo cruzado (ou MDI-X), ele não pode detectar falhas em partes intermediárias ou remotas da conexão da camada física.

Pense nisso: o Windows está descartando conexões apenas quando detecta uma falha local que pode ser temporária, mas nem sequer tenta detectar falhas mais adiante.

O Windows pode esperar que esses intermediários e seus pares remotos copiem sua má função, mas não o fazem porque foram projetados com os mesmos princípios que os protocolos da própria Internet, que foi projetada tendo em mente o fracasso. Toda a Internet não explode quando um roteador central tem um pequeno sinal. Ele lida.

Se você quer saber qual é a minha posição em sustentar essa strong opinião, é que venho escrevendo programas em rede há cerca de duas décadas. Essa experiência derruba a Lei de Murphy em você: qualquer coisa que possa dar errado acontecerá. Jogar suas mãos a cada pequena falha só faz seus programas quebradiços. Copiar é melhor.

Você já percebeu que o seu navegador não fecha todas as guias quando o link da rede fica inativo? Isso porque lida com falhas de rede. Parte disso se deve ao design do HTTP, mas alguns também são uma escolha dos projetistas do navegador da Web para lidar com falhas detectáveis. Por outro lado, o Windows Explorer dispara todas as janelas abertas do Explorer de volta para a pasta padrão ( My Computer , normalmente), portanto, quando você voltar para a máquina após um pontinho, perderá seu local de trabalho.

Se você absolutamente tiver para fazer isso, as ferramentas sugeridas na resposta do robbat2 farão isso. Muito melhor, no entanto, escrever seus programas de rede para lidar com falhas de links de rede.

Quando a falha não for uma opção , configure interfaces de rede redundantes usando o recurso de ligação de canal NIC do kernel do Linux. Você pode configurar um sistema para fazer failover automaticamente para uma segunda (ou terceira!) Interface de rede se um link falhar.

    
por 08.12.2013 / 22:43
2

Instale o netplug, ifplugd ou um pacote semelhante em sua distribuição; eles podem alternar seus endereços de interface com base no status físico do link.

    
por 08.12.2013 / 22:50