Rede · 3 min read · Oct 30, 2025

NIC Bonding/Teaming - Debian Sarge

Resumo:

Você pode encontrar uma versão mais fácil de ler aqui: 5dollarwhitebox.org

O conceito de NIC Bonding (ou às vezes chamado de NIC Teaming) é que você tem duas NICs unidas para parecer que são o mesmo dispositivo físico. Ou seja, ambas apresentarão o mesmo endereço de Hardware (MAC). Isso é realizado através da utilidade ifenslave, que permite que o kernel veja/use apenas um dispositivo, enquanto envia pacotes através dos dois dispositivos escravos usando um escalonador round-robbin.

Sistema: Debian Sarge 3.1 (kernel vanilla 2.6.12.4)
Módulos Envolvidos: bonding, mii, nic_module (e100 neste exemplo)
Utilitários: ifenslave, mii-tool

Preparação:

Antes de tentar unir duas NICs, é altamente recomendável que você verifique a integridade e funcionalidade de cada NIC individualmente. Este documento assume que você já fez isso. Usando ‘mii-tool’ você deve ver algo como o seguinte:

testbox:/# mii-tool
eth0: negociado 100baseTx-FD, link ok
eth1: negociado 100baseTx-FD, link ok

Para que isso funcione, o kernel deve ter suporte para dispositivos de bonding. Algumas maneiras de verificar seriam:

testbox:/# modprobe –list | grep* bonding /lib/modules/2.6.12.4-vs2.0/kernel/drivers/net/bonding/bonding.ko

  • testbox:/# cat /boot/config-2.6.12.4-vs2.0 | grep -i bonding
    CONFIG_BONDING=m

Usamos o mii-tool (mii.o módulo) para monitorar as interfaces para failover… embora, como a maioria dos adaptadores ethernet use uma MII (Interface Independente de Mídia) para autonegociar velocidades de link, é bastante padrão que você tenha isso.

testbox:/# cat /boot/config-2.6.12.4-vs2.0 | grep -i mii ** *# CONFIG_MPENTIUMII não está definido

CONFIG_MII=y ** *

testbox:/# modprobe –list | grep -i mii
/lib/modules/2.4.26-2-686/kernel/drivers/net/mii.ko

Em segundo lugar, você precisará instalar o utilitário ifenslave.

testbox:/# apt-get update && apt-get install ifenslave
………. saída padrão removida (nada interessante)

Não há configuração aqui, então é isso. Agora estamos prontos para os arquivos de configuração.

Arquivos de Configuração:

Existem muitas variações diferentes disso, mas por enquanto… é assim que eu fiz para fazê-lo funcionar.

vi /etc/modutils/aliases e adicione/edite o seguinte:

alias bond0 bonding
alias eth0 e100
alias eth1 e100
options bonding mode=0 miimon=100

vi /etc/modutils/actions e adicione/edite o seguinte:

probeall bond0 eth0 eth1 bonding

Após editar os arquivos de configuração do modprobe, você precisa executar o comando:

testbox# update-modules

vi /etc/network/interfaces e adicione/edite o seguinte:

auto bond0
iface bond0 inet static
address 10.1.100.63
netmask 255.255.255.0
hwaddress ether 00:02:B3:48:50:2C
gateway 10.1.100.1
up ifenslave bond0 eth0 eth1
down ifenslave -d bond0 eth0 eth1

Você NÃO deve configurar entradas para ‘eth0’ ou ‘eth1’ fora do que está listado acima sob a entrada ‘bond0’. Bond0 agora será a interface com a qual o kernel trabalha. Executar um ‘ifconfig’ mostrará todas as três interfaces (bond0, eth0, eth1), todas com os mesmos endereços MAC e IP.

E é basicamente isso. Agora, tudo o que você precisa fazer é carregar o módulo ‘bonding’ e parar/iniciar a rede… e os módulos apropriados devem carregar automaticamente:

testbox:/# modprobe bonding
testbox:/# /etc/init.d/networking stop testbox:/# /etc/init.d/networking start

Você pode ter que brincar um pouco com esta parte. Para mim, eu tive que configurar manualmente o dispositivo bond0:

testbox:/# ifconfig bond0 10.1.15.63 netmask 255.255.255.0 up

Assumindo que não houve erros, você deve ser capaz de testar isso. Tente pingar seu endereço IP de outra máquina. Você notará que ambas as NICs respondem aos pedidos de ping de um lado para o outro (round robin). Se você desconectar eth0, você verá um erro no console “eth0 falhou, eth1 se tornando primário” ou algo assim (e vice-versa se você desconectar eth1). Mas você não deve perder nenhum dos pedidos de ping (ou não mais do que alguns), pois agora tem uma conexão de rede redundante.

Em um ambiente de maior nível, você poderia conectar cada NIC em um switch separado (permanecendo na mesma VLAN) e melhorar ainda mais sua configuração de alta disponibilidade… e assim por diante.

BJ Dierkes, RHCE4-LPIC1
wdierkes [at] 5dollarwhitebox [dot] org
Texas, EUA

Recursos:

Debian GNU/Linux: https://www.debian.org

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.