Criando Redes Locais Virtuais (VLANs) com Linux

Este artigo explica os fundamentos do protocolo 802.3q (VLAN), suas vantagens e ensina como executar a configuração de VLAN no Linux. Também apresenta dicas para a configuração dos switches envolvidos e servidores DHCP.

[ Hits: 342.519 ]

Por: Marcelo Barros de Almeida em 29/06/2006


Configuração do Switch



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.


Figura 5: Configuração de VLANs baseada em portas

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.

Página anterior     Próxima página

Páginas do artigo
   1. Senta que lá vem a história ...
   2. Porque usar VLANs?
   3. Aprendendo mais sobre VLANs: o protocolo IEEE 802.1Q
   4. Configuração do Switch
   5. Configuração do Kernel
   6. Criando VLANs
   7. DHCP e VLANs
   8. Conclusão
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Ubuntu Lucid Lynx - Instalação mínima (mini-iso) de 13MB

Preparando o Debian Etch para programação Palm

Acentos corretos no console, PnUP, PnDown, Home End, etc..

Instalando e configurando o Java JDK no Slackware Linux

Aplicando o Layer7 no Fedora Core Linux 6

  
Comentários
[1] Comentário enviado por marcelobarros em 29/06/2006 - 13:44h

Onde se lê no início "802.3q (VLAN)", trocar por "802.1q (VLAN)". Ficou errado no resumo. Verifique também se as rotas default sobiram ou não. Se não subirem, acrescente manualmente com:

route add -net 10.0.1.0 netmask 255.255.255.0 dev eth0
route add -net 10.0.2.0 netmask 255.255.255.0 dev eth1
route add -net 10.0.10.0 netmask 255.255.255.0 dev eth0.10
route add -net 10.0.20.0 netmask 255.255.255.0 dev eth0.20
route add -net 10.0.30.0 netmask 255.255.255.0 dev eth0.30

[2] Comentário enviado por Tango em 29/06/2006 - 22:21h

Hahahaha! Ótimo artigo! Minha parte preferida foi a estorinha (historinha?) introdutória! =D

[3] Comentário enviado por chroot em 30/06/2006 - 15:01h

muito bom artigo
sempre trabalhei com vlans em BSD e em Linux
mas o material em Portugues era pobre..
agora o seu se torna o mais completo
parabens

[4] Comentário enviado por removido em 30/06/2006 - 15:07h

Ótimo artigo!

[5] Comentário enviado por alexandrecorrea em 01/07/2006 - 10:50h

parabéns pelo artigo.. muito bom !!!!!

[6] Comentário enviado por rpestana em 01/07/2006 - 17:12h

Parabens, muito util o seu artigo!Ajudo a esclarecer muitos pontos obscuros!!!
Tenho uma duvida, ha tempo estava querendo montar um lab para aprender vlan com linux, sua estoria inicial diz tudo. Existiriam observações a serem tomadas se fosse usado um DHCPRELAY no gatetway com VLAN com o mesmo apontado para um servidor DHCP na subrede acima?
Valeu!!!

[7] Comentário enviado por suhanko em 01/07/2006 - 20:53h

Fabuloso artigo, MArcelito! Serve até para os leigos no assunto (como eu, por exemplo :-)
Parabéns!

[8] Comentário enviado por eduardo.ramos em 07/07/2006 - 10:15h

legal, isso só nao funciona no slackware! pelo menos estou testando aqui e nada! a interface eth0.1010 não é reconhecida se alguém puder me dizer como fazer esta mágica acontecer pois acho meio difícil pois o dhcp não deve rodar em cima de interfaces com aliases.

Eduardo

[9] Comentário enviado por lacierdias em 22/08/2006 - 14:36h

Muito bom.... Pena que as confs de DHCP não funcionaram no Fedora.
Tem alguma dica???
Abraço

[10] Comentário enviado por marcelobarros em 23/08/2006 - 08:55h

No Debian eu so consegui fazer funcionar como dhcp3. O pacote mais antigo tambem nao deu certo.

[11] Comentário enviado por dailson em 06/09/2006 - 21:00h

Amigo. É um artigo excelente.
Meus parabéns

[12] Comentário enviado por edsonwrites em 21/11/2006 - 17:11h

Tem como fazer isso sem usar um switch especifico?
so com linux ?

[13] Comentário enviado por marcelobarros em 22/11/2006 - 09:03h

O switch precisa entender o quadro modificado da VLAN. O que tenho aqui considera o quadro como invalido quando vc nao especifica que a caracteristica de vlan na porta.

