-
Notifications
You must be signed in to change notification settings - Fork 0
Ethernet bonding
A maior parte dos sistemas atuais dispõe de 2 (ou mais) ligações Ethernet. Estas podem ser utilizadas em separado ou em paralelo, numa técnica chamada bonding. Esta técnica é muito interessante, uma vez que possibilita o balanceamento de dados (os dados são transmitidos pelas 2 interfaces) e tolerância a falhas (caso uma ligação falhe, a transmissão é assegurada pela outra).
No nosso servidor, iremos agregar as duas interfaces físicas do sistema eth0 e eth1 para criar uma nova interface de rede bond0 de alta disponibilidade.
Ethernet bonding Ethernet bonding, regulado pela norma IEEE 802.3ad com o título link aggregation é um termo da disciplina de redes de computadores que descreve o acoplamento de dois ou mais canais Ethernet em paralelo para produzir um único canal de maior velocidade e/ou aumentar a disponibilidade e redundância desse canal.
root@server~# apt-get install ifenslave
Para criar a interface bond0 deverá ser carregado e configurado o módulo bonding do kernel. Este módulo será carregado automaticamente após a configuração; por agora deverá ser carregado manualmente:
root@server:~# modprobe bonding
Verificar que está realmente carregado:
root@server:~# lsmod | grep bonding
bonding 124989 0
O passo seguinte é a parametrização da nova interface de rede e remoção (ou comentar) qualquer referência às interfaces físicas por ela usadas, o que é feito no ficheiro /etc/network/interfaces:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
# allow-hotplug eth0
# iface eth0 inet dhcp
# Static IP address
# auto eth0
# iface eth0 inet static
# address 192.168.0.100
# netmask 255.255.255.0
# network 192.168.0.0
# broadcast 192.168.0.255
# gateway 192.168.0.1
# Interface bonding
# Static IP address
auto bond0
iface bond0 inet static
slaves eth0 eth1
bond-mode balance-rr
bond-miimon 100
bond_downdelay 200
bond_updelay 200
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
O parâmetro bond-mode balance-rr indica que a interface irá operar em modo balance-rr, em que os dados serão transmitidos alternadamente pelas diversas interfaces físicas que compõem a nova interface bond0.
Finalmente, reiniciar os serviços de rede:
root@server:~# service networking restart
O comando ifconfig permite verificar o estado das interfaces de rede:
root@server:~# ifconfig
bond0 Link encap:Ethernet Endereço de HW 00:1e:c9:1a:81:5f
inet end.: 192.168.0.100 Bcast:192.168.0.255 Masc:255.255.255.0
endereço inet6: fe80::21e:c9ff:fe1a:815f/64 Escopo:Link
UP BROADCASTRUNNING MASTER MULTICAST MTU:1500 Métrica:1
RX packets:9821 errors:0 dropped:0 overruns:0 frame:0
TX packets:9684 errors:0 dropped:0 overruns:0 carrier:0
colisões:0 txqueuelen:0
RX bytes:898330 (877.2 KiB) TX bytes:933327 (911.4 KiB)
eth0 Link encap:Ethernet Endereço de HW 00:1e:c9:1a:81:5f
UP BROADCASTRUNNING SLAVE MULTICAST MTU:1500 Métrica:1
RX packets:4883 errors:0 dropped:0 overruns:0 frame:0
TX packets:4852 errors:0 dropped:0 overruns:0 carrier:0
colisões:0 txqueuelen:1000
RX bytes:461015 (450.2 KiB) TX bytes:488191 (476.7 KiB)
IRQ:20 Memória:fdfc0000-fdfe0000
eth1 Link encap:Ethernet Endereço de HW 00:1e:c9:1a:81:5f
UP BROADCASTRUNNING SLAVE MULTICAST MTU:1500 Métrica:1
RX packets:4938 errors:0 dropped:0 overruns:0 frame:0
TX packets:4832 errors:0 dropped:0 overruns:0 carrier:0
colisões:0 txqueuelen:1000
RX bytes:437315 (427.0 KiB) TX bytes:445136 (434.7 KiB)
lo Link encap:Loopback Local
inet end.: 127.0.0.1 Masc:255.0.0.0
endereço inet6: ::1/128 Escopo:Máquina
UP LOOPBACKRUNNING MTU:65536 Métrica:1
RX packets:676 errors:0 dropped:0 overruns:0 frame:0
TX packets:676 errors:0 dropped:0 overruns:0 carrier:0
colisões:0 txqueuelen:0
RX bytes:100766 (98.4 KiB) TX bytes:100766 (98.4 KiB)
A interface bond0 tem atribuído um endereço Internet e as 3 interfaces (bond0, eth0 e eth1) têm o mesmo endereço físico (“HWaddr 08:00:27:69:7a:b5”), para que sejam “vistas” pelo resto da rede como sendo apenas uma.
É possível obter ainda mais informações sobre o estado da interface bond0 e respetivos componentes:
root@server:~# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 200
Down Delay (ms): 200
Slave Interface: eth0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 08:00:27:69:7a:b5
Slave queue ID: 0
Slave Interface: eth1
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 08:00:27:22:af:bf
Slave queue ID: 0