Anda di halaman 1dari 9

c 


     
 


O objetivo deste artigo é mostrar como o Linux pode ser usado em uma configuração
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
característica suportada por vários switches existentes no mercado. Entretanto, o seu uso
associado a máquinas Linux ainda não é muito difundido e merece ser explicado em
detalhes.

   


Pode parecer estranho, mas o ciclo de evolução de uma rede local, principalmente de
pequenas e médias empresas, passa por caminhos muito parecidos, crescendo à medida
que os problemas vão aparecendo e se adaptando às novas necessidades e demandas.
Uma história hipotética poderia ser a que vem a seguir:

^p No início só existiam computadores isolados e era bom. Disquetes e CDROMs


são utilizados para compartilhar dados. Poucos vírus aparecem. O acesso à
Internet é discado, quando existe, e a briga pelo ramal é ferrenha !
^p A situação se torna insustentável e alguém tem a idéia de interligar dois micros
via cabo de rede, uma vez que eles já têm a placa de rede "on-board". Algumas
horas depois todos os problemas de interligação são superados e a comunicação
ponto-a-ponto começa. Um sucesso!
^p Mais pessoas querem entrar para a festa e resolve-se então comprar um hub.
Afinal, jogar Quake em rede é muito mais divertido! Alguns dias de implantação
e a rede local nasce. As máquinas não tem funções específicas e algumas delas
são usadas para compartilhar informações.
^p O infeliz que usa a máquina onde estão as informações compartilhadas começa a
reclamar. Ele não pode dar nem um boot na máquina sem que alguém ligue
imediatamente depois que ele clicou em "reiniciar". Eventualmente ele esquece
e a desliga na hora de ir embora, sendo amaldiçoado através 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 informações enquanto o problema
era solucionado. E a impressora compartilhada então? Ninguém suporta mais,
principalmente a pessoa que fica no micro onde ela está ligada. "Precisamos de
máquinas dedicadas", dizem todos em coro. "Precisamos de um acesso melhor à
Internet", lamentam outros. "Este hub está uma droga", pragueja mais um.
^p Não tem mais volta, a empresa está crescendo. Alguns servidores aparecem. Um
switch comum é comprado para melhorar o desempenho da rede. Decidem
contratar um serviço de acesso à Internet. A pessoa que mais "manjava de
informática" assume a responsabilidade de cuidar da rede, obviamente sem que
nenhuma das suas atribuições antigas fossem removidas.
^p A expansão continua: mais máquinas, 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 vocês contratam alguém, não tem mais
condições, não consigo mais trabalhar". E assim nasce o cargo de administrador
de redes da empresa.
^p Agora livre das amarras da sua antiga função e com algumas promessas de
treinamento, o novo administrador começa 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 tráfego excessivo entre
subnets e o aumento da segurança em algumas setores da empresa. Navegando no
Google ele descobre inclusive que é possível utilizar uma máquina rodando Linux e
evitar a compra de um roteador ou de um switch excessivamente caro. O problema é
que este tal Linux não é um sistema operacional muito fácil de usar e, apesar de ele já
ter instalado alguns "tipos de Linux", em geral ele não sabe muito bem o que fazer
depois do login no KDE ou Gnome. Pobre administrador!

História conhecida? Sim, pode acreditar. é um processo evolutivo natural. Note,


entretanto, que a história parou na necessidade de VLANs ou roteadores. Nos capítulos
seguintes desta novela você veria roteadores, interligações entre matrizes e filiais,
domínio próprio, servidores de email e DNS, VPNs e por aí vai.

h   
 
Existem várias boas razões para se usar VLANs:

^p Ganho em performance. Com o emprego de VLANs, o domínio de broadcast


