Ir ao conteúdo

LACP, Roundrobin e Failover no OpenBSD 6.0

Salve Salve Pessoal!

Nesse post vou mostrar como configurar uma interface trunk no OpenBSD. Ops, Trunk??? Sim, trunk!

Trunk é o nome usado para interface virtual que é criada no OpenBSD, então não se confundam com “VLAN Trunk” e etc. 😉

Uma interface trunk permite agregar várias interfaces físicas em uma só interface virtual.

Atualmente nós podemos usar os seguintes protocolos para configurar uma interface trunk no OpenBSD: broadcast, failover, lacp, loadbalance, none ou roundrobin.

Para este post, nós vamos trabalhar com os seguintes protocolos: roundrobin, lacp e failover.

Vamos fazer um cenário bem simple, onde vamos ter 2 hosts com OpenBSD 6.0 instalado em cada um, no HOST-01 temos duas interfaces de rede (em0 e em1), no HOST-02 temos apenas uma interface de rede (em0). A lógica é simples, vamos configurar o trunk no host 01 e ficar testando a comunicação do host 02.

             HOST-01                                     HOST-02  
        |---------------|                          |----------------|
        |              vmx0 <------|               |                | 
        |  OpenBSD 6.0  |       trunk0 <-------> vmx0  OpenBSD 6.0  | 
        |              vmx1 <------|               |                |
        |---------------|                          |----------------|

A sintaxe de configuração de uma interface trunk é bem simples, segue um exemplo abaixo:

# ifconfig trunk0 trunkproto lacp trunkport vmx0 trunkport vmx1 192.168.1.1 netmask 255.255.255.0

ifconfig – É o utilitário de configuração de rede.

trunk0 – É o trunk mais o ID da interface virtual que estamos criando.

trunkproto lacp– Protocolo que iremos utilizar no trunk.

trunkport vmx0– Dizemos que a interface vmx0 vai fazer parte do trunk.

trunkport vmx1– Dizemos que a interface vmx0 vai fazer parte do trunk.

E depois o IP mais MASCARA.

Antes de começarmos a configurar vamos verificar as configurações de rede de cada host:

HOST-01

screen-shot-2016-10-19-at-21-16-39

Como podemos verificar, o host-01 tem as interfaces vmx0 e vmx1, a interface vmx0 está recebendo IP porque a mesma está configurada como dhcp no arquivo de configuração da interface, a interface vmx1 não está com nenhuma configuração pelo fato de não existir nenhum arquivo de configuração para a mesma.

HOST-02

screen-shot-2016-10-19-at-21-17-13

Como podemos ver, no host-02 temos apenas a interface vmx0, está recebendo IP porque a mesma está configurada como dhcp no arquivo de configuração da interface.

Antes de começarmos vamos apagar o arquivo de configuração das interfaces  do host-01, para não gerar nenhum conflito com o arquivo de configuração do trunk, execute o seguinte comando no host-01:

# rm /etc/hostname.vmx*

OBS: Não realize essas configurações remotamente 😉

Então vamos ao que realmente interessa, vamos começar as configurações 😀

ROUNDROBIN:

A configuração de roundrobin é a padrão, ou seja, se não especificarmos nenhuma protocolo na configuração o roundrobin será usado.

Execute os comandos abaixo para configurar o trunk0 com o protocolo roundrobin:

# ifconfig vmx0 up

# ifconfig vmx1 up

# ifconfig trunk0 trunkport vmx0 trunkport vmx1 192.168.1.100 netmask 255.255.255.0

Após configurado, execute um ifconfig para verificar se a interface trunk0 subiu corretamente.

screen-shot-2016-10-19-at-22-01-52

Vamos analisar a saída do comando ifconfig.

As setas vermelhas indicam que a interface vmx0 e vmx1 agora fazem parte do trunk0.

A seta verde indica qual protocolo estamos usado, lembre-se, se não especificarmos nenhum protocolo o protocolo padrão é o roundrobin.

A seta azul está indicandos as portas que fazem parte do trunk, o estado de cada uma, no nosso caso as duas estão ativas, sendo que a vmx0 está como master.

