Criando Redes Locais Virtuais (VLANs) no Linux

Sabe o que é uma LAN?

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  que é necessário apenas um switch capaz de gerenciar VLANs. Os outros equipamentos podem ser comuns e encarados como links de acesso

Vlans_Linux

Foi usada uma configuração baseada em portas . 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.

Criando VLANs

A criação 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 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:

# 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 configuração das interfaces e VLANs está descrito no arquivo a seguir:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/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 1
 
   $VCONFIG add eth0 20
   ifconfig eth0.20 10.0.20.1 netmask 255.255.255.0 up
   $VCONFIG set_flag eth0.20 1 1
 
   $VCONFIG add eth0 30
   ifconfig eth0.30 10.0.30.1 netmask 255.255.255.0 up
   $VCONFIG set_flag eth0.30 1 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
Share Button

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Obrigatório * Time limit is exhausted. Please reload CAPTCHA.