Você está na página 1de 11

VLAN - Linux A Bordo http://www.linuxabordo.com.br/wiki/index.php?

title=VLAN
1 de 11 15/08/2007 10:51
Pesquisar nmlkj Web nmlkji Linuxabordo
VLAN
From Linux A Bordo
Contedo
1 Criando Redes Locais Virtuais (VLANs) com Linux
2 Senta que l vem a histria
3 Porque usar VLANs?
4 Aprendendo mais sobre VLANs: o protocolo IEEE 802.1Q
5 Configurao do Switch
6 Configurao do Kernel
7 Criando VLANs
8 DHCP e VLANs
9 Concluso
10 Referncias
Criando Redes Locais Virtuais (VLANs) com Linux
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.
Senta que l vem a histria
Tudo para redes Sem-Fio
Solues Wireless em 2.4, 5.8GHz e 900MHz.
Treinamentos e Projetos.
www.americanexplorer.com.br
Cabeamento Estruturado SP
DataCenter, Telefonia, Alocao Certificao
Rede/Telefonia
www.gvp.com.br
Fornitura Piracicaba
Mquinas e Ferramentas, Embalagens,
Acessrios p/ Relojoaria,Joalheria.
www.forniturapiracicaba.com.br
VLAN - Linux A Bordo http://www.linuxabordo.com.br/wiki/index.php?title=VLAN
2 de 11 15/08/2007 10:51
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.
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
VLAN - Linux A Bordo http://www.linuxabordo.com.br/wiki/index.php?title=VLAN
3 de 11 15/08/2007 10:51
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.
VLAN - Linux A Bordo http://www.linuxabordo.com.br/wiki/index.php?title=VLAN
4 de 11 15/08/2007 10:51
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
VLAN - Linux A Bordo http://www.linuxabordo.com.br/wiki/index.php?title=VLAN
5 de 11 15/08/2007 10:51
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.
VLAN - Linux A Bordo http://www.linuxabordo.com.br/wiki/index.php?title=VLAN
6 de 11 15/08/2007 10:51
Figura 4: 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
VLAN - Linux A Bordo http://www.linuxabordo.com.br/wiki/index.php?title=VLAN
7 de 11 15/08/2007 10:51
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:
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:
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:
# insmod 8021q
# dmesg | grep 802
802.1Q VLAN Support v1.8 Ben Greear <greearb--arroba--candelatech--dot--com>
# vconfig add interface VLANID
# vconfig rem interface
VLAN - Linux A Bordo http://www.linuxabordo.com.br/wiki/index.php?title=VLAN
8 de 11 15/08/2007 10:51
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):
#!/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
VLAN - Linux A Bordo http://www.linuxabordo.com.br/wiki/index.php?title=VLAN
9 de 11 15/08/2007 10:51
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:
As rotas existentes para esta configurao so (sada do comando route -n):
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):
eth0 Link encap: Ethernet HWaddr 00:11:43:3E:15:D0
inet addr:10.0.1.1 Bcast:10.255.255.255 Mask:255.255.255.0
eth1 Link encap:UNSPEC HWaddr 00:11:43:3E:F2:E1
inet addr:10.0.2.1 Bcast:10.255.255.255 Mask:255.255.255.0
eth0.10 Link encap:Ethernet HWaddr 00:11:43:3E:15:D0
inet addr:10.0.10.1 Bcast:10.255.255.255 Mask:255.255.255.0
eth0.20 Link encap:Ethernet HWaddr 00:11:43:3E:15:D0
inet addr:10.0.20.1 Bcast:10.255.255.255 Mask:255.255.255.0
eth0.30 Link encap:Ethernet HWaddr 00:11:43:3E:15:D0
inet addr:10.0.30.1 Bcast:10.255.255.255 Mask:255.255.255.0
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
# echo 1 > /proc/sys/net/ipv4/ip_forward
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
10.0.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0.10
10.0.20.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0.20
10.0.30.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0.30
0.0.0.0 10.0.2.2 0.0.0.0 UG 0 0 0 eth1
VLAN - Linux A Bordo http://www.linuxabordo.com.br/wiki/index.php?title=VLAN
10 de 11 15/08/2007 10:51
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):
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.
Referncias
[1] IEEE 802.1Q. http://www.ieee802.org/1/pages/802.1Q.html ltimo acesso em 02 de julho de 2005.
[2] 802.1Q VLAN implementation for Linux. http://www.candelatech.com/~greear/vlan.html ltimo acesso em 02 de julho de 2005.
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;
}
INTERFACES="eth0.10 eth0.20 eth0.30"
VLAN - Linux A Bordo http://www.linuxabordo.com.br/wiki/index.php?title=VLAN
11 de 11 15/08/2007 10:51
Retirado de "http://www.linuxabordo.com.br/wiki/index.php?title=VLAN"
Est pgina foi modificada pela ltima vez em 00:54, 28 Julho 2007.
Esta pgina foi acessada 133 vezes.
Poltica de privacidade
Sobre a Linux A Bordo
Disclaimers
linux embarcado embedded marcelo barros almeida alan carvalho sistemas module embedded embarcado gnu toolchain arm avr32 x86 pc intel amd pc 104 kernel uclibc glibc cross compiling ipaq linuxbios busybox
ngw100 easybox phantom system backup imaging vlan vlanconfig

Você também pode gostar