Bonding + VLAN + Heartbeat ou UCARP (Debian/RedHat like)

Escrevi sobre cada um desses recursos independentemente em outros posts. Se estiver procurando por algum deles especificamente, basta digitar ali na caixa de pesquisa à direita.
Este post escrevi especificamente por que a configuração desse tipo pode causar algum nó na cabeça, além de ser possível uma variação dela (cuja variação não sei se funciona).

Apresentação
Bonding é a agregação de link, somando a banda das interfaces ou deixando uma como ativa e uma como backup. Para um bom entendimento desse recurso, leia esse post onde detalho seus principais modos e descrevo as condições de rede para cada tipo.

Para um bom entendimento da configuração de VLAN, recomendo esse outro post. Repare que os links que estou colocando mostram a configuração desses recursos em Debian de forma separada. Aqui serão exibidas as configurações completas, que deverão servir para praticamente todos os Linux.

A configuração detalhada do Heartbeat pode ser vista aqui. Opcionalmente (e preferencialmente), a configuração do UCARP no Debian:

Configurando UCARP
A configuração do UCARP é bastante simples e mais direta do que a configuração do heartbeat. Basicamente instala-se o pacote e suas configurações são feitas diretamente no arquivo /etc/network/interfaces. Para instalar o pacote:

E sua configuração, supondo uma interface com IP real 192.168.0.1 e IP virtual 192.168.0.254 na eth0:

Como se pode ver, seguidamente à configuração da interface física eth0 segue a configuração do UCARP. Define-se seus parâmetros e posteriormente configura-se a interface virtual normalmente.
Na lista de parâmetros estão:
ucarp-vid
O id da configuração. Deve ser igual em ambos os nodes que participam da virtualização do IP 192.168.0.254.

ucarp-vip
O IP virtual a utilizar na interface ucarp.

ucarp-password
Senha a utilizar entre os nodes. Não precisa ser nada complexo, isto é apenas para validação na comunicação entre os nodes.

Em Red-Hat like vocẽ pode seguir esse tutorial.

Iniciando a configuração em sistemas baseados em RedHat
Não é minha preferência, mas já foi há alguns anos. A configuração de interface em RedHat é distribuida em diversos arquivos; o da interface física, o da VLAN, o do bond e com ifconfig também se vê a interface virtual configurada pelo heartbeat, cuja interface é configurada em um outro arquivo, como será visto mais adiante.

Para instalar o Heartbeat, foi necessário adicionar o repositório Epel. Depois, faz-se o yum update e instala-se o pacote com yum install heartbeat. Esse foi meu primeiro desagrado; para instalar o HeartBeat, um conjunto de pacotes inúteis são instalados como dependências de cluster, sendo que necessário mesmo é apenas o heartbeat e nada mais.

A primeira configuração a ser feita é o bonding, pois a interface VLAN deve ser criada sobre a interface bond e não sobre as interfaces físicas (por exemplo, eth0 e eth1). Como estamos tratando primeiro da configuração sobre sistemas baseados em Red-Hat, os arquivos de interface ficam em /etc/sysconfig/network-scripts. Considerando apenas 2 interfaces físicas, teremos uma interface virtual chamada bond0, que deve ser criada tal qual fosse uma interface física. Porém, como vamos utilizar VLAN, essa interface não recebe nenhum endereçamento, apenas deve existir para que seja possível configurar a VLAN sobre a interface virtual:

E seu conteúdo:

As interfaces eth0 e eth1 devem ser configuradas para trabalhar como escravas dessa interface virtual. Os arquivos correspondentes são ifcfg-eth0 e ifcfg-eth1. Seu conteúdo deve ser:

Troque o X em DEVICE pelo número da interface; 0 para eth0 e 1 para eth1 em seus respectivos arquivos, citados anteriormente.
As duas linhas mais importantes que diferem de uma configuração tradicional de interface são MASTER, onde se indica quem é a interface mestre – no caso, a interface virtual bond0 – e SLAVE, que deve ser yes, para subjulgar as interfaces à interface virtual.

Para finalizar a configuração de bonding é necessário configurar o módulo para trabalhar a contento. Para tal, entre em /etc/modprobe.d e crie o arquivo bond.conf. Como é possível ter várias interfaces de bonding, o arquivo leva o nome genérico, mas considerando um sistema onde só vá existir uma interface, poderia chamar o arquivo de bond0.conf.

Seu conteúdo

Essa configuração é o suficiente para o trabalho do bonding. Para detalhes sobre os parâmetros utilizados e modos de operação, se refira ao link citado no início desse post. É importante que você tenha certeza de estar utilizando o modo de operação certo, pois um erro de configuração com tantas camadas pode causar muito transtorno até se descobrir a causa do problema. Então, se você ainda não leu o post sobre bonding, deixe de ser preguiçoso e faça-o. :-)

Para fazer a vlan, será necessário criar o arquivo da interface seguido da extensão que corresponda ao ID da VLAN, por exemplo 123. Nesse caso, deve-se criar o arquivo /etc/sysconfig/network-scripts/ifcfg-bond0.123 com o seguinte conteúdo:

Claro, o endereçamento IP de classe A foi utilizado apenas para exemplificar, a configuração deve corresponder ao endereçamento IP da VLAN pretendida.
Um parametro importante a reparar nessa configuração é VLAN=yes, onde aponta-se explicitamente o modo de funcionamento da interface, mas deve-se dar atenção também ao sufixo dado em DEVICE, incluindo o ID da VLAN em questão.

Assim configurado, faça reboot e veja se tudo está ok. Deve aparecer a interface bond0, eth0 e eth1, todas elas sem configuração de IP e a interface bond0.123 contendo a configuração de interface desse último arquivo criado.

Se gostou, não deixe de compartilhar; dê seu like no video e inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.

Prefere seguir-nos pelo facebook? Basta curtir aqui.

Prefere twitter? @DobitAoByte.

Próximo post a caminho!

Comments

comments

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.

Um comentário em “Bonding + VLAN + Heartbeat ou UCARP (Debian/RedHat like)

Deixe uma resposta