Tabela de Conteúdos
Página desactualizada Esta página contém uma versão anterior deste guia que pode estar desatualizada. Para a consultar a versão mais recente clique aqui.
2.1.4 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
server~# aptitude install ifenslave
Configuração
Para criar a interface bond0 deverá ser carregado e configurado o módulo bonding do kernel, o que é feito no ficheiro /etc/modprobe.d/arch/i386:
# [...] alias bond0 bonding options bonding mode=balance-rr miimon=100 downdelay=200 updelay=200 # [...]
O parâmetro 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.
Em seguida, carregue o módulo em memória:
server:~# modprobe bonding
E verifique que está realmente carregado:
server:~# lsmod | grep bonding bonding 69540 0
O passo seguinte é a parametrização da nova interface de rede e remover (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 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 up /sbin/ifenslave bond0 eth0 eth1 down /sbin/ifenslave -d bond0 eth0 eth1
Finalmente, reiniciar os serviços de rede:
server:~# /etc/init.d/networking restart
Verificação
O comando ifconfig permite verificar o estado das interfaces de rede:
server~# ifconfig bond0 Link encap:Ethernet HWaddr 00:0c:29:3c:96:f8 inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe3c:96f8/64 Scope:Link UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 RX packets:8713 errors:0 dropped:0 overruns:0 frame:0 TX packets:5014 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:7963175 (7.5 MiB) TX bytes:448727 (438.2 KiB) eth0 Link encap:Ethernet HWaddr 00:0c:29:3c:96:f8 UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:8711 errors:0 dropped:0 overruns:0 frame:0 TX packets:4978 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:7963037 (7.5 MiB) TX bytes:444479 (434.0 KiB) Interrupt:19 Base address:0x2000 eth1 Link encap:Ethernet HWaddr 00:0c:29:3c:96:f8 UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:2 errors:0 dropped:0 overruns:0 frame:0 TX packets:36 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:138 (138.0 B) TX bytes:4248 (4.1 KiB) Interrupt:18 Base address:0x2080 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:46 errors:0 dropped:0 overruns:0 frame:0 TX packets:46 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:3864 (3.7 KiB) TX bytes:3864 (3.7 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 00:30:1B:B0:C3:4A”), para que sejam “vistas” pelo resto da rede como sendo apenas uma.
Referências
- Wikipedia (pt): Ethernet bonding: (*http://pt.wikipedia.org/wiki/Ethernet_bonding)
- Wikipedia (en): Link aggregation: (*http://en.wikipedia.org/wiki/Link_aggregation)
- Debianhelp.co.uk: Ethernet Bonding Configuration in Debian: (*http://www.debianhelp.co.uk/bonding.htm)