[14] Comentário enviado por marcelo_aba em 23/02/2007 - 17:35h

Qual a placa de rede q você utilizou para fazer a configuração?
Estou tentando instalar a placa DGE-530T D-Link 802.1q mas ta dando bronca no debian. Você tem alguma dica para q eu instala a mesma no debian?

[15] Comentário enviado por marcelobarros em 26/02/2007 - 07:36h

Eu usei uma placa da netgear, mas se o kernel suportar a placa que vc está usando, não deveria ter nenhum problema. Fiz um procura rápida e vi vários relatos de usuários empregando esta placa com sucesso sem mexer em nada. O site da DLINK mostra também que existem drivers pra Linux (http://www.dlink.com/products/support.asp?pid=284&sec=0#drivers). Recomendo que verifique se no kernel que está usando suporta esta placa ou então que experimente o driver do fabricante.

[16] Comentário enviado por jgama em 25/06/2007 - 23:56h

Grande Marcelobarros, muito bom seu artigo.

tenho uma dúvida o qual creio que vc sabera responder de cor.
já fiz todas as configurações mostrada no artigo, usando o Slackware 10.2.
Pergunto como que as estações irão saber qual IP pegar das sub-redes?
Estou usando dois mini switch aqui na minha rede doméstica, e gostaria de fazer este teste da vlan, é possivel?

No primeiro switch tem dois redes 192.168.1.0 e 192.168.11.0
No segundo swithc tem a rede 192.168.12.0

O dhcp fiz conforme sua esplanação, só troquei os ip's os quais mencionado acima.

Abraço
Valdir



[17] Comentário enviado por seuluis em 24/03/2008 - 10:15h

Para utilizar o linux na criação e administração de uma vlan pequena para 3 redes e umas 70 maquinas eu vou precisar de um rotiador ou switch ou so com uma maquina com linux eu consigo?

[18] Comentário enviado por marcelobarros em 27/03/2008 - 15:20h

um switch com vlan e mais um pc pra fazer as vezes de roteador com vlan irá resolver, ou então um switch com vlan e um roteador mesmo, com vlan tambem.

[19] Comentário enviado por lipecys em 03/04/2008 - 16:15h

Muito bom o Artigo.
Parabéns.

[20] Comentário enviado por cioban em 05/06/2008 - 15:42h

Marcelo,
Ótimo artigo, ótima didática, parabéns.

Estou configurando uma vlan aqui na empresa e este artigo me esclereceu muita coisa.

Abraço,
Sérgio Cioban Filho

[21] Comentário enviado por rmedeiros em 14/07/2008 - 10:04h

Marcelo ótimo artigo,

Mas ainda tenho algumas duvidas, as 3 vlans criadas em 1 interface eth0 isso não gera trafego, onde entra servidores que conversaram com as vlans?

Ricardo

[22] Comentário enviado por marcelobarros em 16/07/2008 - 09:46h

Ricardo:
Não sei se entendi a sua pergunta, Ricardo. Com o suporte a VLANs direto no Linux você não precisa de nenhum hardware adicional a não ser o switch com suporte a VLANs. As redes virtuais serão emuladas no Linux, como subnets diferentes. Aí, dentro da máquina Linux você habilita o roteamento entre placas e pode colocar servidores do que precisar. No fundo, é simples assim, com tudo passando por uma interface só. Se precisar de mais exclarecimento, detalhe melhor a sua pergunta. Você me encontra no gmail.com, com o username marcelobarrosalmeida.

Sérgio/lipecys:
Obrigado pelos elogios !

[23] Comentário enviado por fabiomattes2011 em 08/10/2008 - 09:08h

Redes wireless também aceitam redes virtuais?

[24] Comentário enviado por marcelobarros em 08/10/2008 - 11:23h

gelheadbanger

Nunca testei com WLAN.

[25] Comentário enviado por lecb em 06/04/2009 - 11:41h

Marcelo,

Tenho um servidor DHCP com cerca de 30 vlans, devidamente configuradas. Agora ocorre um problema que de tempos em tempos, as estações em determinadas vlans perdem a conexão com o servidor, sendo que tudo aparenta estar normal, tanto o servidor DHCP como o serviço em questão operam normalmente, inclusive as estações pertencentes a determinadas vlans.
É o caso até mesmo a rede principal ficar fora e todas as demais consegue acesso. Ao verificar o log tail -f /var/log/messages
mostra que está operando devidamente, mas faz-se necessário reiniciar o serviço para que as estações voltem a pegar o Ip.

Saberia me dizer que pode ser feito para corrigir tal problema?

[26] Comentário enviado por marcelobarros em 07/04/2009 - 08:36h

Infelizmente não. Você não desconfia dos seus switches ou outros ativos de rede ? Eu já tive problemas com eles, fazendo tudo se perder. Pela dimensão da sua rede (30 VLANs) é bom que eles não tenham nenhum bug. Outra coisa que pode fazer é fazer um port mirror no switch e tentar avaliar o tráfego da VLAN com problema. Bom, será preciso que o switch tenha o recurso de port mirror.

[27] Comentário enviado por cavanso em 16/09/2009 - 01:24h

Prezado Marcelo,

Nunca trabalhei com VLAN, so na teoria, bom pelo que entendi preciso ter o switch gerenciavel e o servidor linux para efetuar este procedimento ? ou so o proprio servidor linux e um switch não-gerenciavel resolveria? no seu modelo impõe 3 vlan, no caso como definiria os grupos de maquinas a determinada vlan ?

[28] Comentário enviado por marcelobarros em 17/09/2009 - 07:52h

1) É preciso um switch com suporte a VLANs.
2) Você não define a máquina. O simples fato de ela ter acesso à rede através de uma porta do switch já faz isso. Ao ingressar no switch, pacotes sem ID de VLAN terão o header ethernet modificado para adicioná-lo. Tudo isto se faz através da configuração do switch, onde se coloca o que é desejado em termos de VLANs.

