Post em Destaque

Instalação AMP

Sei que para muitos parece simples, mas para os que estão chegando também temos que dar atenção. Neste guia será apresentada uma instalação básica de Apache, MySQL e PHP no FreeBSD MYSQL Acessar o  ports do MySQL cd /usr/ports/databases/mysql50-server 2. Compilar e instalar o port make &&...

Leia mais...

Link Aggregation – a solução para não usar 10GbE ainda.

Postado por gondim | Categoria Dicas, FreeBSD, Tecnologia | Dia 12-05-2012

Tags:, ,

0

Não é de hoje a busca por links de grande capacidade, principalmente por Provedores de Internet. Lembro da época que interfaces de rede Gigabit eram muito caras e vivíamos com redes 10/100. O provedor que trabalho, na época tinha link de 2Mbps quando ainda existiam conexões discadas. A interface de rede que ligava o provedor ao fornecedor do link Internet era uma 3Com 10/100 que atendia muito bem. Mas o crescimento chegou rápido e fomos aumentando nosso link até que chegamos em 100Mbps. Nesse patamar a boa e velha 3Com não atendia mais as necessidades e aí mudamos para interface Intel Gigabit. Continuamos crescendo e hoje nosso link pulou para 1.2Gbps. Mas como colocar 1.2Gbps em uma interface de apenas 1Gbps? Não coloca. Nesse ponto surge a necessidade de um upgrade de equipamento para 10GbE. Bem, são equipamentos extremamente caros e por isso partimos para outra solução conhecida como: Link Aggregation e que o FreeBSD faz muito bem.

Com o Link Aggregation (lagg) você pode adicionar interfaces de rede somando as velocidades e ao mesmo tempo balanceando e servindo de failover. Para o Provedor aqui foi preciso apenas adicionar mais uma interface de rede Intel Gigabit e configurar o lagg e com isso agora temos quase 2Gbps para nos atender sem grandes investimentos.

Irei mostra aqui um exemplo de configuração que inclusive está funcionando hoje em nosso router central que é um FreeBSD 9.0 64bits stable. Este router encontra-se ligado em uma switch com suporte à lagg que interliga nossas Cidades através de um clear channel em fibra.

Primeiramente precisamos do suporte ao lagg ativado. Isso pode ser feito de 2 formas, compilando no kernel ou carregando em tempo de boot.

Para colocar direto no kernel, basta adicionar a linha abaixo no seu kernel, compilar e instalar seu novo kernel.

device          lagg

Caso não queira compilar o kernel com suporte você pode optar por carrega-lo como módulo no boot. Para isso basta adicionar a linha abaixo em /boot/loader.conf:

if_lagg_load=”YES”

Para essa configuração usei o esquema de start_if.<interface> diferente do usado no rc.conf e pode ser lido aqui.

No meu router criei os arquivos /etc/start_if.em2 e /etc/start_if.em3 conforme abaixo:

start_if.em2:

/sbin/ifconfig lagg1 create
/sbin/ifconfig em2 up

A primeira linha estou criando uma interface virtual de link aggregation chamada lagg1. Estou criando a lagg1 porque já tenho uma lagg0 junto ao meu fornecedor de link Internet e no final as configurações serão as mesmas, logo irei mostrar apenas uma.

Na segunda linha apenas levanto a interface em2, deixando-a ligada e sem IP mesmo.

start_if.em3:

/sbin/ifconfig em3 up
/sbin/ifconfig lagg1 laggproto lacp laggport em2 laggport em3 186.xxx.xx.1 netmask 255.255.255.224

Na configuração da outra interface em3 nós levantamos ela sem IP algum e na segunda linha é que configuramos nosso lagg. Onde dizemos que o lagg1 vai usar o protocolo lacp (Link Aggregation Control Protocol). Vai agregar as interfaces em2, em3 e setar o IP 186.xxx.xx.1 na lagg1.

Existem outras opções de protocolo mas o lacp é o mais completo e interessante ao meu ver. Você pode consultar outros protocolos através do: man lagg

Feito isso basta agora você interligar as 2 interfaces de rede nas 2 portas da switch que foram configuradas para fazer o lagg. Simplesmente isso. Para ter certeza que tudo vai funcionar certo, re-inicie o sistema.

Como saber se o lagg está funcionando? Simples também. Faça um ifconfig no lagg1 e veremos algo assim:

lagg1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC>
ether 00:1e:67:07:9d:cc
inet 10.10.10.10 netmask 0xffffffff broadcast 10.10.10.10
inet6 fe80::21e:67ff:fe07:9dcc%lagg1 prefixlen 64 scopeid 0x12
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
media: Ethernet autoselect
status: active
laggproto lacp
laggport: em3 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
laggport: em2 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>

Nas 2 últimas linhas tem que estar como ACTIVE nas 2 interfaces, senão o lagg não estará funcionando.

Para visualizarmos o consumo de banda independente por interface (em2 e em3) ou o somatório (lagg1) podemos instalar e usar o programa nload que está no ports.

# cd /usr/ports/net/nload/

# make install clean

Com o comando “nload -u k” e usando as setas para baixo e para cima você poderá navegar nas interfaces existentes. Abaixo as telas do meu sistema em funcionamento:

Bem é isso. Assim como muitas outras coisas no FreeBSD, essa não poderia deixar de ser tão simples e fácil.

Espero que seja útil e ajude.  😉

Share Button

Write a comment

*