Sunteți pe pagina 1din 9

Criando Redes Locais Virtuais (VLANs) com Linux

Autor: Marcelo Barros de Almeida <barros at smar.com.br> Data: 29/06/2006 Senta que l vem a histria ... Pode parecer estranho, mas o ciclo de evoluo de uma rede local, principalmente de pequenas e mdias empresas, passa por caminhos muito parecidos, crescendo medida que os problemas vo aparecendo e se adaptando s novas necessidades e demandas. Uma histria hipottica poderia ser a que vem a seguir:

No incio s existiam computadores isolados e era bom. Disquetes e CDROMs so utilizados para compartilhar dados. Poucos vrus aparecem. O acesso Internet discado, quando existe, e a briga pelo ramal ferrenha ! A situao se torna insustentvel e algum tem a idia de interligar dois micros via cabo de rede, uma vez que eles j tm a placa de rede "on-board". Algumas horas depois todos os problemas de interligao so superados e a comunicao ponto-a-ponto comea. Um sucesso! Mais pessoas querem entrar para a festa e resolve-se ento comprar um hub. Afinal, jogar Quake em rede muito mais divertido! Alguns dias de implantao e a rede local nasce. As mquinas no tem funes especficas e algumas delas so usadas para compartilhar informaes. O infeliz que usa a mquina onde esto as informaes compartilhadas comea a reclamar. Ele no pode dar nem um boot na mquina sem que algum ligue imediatamente depois que ele clicou em "reiniciar". Eventualmente ele esquece e a desliga na hora de ir embora, sendo amaldioado atravs de "post-it"s mal criados deixados na sua mesa. Sem falar no dia que ocorreu um problema de hardware e todo mundo ficou sem acessar as informaes enquanto o problema era solucionado. E a impressora compartilhada ento? Ningum suporta mais, principalmente a pessoa que fica no micro onde ela est ligada. "Precisamos de mquinas dedicadas", dizem todos em coro. "Precisamos de um acesso melhor Internet", lamentam outros. "Este hub est uma droga", pragueja mais um. No tem mais volta, a empresa est crescendo. Alguns servidores aparecem. Um switch comum comprado para melhorar o desempenho da rede. Decidem contratar um servio de acesso Internet. A pessoa que mais "manjava de informtica" assume a responsabilidade de cuidar da rede, obviamente sem que nenhuma das suas atribuies antigas fossem removidas. A expanso continua: mais mquinas, outras sub-redes, novos switches. O "administrador da rede" um dia acorda mal humorado e d um ultimato no gerente: "Ou eu s administro a rede ou vocs contratam algum, no tem mais condies, no consigo mais trabalhar". E assim nasce o cargo de administrador de redes da empresa. Agora livre das amarras da sua antiga funo e com algumas promessas de treinamento, o novo administrador comea a fazer melhorias, aprimorando e organizando a rede local. Pesquisando sobre equipamentos de rede ele descobre que alguns switches podem ter uma tecnologia chamada de VLAN (Virtual LAN, ou Redes Locais virtuais). Com VLANs, ele poderia resolver alguns problemas, como o trfego excessivo

entre subnets e o aumento da segurana em algumas setores da empresa. Navegando no Google ele descobre inclusive que possvel utilizar uma mquina rodando Linux e evitar a compra de um roteador ou de um switch excessivamente caro. O problema que este tal Linux no um sistema operacional muito fcil de usar e, apesar de ele j ter instalado alguns "tipos de Linux", em geral ele no sabe muito bem o que fazer depois do login no KDE ou Gnome. Pobre administrador!

Histria conhecida? Sim, pode acreditar. um processo evolutivo natural. Note, entretanto, que a histria parou na necessidade de VLANs ou roteadores. Nos captulos seguintes desta novela voc veria roteadores, interligaes entre matrizes e filiais, domnio prprio, servidores de email e DNS, VPNs e por a vai. O objetivo deste artigo mostrar como o Linux pode ser usado em uma configurao com VLANs, assumindo o papel de roteador e permitindo um melhor controle das redes locais. O uso de VLANs algo relativamente comum hoje em dia, sendo esta caracterstica suportada por vrios switches existentes no mercado. Entretanto, o seu uso associado a mquinas Linux ainda no muito difundido e merece ser explicado em detalhes.

