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


BlinkListblogmarksco.mmentsconnoteadel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoMa.gnoliaNewsVineNetvouzRedditSimpySpurlWistsYahooMyWebFacebook

Comentários

Erro ao configurar agregação com o bond.
Ronaldo do Carmo (guest) 1248290165|%e %b %Y, %H:%M %Z|agohover

Olá Ribeiro.

Eu estava exatamente nesse passo quando veio a mesagem de erro…oq eu posso fazer para corri-lo…já fui em vário sites buscando resposta, mas isso só me confundiu ainda mais.

Havia terminado de configurar o /etc/network/interfaces, ai quando fiz o restart apresentou essa msg.

Reconfiguring network interfaces…Ignoring unknown interface eth0=eth0.
Ignoring unknown interface eth0:0=eth0:0.
/bin/sh: /sbin/ifenslave: No such file or directory
Failed to bring up bond0.
done.

Obrigado desde já, e parabéns pelo site.

unfold Erro ao configurar agregação com o bond. by Ronaldo do Carmo (guest), 1248290165|%e %b %Y, %H:%M %Z|agohover
Re: Erro ao configurar agregação com o bond.
PinguimRibeiroPinguimRibeiro 1248301634|%e %b %Y, %H:%M %Z|agohover

Olá Ronaldo,

verifica se instalaste o pacote ifenslave:

server~# aptitude install ifenslave

em seguida, arranca novamente com o servidor:

server~# reboot

e finalmente verifica se está tudo a funcionar:

server~# ifconfig

Abraço
Pinguim.Ribeiro

unfold Re: Erro ao configurar agregação com o bond. by PinguimRibeiroPinguimRibeiro, 1248301634|%e %b %Y, %H:%M %Z|agohover
bonding com dois links de internet link oi e link da net
Isaias (guest) 1256085005|%e %b %Y, %H:%M %Z|agohover

Pinguim.Ribeiro queria saber se funciona eu fazer um bonding em um firewall com dois links de internet tenho um link de 2 MB da operadora oi e outro link da net o que forne-se tv a cabo.

como posso estar fazendo isso já que a interface do link da net usa um ip e o link da oi usa outro ip

são utilizado modens na ponta para fazer isso.

unfold bonding com dois links de internet link oi e link da net by Isaias (guest), 1256085005|%e %b %Y, %H:%M %Z|agohover
Add a new comment
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License