Essa mesma tarefa pode ser configurada em um servidor Linux, por isso a topologia apresentada abaixo será utilizada para exemplificar o processo de configuração de roteamento inter-VLAN no Linux. Assim como nos artigos anteriores, estou considerando que o roteador Linux está instalado com a distribuição Debian GNU/Linux (ou seus derivados, como o Ubuntu).
apt-get install vlan
Agora basta editar o arquivo de configuração das interfaces de rede que fica localizado em “/etc/network/interfaces”. A partir da interface física eth0 (trunk 802.1q), criaremos duas novas interfaces lógicas denominadas eth0.100 (vlan100) e eth0.200 (vlan200).
###— em /etc/network/interfaces
auto eth0
iface eth0 inet manual
auto eth0.100
iface eth0.100 inet static
address 192.168.100.254
netmask 255.255.255.0
auto eth0.200
iface eth0.200 inet static
address 192.168.200.254
netmask 255.255.255.0
Na sintaxe eth0.100 fazemos referência à interface física antes do ponto e, depois do ponto, fazemos referência ao número da VLAN vinculada à interface. É somente depois da instalação do pacote vlan que o Linux passa a reconhecer essa sintaxe. Uma alternativa válida seria utilizar uma convenção diferente de nomes em que fazemos referência direta à VLAN na denominação da interface em conjunto com o parâmetro vlan-raw-device para associá-la a sua respectiva VLAN. O exemplo abaixo traz a mesma configuração anterior com essa sintaxe alternativa:
###— em /etc/network/interfaces
auto eth0
iface eth0 inet manual
auto vlan100
iface vlan100 inet static
vlan-raw-device eth0
address 192.168.100.254
netmask 255.255.255.0
auto vlan200
iface vlan200 inet static
vlan-raw-device eth0
address 192.168.200.254
netmask 255.255.255.0
Como o Linux não permite o roteamento entre sub-redes por padrão, é necessário instruir seu kernel a fazê-lo por meio de um dos comandos abaixos, lembrando que a primeira opção é volátil, ou seja, será perdida em caso de boot, enquanto que a segunda opção é persistente:
opção 1) echo “1” > /proc/sys/net/ipv4/ip_forward
opção 2) sysctl -w net.ipv4.ip_forward=1
Obs.: Vale ressaltar que as interfaces lógicas do tipo VLAN são diferentes das tradicionais sub-interfaces lógicas vinculadas às interfaces físicas. A criação de sub-interfaces lógicas é uma técnica simples de virtualização de interfaces físicas nativamente reconhecida pelo Linux, procedimento realizado através da sintaxe ethX:X. Por outro lado, o Linux torna-se capaz de interpretar cabeçalhos 802.1q (trunk) quando utilizamos o pacote vlan para criar interfaces lógicas roteadas do tipo VLAN (sintaxe ethX.X).