Porque usar VLANs? Existem vrias boas razes para se usar VLANs:

Ganho em performance. Com o emprego de VLANs, o domnio de broadcast fica reduzido, sendo repassado somente dentro da VLAN onde foi gerado e evitando trfego desnecessrio. Aumento na segurana. Atravs das VLANs pode-se fazer uma separao j no nvel de enlace, dificultando o acesso para possveis invasores que no fazem parte da LAN virtual. Alm disso, somente o trfego que se deseja rotear repassado entre VLANs. Mas fique alerta: os equipamentos utilizados podem conter falhas na implementao de VLANs e permitir algum tipo de repasse de dados. Gerao de grupos virtuais de trabalho. Grupos afins podem estar virtualmente interligados atravs de VLANs, mesmo quando no esto fisicamente interconectados na mesma sub-rede fsica, comunicando-se mais rapidamente e com mais segurana, sem gerar trfego desnecessrio para outros grupos. Administrao facilitada. O processo de reconfigurao com VLANs bastante facilitado, isto , a adio de mquinas ou sub-redes a uma VLAN e feito de forma lgica, sem que sejam necessrias mudanas fsicas. Os switches em geral possuem interfaces de configurao baseadas em web, simples e intuitivas. Reduo de custos. Alm da reduo do custo de administrao, o emprego de VLANs pode evitar a aquisio de roteadores, caso seja usado um switch com suporte a roteamento entre VLANs (comumente conhecido como switch camada

3). Uma outra opo empregar uma mquina mquina Linux com suporte a VLANs, agindo como roteador da rede.

Aprendendo mais sobre VLANs: o protocolo IEEE 802.1Q Um conceito fundamental para a utilizao de VLANs a introduo de quadros rotulados (tagged frames, em ingls). Os quadros so as unidades de informao compartilhadas no nvel de enlace, isto , o que efetivamente a sua placa de rede ir colocar no barramento. O quadro ir sofrer uma alterao como descrita na Figura 1, onde a identificao da VLAN adicionada ao quadro ethernet. Isto torna o quadro incompatvel com os padres antigos, requerendo equipamentos e sistemas operacionais com capacidade de lidar com VLANs. atravs destes rtulos (tags, em ingls) que possvel identificar a que VLANs um determinado quadro pertence. As VLANs so padronizadas atravs do protocolo IEEE 802.1Q [1], que prev quadros especiais para ethernet, token ring e FDDI.

Figura1: Um quadro tradicional, em uma viso simplificada (a) e um quadro com o rtulo da VLAN (b) Os quadros enviados pelas estaes em geral no possuem nenhum tipo de suporte a VLANs e so rotulados ao passarem por switches com uma configurao de VLAN ativa. Isto ir requerer um processamento do quadro, com a incluso do tag, reclculo do FCS (Frame Check Sequence, um CRC de 32 bits situado ao final do quadro ethernet, usado para verificao da integridade do quadro) e do campo de preenchimento (padding, bytes adicionados para que o tamanho mnimo do quadro ethernet seja obedecido). O procedimento inverso ter que ser feito ao se entregar um quadro para uma estao destino que no capaz de entender o protocolo 802.1Q. Na Figura 2 pode-se ver esta operaes de incluso e remoo de rtulos, representados em vermelho.

Figura2: Incluso e remoo de rtulos nos quadros ethernet. O processo de incluso do tag ir depender do tipo de equipamento que se possui, sendo que nem todos possuem os mesmos mtodos. De acordo com a complexidade do equipamento e da camada do modelo OSI/ISO na qual ele opera, mtodos diferentes podem ser usados. Entre os mtodos mais comuns, tem-se:

Baseado em portas (camada 1). Neste caso, a configurao feita associando-se

