VLAN entre GNU/Linux, MikroTik e equipamentos Ubiquiti
Autor: Robert Christian | Publicado: 2012-07-05T06:12:00-07:00



Por: Marcos Dias Cardoso


Introdução
Existem vários fatores para separar tráfegos de dados em redes locais 
(motivos não entram no escopo do artigo), e a VLAN (rede  local virtual)
 pode realizar esta tarefa de forma barata e eficiente, será explicado 
como fazer entre ativos  GNU/Linux, MikroTik e equipamentos Ubiquiti.


A escolha dos ativos deve-se ao fato de serem os mais utilizados em 
pequenos e médios provedores de Internet, uma área que tenho bastante 
atuação. 


Existem muitos materiais sobre VLAN na Internet, mas não achei envolvendo ativos diferentes, pelo menos com esses ativos.


VLAN opera na camada 2 do modelo de referência OSI e é padronizado pela 
IEEE (Institute of Electrical and Electronics Engineers), como IEEE 
802.1Q.




Requisitos
Trata-se de um texto técnico, portanto, pressupõe-se que você tenha um 
conhecimento básico em linha de comandos GNU/Linux e redes.




Laboratório
O laboratório foi realizado com:


 Ubuntu 12.04 Server

 MikroTik 5,17

 Ubiquiti bullet2



Todos os comandos no GNU/Linux são executados com o usuário root.


Com as devidas adaptações, pode funcionar em qualquer distribuição GNU/Linux, assim como os demais equipamentos.




Preparando o ambiente
Como boa prática, vamos atualizar a lista de repositórios e o sistema:


# apt-get update
# apt-get upgrade


O pacote necessário para a criação das VLAN's é o VLAN, então vamos instalá-lo:


# apt-get install vlan


Pronto, o GNU/Linux já está preparado para trabalhar com VLAN.



Procedimentos
Apresentarei as principais sintaxes do comando vlan e uma prévia do comando iproute2.


O comando abaixo cria uma interface virtual na interface "eth1" com a tag de vlan 2:


# vconfig add eth1 2


Para remover a interface criada no comando anterior:


# vconfig rem eth1.2


Note que, no segundo comando, a interface passa a ter um ponto "." entre
 a interface e a tag da VLAN. Isto ocorre porque o  sistema cria uma 
interface virtual: ethx(.)"tag da vlan"


Quando criada, a interface fica administrativamente desligada, para ligar é só digitar:


# ifconfig eth1.2 up


Ou:


# ip link set eth1.2 up


Atribuindo IP à interface:


# ip addr add 172.16.0.254/24 brd + dev eth1.2


Retirando o IP:


# ip addr del 172.16.0.254/24 brd + dev eth1.2


Retirando todos os IPs atribuídos à interface:


# ip addr flush eth1.2


Script para administrar as interfaces.


Crie o arquivo /etc/init.d/net e cole o conteúdo abaixo:



#!/bin/bash
# Script para levantar interface de rede com VLAN
# Marcos Dias Cardoso
# 05/06/2012

# Criando as VLANs
vconfig add eth1 2
vconfig add eth1 3


# Levantando as interfaces
ip link set eth1 up
ip link set eth1.2 up
ip link set eth1.3 up


# Limpando as interfaces
ip addr flush eth1
ip addr flush eth1.2
ip addr flush eth1.3


# Atribui IPs nas interfaces
ip addr add 192.168.99.254/24 brd + dev eth1.2 #IP atribuído para a VLAN2
ip addr add 192.168.100.254/24 brd + dev eth1.3 #IP atribuído para a VLAN3
ip addr add 172.16.1.254/24 brd + dev eth1 #IP para a administração dos equipamentos Ubiquiti e MikroTiks


Dê permissão de execução para o script com o comando:


# chmod +x /etc/init.d/net


Adicione na inicialização do sistema:


# update-rc.d -f net defaults 8




MikroTik
No MikroTik vamos trabalhar no console.


Para criar uma VLAN basta digitar:


/interface vlan 
add arp=enabled disabled=no interface=ether1 l2mtu=1522 mtu=1500 name=vlan1 use-service-tag=no vlan-id=2


Criando uma bridge:


/interface bridge 
add admin-mac=00:00:00:00:00:00 ageing-time=5m arp=enabled auto-mac=yes 
disabled=no forward-delay=15s l2mtu=1522 max-message-age=20s mtu=1500 
name=bridg priority=0x8000 protocol-mode=none transmit-hold-count=6


Atribuindo as portas na bridge:


/interface bridge port 
add bridge=bridg disabled=no edge=auto external-fdb=auto horizon=none 
interface=wlan1 path-cost=10 point-to-point=auto priority=0x80
add bridge=bridg disabled=no edge=auto external-fdb=auto horizon=none 
interface=vlan1 path-cost=10 point-to-point=auto priority=0x80
/interface bridge settings


Atribuindo IP na interface:


/ip address
add address=172.16.1.1/24 comment="Ip para administração" disabled=no interface=ether1 network=172.16.1.0


Atribuindo rota default:


/ip route
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=172.16.1.254 scope=30 target-scope=10




Ubiquiti
Bom, os equipamentos de pequeno porte da linha Ubiquiti só trabalham com VLAN em modo texto, mas isso não será problema (somos Linux users...).


Precisamos acessar o equipamento via SSH:


# ssh -l ubnt 172.16.0.2


Obs.: Substitua o ubnt pelo usuário corrente do equipamento, o default é: ubnt


Crie um arquivo em /etc/persistent chamado vlan.conf:


# vi /etc/persistent/vlan.conf


Cole o conteúdo abaixo e salve:



plugin_start() {


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;brctl delif "br0" "eth0"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vconfig add eth0 3
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ifconfig "eth0.3" up
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;brctl addbr “br0”
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;brctl stp "br0" off
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;brctl addif "br0" "eth0.3"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;brctl addif "br0" "ath0"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ifconfig "br0" up
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ip addr flush br0
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ip addr add 172.16.1.2/24 brd + dev eth0
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;route add default gw 172.16.0.254
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;true
}


plugin_stop()&nbsp;{


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ifconfig "br0" down
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;brctl delbr "br0"


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vconfig rem "eth0.3"


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;true
} 


Crie outro arquivo no mesmo diretório com o nome rc.poststart.


# vi /etc/persistent/rc.poststart


Cole o conteúdo abaixo e salve:



#!/bin/sh


.&nbsp;/etc/persistent/vlan.conf


plugin_stop;
plugin_start;


Para finalizar, grave as alterações na memória do Ubiquiti com o comando:


# cfgmtd -p /etc -w


Os arquivos acima criam uma VLAN com tag 3 no equipamento Ubiquiti, não se esqueça de adaptá-los à sua necessidade.




Resultado
Todos os ativos que estiverem conectados na wlan1 do MikroTik, só terão acesso à porta eth1.2 do  GNU/Linux,
 ou seja, a rede "192.168.99.0/24" e todos que estiverem conectados no 
Ubiquiti, só terão acesso à porta "eth1.3" com o IP: 192.168.100.254 do 
GNU/Linux.






Referências

 Exemplo de VLAN no AIROS 3.x ou 4.x - Ubiquiti Networks Forum - forum.ubnt.com

 http://www.dataplanet.com.br