Agregação de interfaces de rede
Objectivo
A maior parte dos sistemas actuais dispõe de 2 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.
Instalação
root@server~# aptitude install ifenslave
Configuração
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 65204 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.1.100
# netmask 255.255.255.0
# network 192.168.1.0
# broadcast 192.168.1.255
# gateway 192.168.1.1
# Interface bonding
# Static IP address
auto bond0
iface bond0 inet static
bond-slaves eth0 eth1
bond-mode balance-rr
bond-miimon 100
bond-primary eth0 eth1
address 192.168.1.100
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.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:~# /etc/init.d/networking restart
Verificação
O comando ifconfig permite verificar o estado das interfaces de rede:
root@server:~# ifconfig
bond0 Link encap:Ethernet HWaddr 00:30:1b:b0:6e:84
inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::230:1bff:feb0:6e84/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:23339499 errors:0 dropped:0 overruns:0 frame:0
TX packets:11308048 errors:0 dropped:0 overruns:5 carrier:0
collisions:0 txqueuelen:0
RX bytes:182934407 (174.4 MiB) TX bytes:1008040228 (961.3 MiB)
eth0 Link encap:Ethernet HWaddr 00:30:1b:b0:6e:84
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:12004063 errors:0 dropped:0 overruns:0 frame:0
TX packets:5654023 errors:0 dropped:0 overruns:5 carrier:0
collisions:0 txqueuelen:1000
RX bytes:597782690 (570.0 MiB) TX bytes:519229722 (495.1 MiB)
Interrupt:18 Base address:0xa000
eth1 Link encap:Ethernet HWaddr 00:30:1b:b0:6e:84
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:11335436 errors:0 dropped:0 overruns:0 frame:0
TX packets:5654025 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3880119013 (3.6 GiB) TX bytes:488810506 (466.1 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:193243 errors:0 dropped:0 overruns:0 frame:0
TX packets:193243 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:31609190 (30.1 MiB) TX bytes:31609190 (30.1 MiB)
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 00:30:1b:b0:6e:84”), para que sejam “vistas” pelo resto da rede como sendo apenas uma.