fica reduzido, sendo repassado somente dentro da VLAN onde foi gerado e
evitando tráfego desnecessário.
^p Aumento na segurança. Através das VLANs pode-se fazer uma separação já no
nível de enlace, dificultando o acesso para possíveis invasores que não fazem
parte da LAN virtual. Além disso, somente o tráfego que se deseja rotear é
repassado entre VLANs. Mas fique alerta: os equipamentos utilizados podem
conter falhas na implementação de VLANs e permitir algum tipo de repasse de
dados.
^p Geração de grupos virtuais de trabalho. Grupos afins podem estar virtualmente
interligados através de VLANs, mesmo quando não estão fisicamente
interconectados na mesma sub-rede física, comunicando-se mais rapidamente e
com mais segurança, sem gerar tráfego desnecessário para outros grupos.
^p Administração facilitada. O processo de reconfiguração com VLANs é bastante
facilitado, isto é, a adição de máquinas ou sub-redes a uma VLAN e feito de
forma lógica, sem que sejam necessárias mudanças físicas. Os switches em geral
possuem interfaces de configuração baseadas em web, simples e intuitivas.
^p Redução de custos. Além da redução do custo de administração, o emprego de
VLANs pode evitar a aquisição de roteadores, caso seja usado um switch com
suporte a roteamento entre VLANs (comumente conhecido como switch camada
3). Uma outra opção é empregar uma máquina máquina Linux com suporte a
VLANs, agindo como roteador da rede.
    
 
    !!!"#$%&'
Um conceito fundamental para a utilização de VLANs é a introdução de quadros
rotulados (tagged frames, em inglês). Os quadros são as unidades de informação
compartilhadas no nível de enlace, isto é, o que efetivamente a sua placa de rede irá
colocar no barramento. O quadro irá sofrer uma alteração como descrita na Figura 1,
onde a identificação da VLAN é adicionada ao quadro ethernet. Isto torna o quadro
incompatível com os padrões antigos, requerendo equipamentos e sistemas operacionais
com capacidade de lidar com VLANs. é através destes rótulos (tags, em inglês) que é
possível identificar a que VLANs um determinado quadro pertence. As VLANs são
padronizadas através do protocolo IEEE 802.1Q [1], que prevê quadros especiais para
ethernet, token ring e FDDI.

Imagem:vlan_linux_1.png

X  
              
    
   

Os quadros enviados pelas estações em geral não possuem nenhum tipo de suporte a
VLANs e são rotulados ao passarem por switches com uma configuração de VLAN
ativa. Isto irá requerer um processamento do quadro, com a inclusão do tag, recálculo
do FCS (Frame Check Sequence, um CRC de 32 bits situado ao final do quadro
ethernet, usado para verificação da integridade do quadro) e do campo de
preenchimento (padding, bytes adicionados para que o tamanho mínimo do quadro
ethernet seja obedecido). O procedimento inverso terá que ser feito ao se entregar um
quadro para uma estação destino que não é capaz de entender o protocolo 802.1Q. Na
Figura 2 pode-se ver esta operações de inclusão e remoção de rótulos, representados em
vermelho.

Imagem:vlan_linux_2.png

X  !  "     


   # $

O processo de inclusão do tag irá depender do tipo de equipamento que se possui, sendo
que nem todos possuem os mesmos métodos. De acordo com a complexidade do
equipamento e da camada do modelo OSI/ISO na qual ele opera, métodos diferentes
podem ser usados. Entre os métodos mais comuns, tem-se:

^p âaseado em portas (camada 1). Neste caso, a configuração é feita associando-se


portas do seu equipamento de rede com números de VLANs, denominados
VLAN IDs. Assim todo tráfego que chegar por estas portas será rotulado de
acordo com o VLAN ID configurado. Todo tráfego com o mesmo número de
VLAN ID passará então a fazer parte da mesma sub-rede lógica, não importando
de onde estejam vindo. Esta configuração é muito comum em switches, onde as
estações que não usam quadros com rótulos são conectadas. O switch irá
adicionar o rótulo ao receber um quadro da estação e remover ao devolver. Este
método irá requerer uma reconfiguração do switch caso a estação seja levada
para outro lugar.
^p âaseado em MACs (camada 2). âasicamente é feita uma tabela onde se associa
endereços MACs a endereços de VLAN. O MAC (Media Access Control) é o
endereço de enlace da placa de rede, também chamado de endereço de hardware,
que pode ser obtido através do comando ifconfig.

Obviamente, este método pode ser bastante enfadonho quando o número de endereços
for grande e requer bastante configuração manual.

^p âaseado em subnets (camada 3). Requer um equipamento que opere também na


camada 3, de forma que uma tabela tabela de endereços de VLAN ID versus
endereços de sub-redes possa ser especificada. São equipamentos mais caros e
fora do escopo deste artigo.

Tipos menos usuais mas bastante interessantes e previstos na norma 802.1Q são VLANs
definidas por protocolos de aplicação (por exemplo, o tráfego de email poderia ser feito
em uma VLAN enquanto o de FTP em outra), endereços 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 através do quadro Ethernet, via consulta ao
campo Protocol Type.

Outro conceito presente no jargão de VLANs é o de tronco (trunk). Um tronco é uma


conexão física entre dois equipamentos que possuem implementação 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 informação de VLAN de forma que o
roteador possa executar o roteamento adequadamente. Geralmente cada VLAN é
definida no roteador e associada com um endereço de sub-rede, facilitando o trabalho de
construção de rotas e geração de regras de firewall. é interessante que as conexões do
tipo tronco possuam um banda passante (thoughput) maior do que as outras portas, já
que o tráfego por ela será provavelmente maior.

O protocolo também define o conceito de Links de Acesso (Access Links) como o


segmento que multiplexa um ou mais dispositivos que não possuem VLANs numa porta
de um equipamento com VLANs habilitadas. Desta forma, através deste equipamento
(geralmente uma bridge ou switch) é possível agregar a informação de VLAN aos
quadros. Na Figura 3 são ilustradas estas situações. Suponha que no switch com VLAN
as duas primeiras portas estejam associadas às VLANs A e â, respectivamente, e que no
roteador exista uma interface de rede virtual associadas às subnets A e â. Através das
portas do switch com VLAN, todo o tráfego proveniente das subnets é rotulado e o
domínio de broadcast se torna limitado, não sendo repassado entre as sub-redes. Este
tráfego rotulado chega até o roteador através de um link tronco, capaz de levar
diferentes tipos de VLANs. Finalmente, no roteador, as ações de roteamento e firewall
são tomadas.

Imagem:vlan_linux_3.png

X % &     


  '    $
c() *+, 
O primeiro passo é configurar adequadamente o switch. Isto irá depender do
equipamento que se possui, já que não existe uma padronização de configuração. O
exemplo de configuração apresentado aqui será genérico, de forma que possa ser
traduzido em configurações específicas de um determinado fabricante. Lembre-se de
consultar o manual do equipamento em caso de dúvida. Observe na Figura 8 que é
necessário apenas um switch capaz de gerenciar VLANs. Ou outros equipamentos
podem ser comuns e encarados como links de acesso.

Imagem:vlan_linux_4.png

X ()  "      

Foi usada uma configuração 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 também foram marcadas como não rotuladas, isto é, untagged. Isto significa
que elas estão ligadas a equipamentos que usam quadros ethernet normais. Assim, todo
tráfego 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 são
rotulados, é possível distinguir o tráfego proveniente de cada VLAN.

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

c() *+- 


Kernels da linha 2.4 ou 2.6 já possuem suporte à VLANs. Veja se este suporte está
compilado no kernel, através do comando insmod 8021q. Se for necessário recompilar o
kernel, selecione as opções:

o  
   

 
 
  
    
 
      

As opções packet socket e socket filtering são necessárias caso se deseje rodar um
servidor DHCP ou aplicativos como tcpdump. Devido às mudanças no quadro ethernet,
estes programas não irão mais funcionar sem estas opções habilitadas, já que esperam
um quadro ethernet tradicional. Se preferir, compile o suporte a VLAN diretamente no
kernel e não como módulo.

Recompile e instale o novo kernel. Se compilou como módulo, carregue o módulo.


Você deverá ver uma mensagem parecida com a seguinte, indicando o sucesso:
ö !"# 
ö"! $ 
 
%

&' ( ) ) "* 


"!

Será necessário instalar também os programas de modo de usuário para uso com
VLANs. No Debian, este pacote se chama vlan e pode ser instalado com  .)  
. Ou então, baixe os fontes do programa [2], compile e instale.

c 
 
A criação de VLANs em Linux passa pelo comando vconfig. âasicamente ele irá criar
novas interfaces de redes virtuais à partir de uma interface de rede real, atribuindo
números de VLANs diferentes para cada rede criada. A sintaxe básica 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 configuração das
interfaces e VLANs está descrito no arquivo a seguir:

ö ) ) * 
ö% -.&  *o $ 
 
ö) / !!) 

012+(3 ) &  

 454 
 6

*40  "& 4 

   7 ! 88

   * ! 888888

   * ! 888888


5012+(""* 
   * ! 888888

5012+( 9 * 

5012+(""* 
   * ! 888888

5012+(  9 * 

5012+(""*: 
   *:: ! 888888

5012+( 9 *: 

"""  
*
 ;  
&<
9" 

==
 
6

*4>!& "& 4 

*
 ;  
&<
9" 
""  

   *" 
5012+(!* 
5012+(!* 
5012+(!*: 
   *" 
   " 

==
6
*4&  *o 
$  4
- 
==
 

- 

Após inicializar a configuração de VLANs com %/%   , o comando ( ()


deverá mostrar as interfaces a seguir (a saída do comando foi simplificada):

*  
.?* @A""..<:.:?.8., 
 "".' .888888
 .888888 

*  
.B%C?0@A""..<:.:?.2.? 
 "".' .888888
 .888888 

*  
.?* @A""..<:.:?.8 .,
 "".' .888888
 .888888 

*  
.?* @A""..<:.:?.8., 
 "".' .888888
 .888888 

*:  
.?* @A""..<: .:?.8., 
 "".:' .888888
 .888888 

  
.
)  
"".7  .88 

Note que a interface eth0 e suas derivadas, eth0.10, eth0.20 e eth0.30 possuem o mesmo
endereço de hardware. Perceba também que o roteamento entre placas foi ativado,
através da opção do kernel IP Forward:

ö*
 ;  
&<
9" 

As rotas existentes para esta configuração são (saída do comando  .):

· +C ) 


,    (;( ! 2   >B + 
888888B* 
888888B* 
888888B * 
888888B* 
:888888B*: 
B(* 

Πch
 
Para um exemplo realmente completo, seria bem vindo habilitar a atribuição automática
de IPs para as estações via DHCP em todas as VLANs. Isto pode ser feito sem grandes
problemas, uma vez que as interfaces de rede já estão adequadamente configuradas.
Instale um DHCP server (apt-get install dhcp3-server, no Debian), e use a seguinte
configuração mínima para o arquivo /etc/dhcp3/dhcpd.conf (personalize de acordo com
as suas necessidades):


  "!  !4 !!)4= 

  "!  ! &   !)D  !!) =
"  !E= 
!-  !7= 
*  &= 

  
"  = 

)  ! 888888F 
 8<= 

  )"  "" 88= 

   = 
G

)  ! 888888F 
 8<= 

  )"  "" 88= 

   = 
G

) : ! 888888F 
 ::8<= 

  )"  "" :88= 

    := 
G

As interfaces que terão o DHCP habilitado são especificadas pelo arquivo


/etc/default/dhcp3-server, cujo conteúdo está a seguir (este é o padrão para Debian,
modifique caso seja diferente na sua distribuição):

+H?>20?%34*** :4

Pronto, agora o servidor/roteador está configurado e fornecendo IPs automaticamente.

c  +
A implementação de VLANs é ainda um tópico pouco explorado em Linux, mas com
um potencial enorme de utilização. Uma melhoria que pode ser adicionada é a
associação do roteador com regras de firewall, agregando segurança 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 necessário.

Anda mungkin juga menyukai