Discuta este tópico no fórum

Se este conteúdo te ajudou, deixe um presente!

domingo, 5 de fevereiro de 2012

OpenWRT: Instalando em um computador ou VM

Mais um artigo da série sobre o OpenWRT.

Apesar de recomendar o uso do OpenWRT para os "computeiros" em geral, trocar o firmware do seu roteador "para ver como é" o OpenWRT não é uma boa prática. Se este é o seu caso, este artigo foi feito para você.

O OpenWRT, devido a sua gama de roteadores suportados, tem a portabilidade como um fator fundamental de sucesso. Ele precisa operar tanto em dispositivos com ARM, Mips e outros processadores um tanto quanto exóticos para quem somente trabalha com a arquitetura Intel clássica.  Se ele funciona para tantas arquiteturas diversas, por que então não funcionaria com um computador i586? Bem, ele funciona.

No mesmo local onde é encontrado os firmwares para os roteadores, existe um "alvo" específico para a arquitetura x86 (ix86, i586). É neste link aqui e é chamada de x86_generic. Assim como para qualquer outra arquitetura, existe também o ImageBuilder que já comentei anteriormente. Porém, o espaço em disco não é problema para um x86, onde o armazenamento gira em torno dos Gigabytes e não Megabytes. No link que passei, como sempre, existe vários arquivos. Dentre as opções de imagens, foi destacar algumas.
  • openwrt-x86-generic-combined-ext2.img.gz
  • openwrt-x86-generic-combined-ext2.vdi
  • openwrt-x86-generic-combined-ext2.vmdk

A versão "combined" não possui a partição /overlay. Ele funciona como a raiz de uma distribuição Linux clássica: alteração direta no disco. Se você apagar o que não deve, pode precisar começar do zero. Bem, isto não é tão crítico em um PC. Basta usar um LiveCD ou reinstalar o OpenWRT. Das três opções que eu listei são, em ordem: uma imagem (compactada com gzip) para ser copiada no disco (usando dd, por exemplo), um disco para VirtualBox e um disco para Vmware. Para experimentar, as duas últimas são as mais indicadas. Existe também a versão rootfs-squashfs, similar ao utilizado em um roteador embarcado, mas ainda não experimentei.

A arquitetura x86_generic também pode ser utilizada não como um "experimento" mas sim como um roteador em produção. Já precisei mais de uma vez montar um roteador com Linux utilizando um PC. No meu caso, até hoje, só utilizei distribuições clássicas, e isso dá um pouco de trabalho. Porém, hoje em dia, diante das facilidades de configuração do OpenWRT, eu optaria por utilizá-lo como "distribuição" dos meus roteadores.

Se for utilizar as versões virtuais (vdi, vmdk) em produção, vale a pena dar uma olhada se os drivers de rede estão "acelerados". Não sei se os drivers paravirtualizados (vmware-tools, vboxadditions) estão integrados na imagem. Mesmo sem eles, acho que o desempenho de um roteador com um processador Core 2 Duo moderno deve ser mais performático do que um processador de 400 Mhz dos roteadores "residenciais" ou SOHO. Com recurso de VLAN, pode-se montar um ambiente bem interessante.

Até a próxima.

quarta-feira, 1 de fevereiro de 2012

OpenWRT: Multiplique suas redes: MultiLAN com VLAN

Mais um artigo da série sobre o OpenWRT.

No artigo anterior, comentei sobre o uso de múltiplas redes wireless. Hoje, vou falar sobre múltiplas redes LAN.

Em geral, os roteadores possuem duas interface de rede cabeadas: LAN e WAN. A primeira representa as portas da rede local, normalmente umas 4 ou 5 delas. A segunda é utilizada para a conexão ao enlace superior, o que normalmente é a sua conexão com a Internet. Na figura abaixo, a porta azul é a WAN, enquanto as amarelas são para a conexão LAN.


Neste roteador com OpenWRT, a eth0 "representa" o acesso as várias portas da rede local (as amarelas). Fazendo uma analogia com um computador, o que existe "dentro da caixa" é um switch de 4 portas externas e uma interna (chamada CPU), sendo esta interna conectada à interface eth0.  A eth0, por padrão, é agregada com a interface wireless, wlan0, para que as duas redes troquem pacotes. Tudo isto já comentei anteriormente. A figura seguinte ilustra aproximadamente esta "rede interna".


Este arranjo também muda de equipamento para equipamento. Tem casos onde a porta WAN está neste switch e eth1 não existe, outros a wireless é eth1 e assim por diante.

