O suco do google que você quer é "Ethernet bonding". É uma obra de arte.
Minhas desculpas se essa é uma pergunta óbvia, sou novato no que diz respeito a redes redundantes, e não tenho certeza de quais palavras-chave usar no Google. Meu cenário de aplicação é este:
A coisa mais óbvia a ser feita para obter redundância de rede é ter dois switches Ethernet de alta velocidade e conectar cada servidor Linux a ambos os switches. Dessa forma, se um dos switches falhar, ou alguém acidentalmente cortar um cabo Ethernet, a comunicação pode continuar através do outro cabo / switch, e o sistema permanecerá totalmente funcional.
A minha pergunta é, existe uma maneira de tornar a redundância 100% transparente para o software de aplicação? (Por transparente, quero dizer que o software aplicativo não deveria ter que saber ou se importar com a existência de mais de uma porta Ethernet; idealmente, só veria uma eth0 e não uma eth1 ... e se os dados parassem de fluir sobre uma das duas portas Ethernet físicas por qualquer motivo, o software do aplicativo não deve ter que detectar a falha ou fazer algo especial para continuar trabalhando).
A largura de banda extra não é importante para meus propósitos (uma "pista" de gigabit ethernet é rápida o suficiente), mas simplicidade e confiabilidade são.
Se você deseja simplicidade e confiabilidade, obtenha dois comutadores que suportam agregação de link de vários chassis (os fornecedores têm seus próprios nomes, às vezes apenas "empilhamento") e suportam Agregados de Link suficientes por comutador para atender às suas necessidades. A configuração LACP nos servidores e das portas do switch, para que todos os seus aplicativos vejam é um única interface "bond0" em cada servidor.
O Linux também suporta algo chamado "adaptive load balancing", que ainda parece uma interface "bond0" para a camada de aplicação, mas não usa LACP nem requer switches com suporte de agregação de link multi-chassis (mas os switches devem estar conectado com boa largura de banda). Esse modo usa truques ARP para direcionar o tráfego de entrada para cada interface física, em vez de usar os padrões de ligação da camada de link. Ela requer apenas switches idiotas sem recursos especiais e funciona bem para nós em produção com IPv4, não tendo certeza sobre o IPv6.
Tags ethernet redundancy