Mas como podemos definir quem vai ser a interface master? Simples, a primeira interface informada no comando será a interface master. 😉

Mas ainda temos um problema para resolver, tudo que fizemos até esse momento está apenas em memória, temos que criar um arquivo de configuração para cada interface (vmx0, vmx1, trunk0) e configurar cada um dos confs, para isso execute os seguintes comandos:

# echo "up" > /etc/hostname.vmx0

# echo "up" > /etc/hostname.vmx1

# echo "trunkport vmx0 trunkport vmx1 192.168.1.100 netmask 255.255.255.0" > /etc/hostname.trunk0

Pronto, agora temos a nossa configuração de forma persistente, reinicie o host-01 para verificar se tudo está como esperado.

Do host-02 fique pingando o host-01, desative e ative as interfaces vmx0 e vmx1 do host-01 e veja se o protocolo está funcionando corretamente.

LACP

Para configurar com o protocolo LACP, os passos são os mesmos, a diferença é que temos que inserir o protocolo desejado.

# ifconfig vmx0 up

# ifconfig vmx1 up

# ifconfig trunk0 trunkproto lacp trunkport vmx0 trunkport vmx1 192.168.1.100 netmask 255.255.255.0

screen-shot-2016-10-19-at-22-44-31

Observe na imagem que nenhuma das interfaces estão como ativas, com a configuração com o protocolo LACP, nós precisamos que a outra ponta da rede, também esteja com lacp, normalmente seria um switch.

Para configurar o trunk usando lacp de forma persistente, execute os seguintes comandos:

# echo "up" > /etc/hostname.vmx0

# echo "up" > /etc/hostname.vmx1

# echo "trunkproto lacp trunkport vmx0 trunkport vmx1 192.168.1.100 netmask 255.255.255.0" > /etc/hostname.trunk0

No caso do lacp não consiguiremos realizar o teste de ping.

FAILOVER

Para configurar com o protocolo de failover, os passos são os mesmos que o lacp, só vamos mudar o protocolo desejado.

# ifconfig vmx0 up

# ifconfig vmx1 up

# ifconfig trunk0 trunkproto failover trunkport vmx0 trunkport vmx1 192.168.1.100 netmask 255.255.255.0

 

screen-shot-2016-10-19-at-22-49-45

Observe na imagem que agora nós temos apenas a interface master como ativa, caso a mesma venha a falhar, a outra interface irá assumir o lugar dela.

Para configurar o trunk usando failover de forma persistente, execute os seguintes comandos:

# echo "up" > /etc/hostname.vmx0

# echo "up" > /etc/hostname.vmx1

# echo "trunkproto failover trunkport vmx0 trunkport vmx1 192.168.1.100 netmask 255.255.255.0" > /etc/hostname.trunk0

Faça o mesmo teste que o roundrobin, do host-02 fique pingando o host-01, desative e ative as interfaces vmx0 e vmx1 do host-01 e veja se o protocolo está funcionando corretamente.

Pronto, espero que tenham gostado do post, até a próxima 😀

Referências:

http://man.openbsd.org/trunk.4

http://man.openbsd.org/hostname.if.5

https://www.nostarch.com/obenbsd2e

Publicado emBSD

2 Comentários

  1. Henrique Motta Henrique Motta

    Rodrigo que artigo rico !
    Muito obrigado por compartilhar essas dicas foram de suma importância, estou engatinhando em redes possuo clientes que são amigos, outros que são vizinhos, estou estudando por conta ospf, bgp e tals como facul ainda eh fora de orçamento estou na luta meu objetivo seria criar um PPT totalmente bsd vendo o número de Mikrotik fazendo borda assusta um pouco, não falando do produto mas pela facilidade de uso alguns admins sobrecarregam ele ao nível de dar reboots e falhas operacionais sem explicações, enfim estou tentando entrar em um provedor local só como estudo somente para aprender quem sabe… rs mais fica meu obrigadooo!

Deixe um comentário para Rodrigo Lira Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Descubra mais sobre Rodrigo Lira

Assine agora mesmo para continuar lendo e ter acesso ao arquivo completo.

Continue reading