[29] Comentário enviado por irado em 11/10/2009 - 08:49h

elogiar este artigo do marcelo é chover no molhado, mas acontece que eu o encontrei hoje - risos - e gostei MUITO do artigo tanto pela sua qualidade técnica - até eu entendi o significado/uso de vlans - mas também pela leveza da abordagem do assunto. Um excelente casamento do grande conhecimento com a qualidade da prosa.

parabéns grandão :)

[30] Comentário enviado por netdovale em 19/05/2010 - 00:08h

MARCELO NUNES - NETDOVALE

Parabens a contribuicao do colega em abordar o assunto VLAN e explicar com muita maestria a materia abordando o assunto de forma muito exposta, "NASCER CRESCER E SER UM HOMEN DE VALOR E ASSUMIR AS CONSEQUENCIA, SER UM HOMEM DE SUCESSO"

parabens aos minutos de cultura.


ass. marcelo nunes - www.netdovale.com.br

[31] Comentário enviado por mc.eagle em 20/06/2010 - 00:43h

Marcelo Barros, um primor de sabedoria uma eloquência de fazer-nos pensar. Parabéns amigo. Que Deus continue a te abençoar.

[32] Comentário enviado por juliosnb em 17/09/2010 - 09:59h

marcelo estou com uma duvida.
gostaria que vc explicasse melhor como cada usuário das vlan's irá saber o endereço certo a pegar do dhcp, possuo ja criado nos switchs as vlan's 801, 803 e 825. como o dhcp saberá enviar a rede para essas vlan's.

[33] Comentário enviado por marcelobarros em 17/09/2010 - 14:50h

Você é que define a faixa de endereços que seus clientes podem receber. No entanto pode ser qualquer um na faixa. Se quer ficar, tem como, através de configurações amarradas em MAC no seu dhcp3 server. Abra o arquivo de configuração dele e verá um exemplo.

[34] Comentário enviado por luiz humberto em 21/10/2010 - 13:53h

Marcelo,

Utilizando apenas o linux para a criação de uma Vlan, ou seja, com um switch comum, caso o usuário mudar o ip de sua máquina ele irá acesso as outras sub-redes, tem como fazer essa restrição pelo mac porque se mudar o ip não terá acesso as outras apenas a que ele está configurado.

Obrigado!

[35] Comentário enviado por luiz humberto em 21/10/2010 - 13:57h

Complementando a pergunta anterior, sem utilizar um switch preciso de uma placa de rede que suporte o protocolo 802.1Q?

[36] Comentário enviado por marcelobarros em 21/10/2010 - 16:50h

Não sei bem se entendi a pergunta, mas sem um switch com suporte a vlan não tem como fazer o que foi explicado.

[37] Comentário enviado por jgama em 10/02/2011 - 22:27h

Caro amigo, segui o teu tutorial mas estou encontrando dificuldade para ter sucesso, não querendo abusar de sua paciência, poderia analizar oq ue pode está dando errado.