portas do seu equipamento de rede com nmeros de VLANs, denominados VLAN IDs. Assim todo trfego que chegar por estas portas ser rotulado de acordo com o VLAN ID configurado. Todo trfego com o mesmo nmero de VLAN ID passar ento a fazer parte da mesma sub-rede lgica, no importando de onde estejam vindo. Esta configurao muito comum em switches, onde as estaes que no usam quadros com rtulos so conectadas. O switch ir adicionar o rtulo ao receber um quadro da estao e remover ao devolver. Este mtodo ir requerer uma reconfigurao do switch caso a estao seja levada para outro lugar.

Baseado em MACs (camada 2). Basicamente feita uma tabela onde se associa endereos MACs a endereos de VLAN. O MAC (Media Access Control) o endereo de enlace da placa de rede, tambm chamado de endereo de hardware, que pode ser obtido atravs do comando ifconfig. Obviamente, este mtodo pode ser bastante enfadonho quando o nmero de endereos for grande e requer bastante configurao manual.

Baseado em subnets (camada 3). Requer um equipamento que opere tambm na camada 3, de forma que uma tabela tabela de endereos de VLAN ID versus endereos de sub-redes possa ser especificada. So equipamentos mais caros e fora do escopo deste artigo.

Tipos menos usuais mas bastante interessantes e previstos na norma 802.1Q so VLANs definidas por protocolos de aplicao (por exemplo, o trfego de email poderia ser feito em uma VLAN enquanto o de FTP em outra), endereos de multicasting e tipos de protocolos presente no quadro Ethernet (IP e IPX poderiam estar em VLANs diferentes, j que isto pode ser previsto diretamente atravs do quadro Ethernet, via consulta ao campo Protocol Type. Outro conceito presente no jargo de VLANs o de tronco (trunk). Um tronco uma conexo fsica entre dois equipamentos que possuem implementao de VLANs. Neste caso, podem ser trocados quadros de diversas VLANs entre eles. Por exemplo, suponha um switch e um roteador interligados, ambos com suporte a VLANs. Os quadros trocados entres eles precisam levam consigo a informao de VLAN de forma que o roteador possa executar o roteamento adequadamente. Geralmente cada VLAN definida no roteador e associada com um endereo de sub-rede, facilitando o trabalho de construo de rotas e gerao de regras de firewall. interessante que as conexes do tipo tronco possuam um banda passante (thoughput) maior do que as outras portas, j que o trfego por ela ser provavelmente maior. O protocolo tambm define o conceito de Links de Acesso (Access Links) como o segmento que multiplexa um ou mais dispositivos que no possuem VLANs numa porta de um equipamento com VLANs habilitadas. Desta forma, atravs deste equipamento (geralmente uma bridge ou switch) possvel agregar a informao de VLAN aos quadros. Na Figura 3 so ilustradas estas situaes. Suponha que no switch com VLAN as duas primeiras portas estejam associadas s VLANs A e B, respectivamente, e que no roteador exista uma interface de rede virtual associadas s subnets A e B. Atravs das portas do switch com VLAN, todo o trfego proveniente das subnets rotulado e o

domnio de broadcast se torna limitado, no sendo repassado entre as sub-redes. Este trfego rotulado chega at o roteador atravs de um link tronco, capaz de levar diferentes tipos de VLANs. Finalmente, no roteador, as aes de roteamento e firewall so tomadas.

Figura 3: Links de acesso so empregado para que o trfego possa ser rotulado. Configurao do Switch O primeiro passo configurar adequadamente o switch. Isto ir depender do equipamento que se possui, j que no existe uma padronizao de configurao. O exemplo de configurao apresentado aqui ser genrico, de forma que possa ser traduzido em configuraes especficas de um determinado fabricante. Lembre-se de consultar o manual do equipamento em caso de dvida. Observe na Figura 8 que necessrio apenas um switch capaz de gerenciar VLANs. Ou outros equipamentos podem ser comuns e encarados como links de acesso.

Figura 5: Configurao de VLANs baseada em portas Foi usada uma configurao baseada em portas (Figura 5). As portas 3 e 4 foram associadas VLAN ID 10, a 5 e 6 VLAN ID 20 e a 7 e 8 VLAN ID 30. Note que estas portas tambm foram marcadas como no rotuladas, isto , untagged. Isto significa que elas esto ligadas a equipamentos que usam quadros ethernet normais. Assim, todo trfego que se originar delas deve receber o TAG da VLAN ao entrar no switch e todo quadro que for direcionado para elas deve ter o TAG de VLAN removido. A porta 1 foi configurada como uma porta rotulada (tagged). Note que est porta pertence a todas as outras VLANs definidas. Por ser rotulada, todos os quadros ethernet que saem ou entram pela porta 1 possuem o o TAG de VLAN. Nesta porta dever estar ligado o roteador, rodando um kernel Linux com suporte a VLAN. Como todos os quadros so rotulados, possvel distinguir o trfego proveniente de cada VLAN.

Para no se ter um problema de performance caso o trfego seja muito alto, interessante usar um switch que possua pelo menos uma porta de um gigabit, associando o trfego da porta 1 a ela e colocando no servidor uma placa de um gigabit. Use placas comuns caso o switch no possua portas de um gigabit.

Configurao do Kernel Kernels da linha 2.4 ou 2.6 j possuem suporte VLANs. Veja se este suporte est compilado no kernel, atravs do comando insmod 8021q. Se for necessrio recompilar o kernel, selecione as opes:
[M] Network options->802.1Q VLAN support <*> Network options->packet socket <*> Network options->socket filtering

As opes packet socket e socket filtering so necessrias caso se deseje rodar um servidor DHCP ou aplicativos como tcpdump. Devido s mudanas no quadro ethernet, estes programas no iro mais funcionar sem estas opes habilitadas, j que esperam um quadro ethernet tradicional. Se preferir, compile o suporte a VLAN diretamente no kernel e no como mdulo. Recompile e instale o novo kernel. Se compilou como mdulo, carregue o mdulo. Voc dever ver uma mensagem parecida com a seguinte, indicando o sucesso: # insmod 8021q # dmesg | grep 802 802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com> Ser necessrio instalar tambm os programas de modo de usurio para uso com VLANs. No Debian, este pacote se chama vlan e pode ser instalado com "apt-get install vlan". Ou ento, baixe os fontes do programa [2], compile e instale.

Criando VLANs A criao de VLANs em Linux passa pelo comando vconfig. Basicamente ele ir criar novas interfaces de redes virtuais partir de uma interface de rede real, atribuindo nmeros de VLANs diferentes para cada rede criada. A sintaxe bsica do comando para adicionar e remover interfaces de redes virtuais associadas a VLANs est a seguir: # vconfig add interface VLANID # vconfig rem interface Para simplificar, o script em bash vlan.sh, dado a seguir, pode ser usado para automatizar todo o processo. Considere a interface eth0 como sendo a da rede interna, com IP 10.0.1.1 e a interface eth1 como sendo a da rede externa, com IP 10.0.2.1. O gateway default ser considerado como 10.0.2.2. Todo o processo de configurao das interfaces e VLANs est descrito no arquivo a seguir: #!/bin/bash # Sintaxe: vlan.sh [start|stop]

# barros@smar.com.br VCONFIG=/sbin/vconfig case "$1" in start) echo "Criando vlans..." ifconfig lo 127.0.0.1 netmask 255.0.0.0 up ifconfig eth0 10.0.1.1 netmask 255.255.255.0 up ifconfig eth1 10.0.2.1 netmask 255.255.255.0 up $VCONFIG add eth0 10 ifconfig eth0.10 10.0.10.1 netmask 255.255.255.0 up $VCONFIG set_flag eth0.10 1 $VCONFIG add eth0 20 ifconfig eth0.20 10.0.20.1 netmask 255.255.255.0 up $VCONFIG set_flag eth0.20 1 $VCONFIG add eth0 30 ifconfig eth0.30 10.0.30.1 netmask 255.255.255.0 up $VCONFIG set_flag eth0.30 1 route add default gw 10.0.2.2 echo 1 > /proc/sys/net/ipv4/ip_forward ;; stop) echo "Removendo vlans ..." echo 0 > /proc/sys/net/ipv4/ip_forward route del default gw 10.0.2.2 ifconfig eth1 down $VCONFIG rem eth0.10 $VCONFIG rem eth0.20 $VCONFIG rem eth0.30 ifconfig eth0 down ifconfig lo down ;; *) echo "vlan.sh [stop|start]" exit 1 ;; esac

exit 0 Aps inicializar a configurao de VLANs com "./vlan.sh start", o comando ifconfig dever mostrar as interfaces a seguir (a sada do comando foi simplificada):
eth0 eth1 eth0.10 eth0.20 eth0.30 lo Link encap:Ethernet inet addr:10.0.1.1 Link encap:UNSPEC inet addr:10.0.2.1 Link encap:Ethernet inet addr:10.0.10.1 Link encap:Ethernet inet addr:10.0.20.1 Link encap:Ethernet inet addr:10.0.30.1 HWaddr 00:11:43:3E:15:D0 Bcast:10.255.255.255 Mask:255.255.255.0 HWaddr 00:11:43:3E:F2:E1 Bcast:10.255.255.255 Mask:255.255.255.0 HWaddr 00:11:43:3E:15:D0 Bcast:10.255.255.255 Mask:255.255.255.0 HWaddr 00:11:43:3E:15:D0 Bcast:10.255.255.255 Mask:255.255.255.0 HWaddr 00:11:43:3E:15:D0 Bcast:10.255.255.255 Mask:255.255.255.0

Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0

Note que a interface eth0 e suas derivadas, eth0.10, eth0.20 e eth0.30 possuem o mesmo endereo de hardware. Perceba tambm que o roteamento entre placas foi ativado, atravs da opo do kernel IP Forward: # echo 1 > /proc/sys/net/ipv4/ip_forward As rotas existentes para esta configurao so (sada do comando route -n):
Kernel IP routing table Destination Gateway 10.0.1.0 0.0.0.0 10.0.2.0 0.0.0.0 10.0.10.0 0.0.0.0 10.0.20.0 0.0.0.0 10.0.30.0 0.0.0.0 0.0.0.0 10.0.2.2 Genmask 255.255.255.0 255.255.255.0 255.255.255.0 255.255.255.0 255.255.255.0 0.0.0.0 Flags U U U U U UG Metric 0 0 0 0 0 0 Ref 0 0 0 0 0 0 Use 0 0 0 0 0 0 Iface eth0 eth1 eth0.10 eth0.20 eth0.30 eth1

DHCP e VLANs Para um exemplo realmente completo, seria bem vindo habilitar a atribuio automtica de IPs para as estaes via DHCP em todas as VLANs. Isto pode ser feito sem grandes problemas, uma vez que as interfaces de rede j esto adequadamente configuradas. Instale um DHCP server (apt-get install dhcp3-server, no Debian), e use a seguinte configurao mnima para o arquivo /etc/dhcp3/dhcpd.conf (personalize de acordo com as suas necessidades): option domain-name "smar.com.br"; option domain-name-servers ns1.smar.br, ns2.smar.com.br; default-lease-time 600; max-lease-time 7200; authoritative; option ip-forwarding on; subnet 10.0.10.0 netmask 255.255.255.0 { range 10.0.10.10 10.0.10.254; option broadcast-address 10.0.10.255; option routers 10.0.10.1; }

subnet 10.0.20.0 netmask 255.255.255.0 { range 10.0.20.10 10.0.20.254; option broadcast-address 10.0.20.255; option routers 10.0.20.1; } subnet 10.0.30.0 netmask 255.255.255.0 { range 10.0.30.10 10.0.30.254; option broadcast-address 10.0.30.255; option routers 10.0.30.1; } As interfaces que tero o DHCP habilitado so especificadas pelo arquivo /etc/default/dhcp3-server, cujo contedo est a seguir (este o padro para Debian, modifique caso seja diferente na sua distribuio): INTERFACES="eth0.10 eth0.20 eth0.30" Pronto, agora o servidor/roteador est configurado e fornecendo IPs automaticamente.

Concluso A implementao de VLANs ainda um tpico pouco explorado em Linux, mas com um potencial enorme de utilizao. Uma melhoria que pode ser adicionada a associao do roteador com regras de firewall, agregando segurana e controle no acesso s sub-redes. Entretanto, dependendo da natureza da sua rede e do volume de dados, um roteador mais potente e com arquitetura dedicada pode ser necessrio.

S-ar putea să vă placă și