Como qualquer interface de rede no OpenWRT, a sua finalidade pode ser reajustada de acordo com a necessidade do administrador. Caso não fosse necessário a conexão com a Internet, como no caso de um access-point, a interface eth1 poderia ser anexada junto na interface LAN, operando como uma quinta porta local. Porém, o mais interessante não é juntar as interfaces mas sim, dividi-las.

Se seu roteador suportar o recurso de VLAN (olhe a coluna VLAN no site do OpenWRT), você poderá dividir estas portas em redes isoladas. VLAN é uma tecnologia de Virtualização de Redes Locais. Ela foi criada para que o isolamento entre duas redes pudesse ocorrer dentro de um switch e não exigir toda uma estrutura em paralelo. Assim, parte das portas de um switch podem pertencem a uma rede enquanto outras pertencem a uma segunda rede, sem comunicação entre elas. A troca de pacotes entre as redes é intermediada por um roteador, que pode controlar quem troca que pacotes com quem.
Dica: recomendo que as configurações do switch interno sejam feitas pela rede wireless, uma vez que esta não participa do switch. Assim, será mais difícil que uma mudança de configuração resulte em falta de conectividade.
Para configurar, vá para a configuração de rede, switch. Se não estiver habilitado, habilite o recurso de vlan. Você notará que já existe uma vlan 1 com todas as portas marcados como "não etiquetadas/not tagged". O que é esta etiqueta? Vou tentar explicar em poucas linhas.

VLAN são identificadas por um número único na rede local, chamado de VLAN ID. A VLAN padrão nos diversos equipamentos de rede no mercado é a de número 1. As outras, 2, 3, etc, são criadas de acordo com a necessidade do administrador.

As portas do switch podem estar em 2 estados básicos: pertencer a uma VLAN (estado "não etiquetado") ou não pertencer a uma VLAN (estado "desligado"). O primeiro, "não etiquetado", faz com que a porta envie e receba pacotes da VLAN correspondente. Cada porta pode estar presente em apenas uma VLAN para não misturar os tráfegos. Se selecionar para uma mesma porta duas VLANs como "não etiquetadas", a configuração não irá salvar e você receberá uma bela mensagem de erro. O outro estado, como o nome sugere, informa que esta porta está "desligada" da VLAN.

E quanto a esta "etiqueta"? A limitação de uma VLAN por porta não resolve todos os problemas. Porém, as VLANs não podem se "misturar" em uma mesma porta. Para resolver este problema, foi criada as etiquetas (tags) do protocolo 802.1Q. As etiquetas, nada mais são que um envelope envolvendo o pacote IP e informando de qual VLAN aquele pacote pertence. Assim, os pacotes da VLAN marcada como "etiquetado" recebem uma camada extra com o ID da VLAN de destino enquanto os "não etiquetado", onde a VLAN é chamada de VLAN nativa, são enviados normalmente pela rede.

Temos então 3 opções:
  • "desligado" significa porta não está naquela VLAN;
  • "não etiquetadosignifica porta está naquela VLAN e somente nesta;
  • "etiquetado" significa porta está naquela VLAN mas todos os pacotes vindo desta ou destinados para ela serão envolvidos em um envelope.
Este "envelope" faz com que os sistemas operacionais e demais equipamentos de rede não reconheçam-no como um pacote IP normal. Contudo, tantos os switches e roteadores como os sistemas operacionais tem suporte, quando configurado, para interpretar estas etiquetas. 

Vamos então a um exemplo simples onde 2 das quatro portas serão configuradas para uma outra rede. Ainda em rede, switch, crie uma nova VLAN. O número não importa muito, desde que seja único na rede. Nesta nova VLAN, marque a porta CPU como "etiquetado/tagged", e as portas 3 e 4 como "não etiquetado/not tagged". Como somente uma VLAN pode ter a porta como "não etiquetado", configure as portas 3 e 4 na VLAN 1 como "desligado". Aplique as configurações. Isto irá criar uma nova interface, eth0.2, onde 2 é o ID da VLAN. Ela pode ainda estar abaixada mas já vamos resolver isto. E a porta 5? Todas as configurações que eu fiz nela foram inócuas. Pela pesquisa que eu fiz, é uma porta de gerenciamento.

Agora precisamos criar uma nova interface para esta rede. Vá para "Rede" e "Interfaces" e adicione uma nova interface. Você irá notar que existe uma nova interface chamada de "Interface VLAN: "eth0.2"". Selecione ela e configure a sua nova interface como desejar. Só não esqueça de utilizar uma faixa de endereços independente das demais interfaces. Ajuste o firewall "a gosto".

Agora que já passamos pelo MultiWLAN e MultiLAN, no próximo artigo vou comentar como criar uma MultiWAN, com balancemento de carga e redundância entre diversas conexões com a Internet.

Até mais.