No switch eu fiz..

Criei as Vlans 1, 2, 10, 20 , 30
sendo:

Vlan1 para administração do switch IP 169.254.239.7/30
Vlan2 Rede Principal IP 192.168.0.2/24 já que IP 192.168.0.1 é do Servidor Linux "Gateway" + Samba PDC.
Vlan10 IP 10.0.10.1/24
Vlan20 IP 10.0.20.1/24
Vlan30 IP 10.0.30.1/24

Pegando o exemplo do artigo, usei a porta 2 do switch onde o Servidor Linux esta conectado eu configurei para "tagged" as 3 Vlans fazem parte desta porta, só que estão "untagged"

Não sei se era necessario mas em DHCP Relay eu deixei em Global

No Linux usei o script para criar as Vlans só alterando para para minha rede, mas ficou assim:

#!/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 eth1 192.168.0.1 netmask 255.255.255.0 up
ifconfig eth0 192.168.1.67 netmask 255.255.255.0 up

$VCONFIG add eth1 10
ifconfig eth1.10 10.0.10.1 netmask 255.255.255.0 up
$VCONFIG set_flag eth1.10 1

$VCONFIG add eth1 20
ifconfig eth1.20 10.0.20.1 netmask 255.255.255.0 up
$VCONFIG set_flag eth1.20 1

$VCONFIG add eth1 30
ifconfig eth1.30 10.0.30.1 netmask 255.255.255.0 up
$VCONFIG set_flag eth1.30 1

route add default gw 192.168.1.254
echo 1 > /proc/sys/net/ipv4/ip_forward

;;
stop)

echo "Removendo vlans ..."

echo 0 > /proc/sys/net/ipv4/ip_forward
route del default gw 192.168.1.254

ifconfig eth1 down
$VCONFIG rem eth1.10
$VCONFIG rem eth1.20
$VCONFIG rem eth1.30
ifconfig eth1 down
ifconfig lo down

;;
*)
echo "vlan.sh [stop|start]"
exit 1
;;
esac

exit 0


Em dhcpd.conf no Ubuntu-server 10.0.4 deixei assim, saliento que uso dhcp + DNS dinamico

####
# PARÂMETROS GLOBAIS
#
authoritative;
option domain-name "lan";
default-lease-time 604800;
max-lease-time 2419200;
ddns-updates on;
ddns-domainname "lan";
ddns-update-style interim;
ignore client-updates;

include "/etc/dhcp3/rndc.key";
zone lan.{
primary 127.0.0.1;
key "rndc-key";
}
zone 0.168.192.in-addr.arpa.{
primary 127.0.0.1;
key "rndc-key";
}
#
# PARÂMETROS DA SUB-REDE
#
subnet 192.168.0.0 netmask 255.255.255.0 {
server-identifier 192.168.0.1;
option domain-name-servers 192.168.0.1;
option routers 192.168.0.1;
option netbios-name-servers 192.168.0.1;
option netbios-dd-server 192.168.0.1;
option netbios-node-type 8;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
range dynamic-bootp 192.168.0.100 192.168.0.199;
allow unknown-clients;
group {
use-host-decl-names on;

# insira abaixo suas configurações:

host micro01 {
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.0.10;
}

#
###
}
}
#

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;
option domain-name-servers 192.168.0.1;
option netbios-name-servers 192.168.0.1;
option netbios-dd-server 192.168.0.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;
option domain-name-servers 192.168.0.1;
option netbios-name-servers 192.168.0.1;
option netbios-dd-server 192.168.0.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;
option domain-name-servers 192.168.0.1;
option netbios-name-servers 192.168.0.1;
option netbios-dd-server 192.168.0.1;
}



Fui com sede ao pote achando que tudo ia dar certo, mas logo veio o desanimo.

Primeiro que os hosts da vlans não consegue paga o IP automatico.
Os Hosts só consegue pinga os Ips das Vlans e não os hosts por traz das Vlans.
ou seja o host com IP 10.0.10.2 não pinga o host 10.0.20.2

Os Hosts da rede principal Vlan2 configurado no switch não pinga nehuma das vlans, 10.0.10.1, 10.0.20.1 e 10.0.30.1

Agora meus amigos, o que pode ser, alguém manja configuração de switcg de preferencia 3Coim modelo 2928 com Suporte a Vlan e camada3?

Estou precisando muito fazer esta vlans funcionar, no momento estou só em fase de teste.

Abraço a todos



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts