Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · NoticiasLinux · SoftwareLivre.org · UnderLinux · BestLinux
» Screenshot
Linux: Slackware Perfeito
Por talon



» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha

» Wallpaper
Linux: tux_planet
Por assuero


Artigo

Load balance e alta disponibilidade com Bonding
Linux user
efloriani
01/05/2006
Bonding é mais conhecido como trunking pela Sun e Etherchannel pela Cisco. Aqui veremos como configurá-lo no modo balance-rr, utilizado principalmente para alta disponibilidade e load balance e no modo active-backup, que é utilizado para sistemas de alta disponibilidade. Ele cria uma única interface de rede lógica para várias interfaces de rede físicas.
Por: Edwin Floriani
[ Hits: 77808 ]
Conceito: 10.0   2 voto(s)2 voto(s)2 voto(s)2 voto(s)2 voto(s) + quero dar nota ao artigo

Introdução

Este artigo tem como finalidade mostrar duas modalidades principais do Bonding driver para Linux.

Ele é mais conhecido como trunking pela Sun, Etherchannel pela Cisco e no Linux como bonding. A abordagem deste artigo deverá ser muito clara e objetiva.

Vamos configurar no modo balance-rr, utilizado principalmente para alta disponibilidade e load balance e no modo active-backup, que é utilizado para sistemas de alta disponibilidade.

Ele cria uma única interface de rede lógica, para várias interfaces de rede físicas.

Próxima página >>


Páginas do artigo

Outros artigos deste autor
Nenhum artigo encontrado.

Leitura recomendada

Comentários
[1] Comentário enviado por thiagonobrega em 02/05/2006 - 13:07h:

Cara muito legal o teu artigo,

Não sabia que podia fazer LoadBalance usando Bonding < nem sabia que ele existia , rsrsrs > , so conhecia o cbq...

O Bonding me pareceu bem mais simples que o cbq no linux < no bsd o cbq e bem mais facil de fazer = ) >. Você por acaso viu algum comparativo entre Bonding x cbq ?

[]'s
Thiago Nobrega

[2] Comentário enviado por efloriani em 02/05/2006 - 14:10h:

Esta alta disponibilidade e/ou balanceamento, não é para conexão
internet a 2 provedores, ou 2 links. Ela é para balanceamento e HA
local na rede.

Caso 1 - balance-rr - Imagine a figura abaixo

Usando 2 hosts

+----------+ +----------+
| |eth0 eth0| |
| Host A +--------------------------+ Host B |
| +--------------------------+ |
| |eth1 eth1| |
+----------+ +----------+

Neste caso, se eth0 e eth1 estão funcionando e com link up nos dois
pontos, temos um load balance e ha. A velocidade aumenta, devido, como
explicado no artigo, os dados serem transmitidos em uma forma
sequencial, desde o primeiro slave até o último. Se uma interface
física cair, todo o tráfego é gerenciado para a outra interface.

Usando um host para um switch que suporte trunking

+----------+ +----------+
| |eth0 port1| |
| Host A +------------------------+ switch |
| +------------------------+ |
| |eth1 port2| |
+----------+ +----------+
Neste caso, ocorre da mesma forma que acima. Temos um load balance
para grande carga em rede local. O Host A pode estar servindo um banco
de dados oracle, com duas placas de rede giga. Assim, dobramos a
velocidade de transmissão dos dados na rede, nao ocorrendo um
afunilamento. E temos a alta disponibilidade, caso uma porta do switch
venha a queimar, ou se um cabo rompido ou placa de rede perder
performance ou até mesmo cair, o outro slave assume inteiramente o
tráfego.

Agora, temos o caso 2, explicado no artigo, modo de active-backup.

Caso 2 - active-backup - Imagine a figura abaixo


| |
|port3 port3|
+-----+----+ +-----+----+
| |port7 ISL port7| |
| switch A +-------------------------+ switch B |
| +-------------------------+ |
| |port8 port8| |
+----++----+ +-----++---+
port2||port1 port1||port2
|| +-------+ ||
|+-------------+ host1 +---------------+|
| eth0 +-------+ eth1 |
| |
| +-------+ |
+--------------+ host2 +----------------+
eth0 +-------+ eth1

Neste caso, o driver bonding, trabalha&#341;a a somente no modo failover,
para alta disponibilidade. Digamos que o switch A, queime, ou o port1
queime, ou pare de comunicar, ou tenha um atraso muito grande na
atualização da tabela arp interna dele, então, automaticamente, o
bonding abandona essa interface, e passa todo o tráfego pela outra
interface no outro switch. Este modo serve apenas para redundancia.

Cara, se nao fui muito claro, me manda outra msg ai pra gente esclarecer..

Edwin Floriani

[3] Comentário enviado por thiagonobrega em 02/05/2006 - 15:06h:

Pra mim já tam massa ...
tua explicação mais um link que achei ja deu para enteder bem ,,,

Valeu pela aula :D ...

ps : isso da um outro artigo rsrsrsrsrsrsr ...

[]'s
Thiago Nobrega



[4] Comentário enviado por mordecai em 04/05/2006 - 08:38h:

Artigo de alto nível
Parabéns !!



[5] Comentário enviado por heberreis em 28/09/2006 - 13:32h:

Boa Tarde

Tenho dois links de provedores distintos, onde posso achar um tutorial para fazer Load balance + Alta Disponibilidade no linux .

Já li varias documentações mais nenhuma funcionou .


Esquema :

link1--eth0 Compartilhado Internet para
|---------------------------------------eth3----------Lan
link2--eth1


1 - Fazer a rede lan usar os dois links; não precisa dividir os pacotes, tipo quando uma maquina da lan navegar ou fazer download escolhe um dos links.

2 - quando algum dos links cairem o outro assumir a internet .


Muito obrigado pela atenção.

Qualquer resposta será bem vinda .

[6] Comentário enviado por danyelskittine em 30/01/2007 - 20:20h:

Pessoal tenho uma duvida, alguem conhece uma forma de fazer um load balance de alta disponibilidade com link de internet? tipo assim: tenho 3 placas de rede...eth0=link de 1 mega velox, eth1=link de 1 mega velox, eth2=rede local....tem como eu juntar esses dois links pra ficar 2=megas?

[7] Comentário enviado por rduarte em 01/02/2007 - 17:04h:

Tentei implementar usando o samba não funcionou o samba não consegue carregar tenho um trafego de rede pesado alguem tem alguma dica

[8] Comentário enviado por cytron em 01/06/2007 - 06:24h:

Implantei esse tal de bonding mas nao funcionou como deveria. Virei duas madrugadas tentando resolver mas não achei a solução. Não entendi como tudo funciona, fiz como pediu:

criei a interface bond0
agrupei eth0 e eth1 em bond0

Coloquei o tráfego pra rodar e observei que eth0 e eth1 trafegaram quase a mesma quantidade de dados, ficou realmente equilibrado... no entanto... ao invés de aumentar a velocidade (somando eth0 + eth1) a coisa ficou foi muito lenta, quando pingo fica perdendo quase 50% dos pacotes.

No meu entender, parece que falta mexer com a tabela de roteamento, nao entendo muito disso e procurei em tudo quanto foi bonding e ninguém falou de roteamento. Talvez meu palpite esteja errado... Mas então o que está acontecendo?

[9] Comentário enviado por cytron em 17/02/2008 - 19:00h:

Puxa! 8 meses depois... e ninguém respondeu! Acho que essa coisa de bonding está fora de moda... a final...

Ninguém gosta mais do Bonding... James Bond'ing' kkkkk!!!!

A partir de hoje estou retomando minhas tentativas, mas meu caso é um pouco diferente, é o mesmo caso que o autor deste artigo prometeu mostrar e acabou não colocando:

É sobre fazer o balance em links conectados a um switch que suporta trunking e também outro exemplo em switch sem trunking. Pois eu possuo vários links e não tem cabimento colocar um monte de placas de rede em um servidor.

