Marcio Cunha

Como configurar failover automático de rede no systemd-networkd

Aprenda a configurar redundância e failover automático de rede em servidores Linux usando systemd-networkd, garantindo alta disponibilidade sem ferramentas complexas.

Marcio Cunha•4 min
Também disponível em:EnglishEspañol
Resumo
  • O systemd-networkd gerencia configurações de rede de forma nativa e eficiente em distribuições Linux modernas.
  • O failover de rede permite alternar automaticamente para uma interface secundária se a principal falhar.
  • Métrica de rota e prioridade de gateway determinam qual caminho os pacotes de dados devem seguir.
  • Testes físicos e validações de hardware ajudam a isolar problemas de cabo ou switch antes de culpar o software.
  • A monitoramento contínuo de conexões evita indisponibilidades prolongadas em ambientes de produção.

Por que o failover de rede é vital em servidores

Manter um servidor conectado à internet ou à rede interna é o coração de qualquer infraestrutura corporativa. Na prática, isso significa que se um cabo de rede romper ou a placa principal queimar, o sistema precisa continuar funcionando sem intervenção humana. Para alcançar essa resiliência em servidores Linux, utilizamos o conceito de failover, que é a capacidade de alternar o tráfego de dados para uma rota ou placa reserva de forma imediata e transparente. Antes de mexer em códigos complexos, vale a pena entender como diagnosticar falhas físicas, como testar o chip de rede Realtek na placa-mãe com multímetro para descartar defeitos de hardware. O systemd-networkd, ferramenta nativa do systemd presente em quase todas as distros modernas, oferece recursos robustos para gerenciar essa redundância sem exigir instalações pesadas.

Entendendo o papel do systemd-networkd na redundância

O systemd-networkd é o gerenciador de conexões padrão em muitos ambientes corporativos por ser rápido, leve e integrado ao ecossistema do sistema operacional. Ele lê arquivos de configuração simples baseados em texto para definir endereços IP, gateways e rotas estáticas. Na prática, configurar redundância com ele envolve criar prioridades numéricas para diferentes rotas de rede, chamadas de métricas. Quanto menor o número da métrica, maior a preferência da placa de rede. Se a interface principal perder o sinal ou falhar, o sistema operacional consulta a tabela de roteamento e desvia automaticamente o fluxo de dados para a interface secundária configurada com uma métrica mais alta.

Preparando os arquivos de configuração das interfaces

Para colocar a mão na massa, o primeiro passo é criar arquivos de configuração específicos para cada placa de rede física do seu servidor. Esses arquivos ficam localizados no diretório /etc/systemd/network/. Vamos estruturar duas conexões, chamadas aqui de eth0 (principal) e eth1 (secundária). Abra o seu editor de texto favorito e crie o arquivo da interface principal com o código abaixo:

[Match]
Name=eth0

[Network]
Address=192.168.1.10/24
Gateway=192.168.1.1
DNS=8.8.8.8
Metric=10

Note que definimos uma métrica baixa (Metric=10) para a interface eth0, indicando que ela é a preferida. A métrica funciona como uma fila de prioridade onde os pacotes sempre escolhem o menor caminho numérico disponível.

Configurando a placa secundária de backup

Agora precisamos configurar a interface de contingência, a eth1, que assumirá o tráfego caso a principal caia. Crie um segundo arquivo de configuração no mesmo diretório com uma métrica numericamente superior, como o valor 20. Isso garante que o sistema só olhe para esta interface se a primeira deixar de responder. Veja como deve ficar o arquivo de configuração para a placa reserva:

[Match]
Name=eth1

[Network]
Address=192.168.1.11/24
Gateway=192.168.1.1
DNS=8.8.8.8
Metric=20

Com essa estrutura de métricas diferenciadas (10 para a principal e 20 para a reserva), o systemd-networkd monta automaticamente a tabela de rotas do kernel Linux. Para auditar se o sistema aplicou as regras corretamente e verificar como as conexões estão distribuídas, você pode usar o comando ss no Linux para auditar conexões de rede em tempo real e confirmar o comportamento das interfaces.

Aplicando as alterações e testando o failover

Depois de salvar os arquivos de configuração, é preciso reiniciar o serviço de rede para que o systemd-networkd processe as novas regras. Para evitar derrubar conexões SSH ativas de forma drástica, execute os comandos de reinicialização com cautela e valide o status imediatamente após. Utilize a sequência de comandos abaixo para aplicar e verificar o estado da rede:

  1. Reiniciar o serviço systemd-networkd para aplicar os novos arquivos.
    sudo systemctl restart systemd-networkd
  2. Verificar o status atual das interfaces e conexões de rede ativas.
    networkctl status
  3. Testar a rota ativa disparando pings contínuos para o gateway.
    ping -c 4 192.168.1.1

Para testar se o failover realmente funciona na prática, você pode simular uma falha desconectando o cabo da interface eth0 ou desativando-a via software com o comando 'sudo ip link set eth0 down'. Observe o comportamento do terminal para ver se o tráfego migra de forma suave para a placa eth1 sem quedas bruscas nos serviços críticos.

Considerações finais sobre redundância em produção

Configurar failover automático utilizando ferramentas nativas como o systemd-networkd elimina a necessidade de softwares externos complexos, tornando a infraestrutura mais enxuta e fácil de auditar. A chave para o sucesso dessa abordagem reside no planejamento correto das métricas de rota e na realização de testes periódicos de falha simulada em ambiente controlado. Manter a simplicidade na camada de rede reduz pontos de falha ocultos e garante que seu servidor permaneça resiliente mesmo diante de imprevistos físicos de hardware.