Por isso conecto os links em um switch para fazer o load balance, mas atualmente estou sobrevivendo graças a um complexo emaranhado de controle de rotas e iptables para fazer um balance dinâmico baseado em demanda de tráfego. Mas creio que um bonding vai exigir bem menos da máquina.

[10] Comentário enviado por efloriani em 18/02/2008 - 18:05h:

Ola,

Não entendi o que está faltando. Trabalhar com Bonding é extremente simples. O artigo postado faz o trabalho de fail over e load balance.

É interessante ter o bonding como módulo para carregar com as opções que você deseja.

Aguardo uma pergunta.

[11] Comentário enviado por oberdan.soares em 18/04/2008 - 17:02h:

Boa Tarde, estou com problema quando vou usar o bonding em modo 1... que seria o backup:

eth0 - 192.168.200.1 -> rede interna
eth1 - 192.168.0.2 -> gvt - link principal
eth2 - 192.168.1.2 -> brt

modprobe bonding

adicionei no /etc/modules.conf.local

alias bond0 bonding
options bond0 mode=1 miimon=100 downdelay=200 updelay=200

dei os comandos:

ip addr add 192.168.0.2/24 brd + dev bond0
ip link set dev bond0 up
ifenslave bond0 eth1 eth2

digitei os comandos sem problema... mas a eth1 e a eth2 ficou com o ip 192.168.0.2...

deixei os 2 modem.. com o ip 192.168.0.1

estava sem nenhuma rota configurada, adicionei a rota

route add default gw 192.168.0.1

do meu micro pinga

mas perde pacote pra cara*** quando tiro um dos cabos de rede, o ping funciona filé... oq pode estar errado nessa configuracao?

[12] Comentário enviado por mauromx em 24/06/2008 - 11:09h:

No Fedora
eth0 = adsl1
eth1= rede interna
eth2 = adsl2
eth3 = adsl3

Como ficaria minha configuracao de bonding?

Grato desde ja!

[13] Comentário enviado por efloriani em 24/06/2008 - 13:17h:

O Método bonding é para redundancia ou trunking em rede interna.. Nao é adequado para uso em balanceamento de internet. Para isso, podes utilizar por exemplo, marcação de pacotes e iproute2.

[14] Comentário enviado por aldoarendt em 12/02/2009 - 15:40h:

Amigos fiquei meio confuso com o bonding, fiz as configurações descritas e o que consegui foi uma redundancia entre a minha eth0 e eth1 onde as duas ficaram com o mesmo ip, se alguem puder me ajudar minha situação é a seguinte eth0 entra um link Brasil telecom, eth1 entra um Link copel, o link copel so deve ser ativado quando o link brt parar de funcionar e quando ele retornar automaticamente o link passa a vir por ele e o link da copel para de funcionar.

[15] Comentário enviado por nox6000 em 29/08/2009 - 21:01h:

Muito Bacana o Artigo, Parabéns!!!

Eu sou um usuário de nivel intermetidario em linux.

Gostaria de saber se há como utilizar este metodo abordado para utilizar dois links do velox não pra somar a velocidade de conexão e sim para que eu possa utilizar dois modens onde as interfaces eth0 e eth1 fiquem com o dois modens.
E a eth2 fique responsavel pra liberar o sinal pra rede.

já configurei o squid para controlar o acesso externo e o pppoeconf para realizar a autenticação e já consigo fazer meu servidor conectar com um modem e liberar o sinal para a rede, mas gostaria de saber se tem como atraves desse metodo abordado pelo artigo eu compartilhar as duas conexões.

Uso o ubuntu 9.04 desktop

Obrigado!

[16] Comentário enviado por tosko em 03/04/2010 - 19:09h:

ta, disculpe talvez minha ignorancia mas eua inda não entendi uma coisa direito, eu preciso unir 2 links da mesma operadora, eles vão fazer a altenticação no modem mesmo, se eu fizer este bonding ele vai unir as duas velocidades? tipo se for 1 link de 1mb e outro de 1mb vou navegar a 2mb? ele vai dividir a requisição em ambos? como ira funcionar?


Contribuir com comentário
CAPTCHA
[ Recarregar imagem ]

Digite o código acima:

  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.