Router on a stick e a tecnica usada para encaminhar o trafego de diferentes VLAN's usando um unico roteador conectado a uma unica porta de transporte (porta trunk ou VLAN tagged). Um roteador deve ter uma interface conectada em cada rede que ele encaminha o trafego, mas se voce nao tem o switch layer 3, ou um roteador que tenha suporte a VLAN, voce pode usar o Linux. Com uma unica porta de rede e possivel criar interfaces virtuais e atribuir uma VLAN a cada uma usando o encapsulamento 802.1q. Este pode ser, e claro, um pc modesto com uma distro Linux qualquer instalada. Primeiro basta que a porta do switch esteja configurada como trunk, usando o encapsulamento 802.1q, marcando os frames de saida com o ID da VLAN de origem. A interface do roteador recebe os frames em cada interface virtual segundo a respectiva VLAN. Veja a imagem abaixo: Existem 3 VLAN's no switch acima, 10, 20 e 30. O servidor, que fara o papel de roteador, esta conectado em uma unica porta onde tem acesso as 3 VLAN's. O trafego de uma ou de outra e diferenciado pelo protocolo 802.1q.Se quiser entender mais sobre VLAN's consulte este artigo.Em seguida vou criar 3 VLAN interfaces sobre a interface eth0. Com as interfaces criadas voce pode referencia-las para manipular qualquer configuracao no sistema, como regras de firewall, roteamento, etc... Antes de tudo instale o pacote "vlan". No Debian e derivados seria:# apt-get install vlanEm seguida carregue o modulo "8021q", e coloque uma linha para ele no arquivo "/etc/modules", para que seja carregado sempre:# modprobe 8021q# echo 8021q >> /etc/modulesCom o modulo carregado pelo kernel voce pode exibir as configuracoes das VLAN interfaces no arquivo "/proc/net/vlan/config". E o comando para manipular as interfaces e o "vconfig":# cat /proc/net/vlan/config# vconfig --helpExistem algumas opoes quanto a nomenclatura das interfaces, mas voce pode alterar usando o "vconfig set_name_type". Por exemplo, as interfaces da vlan 3 podem ser nomeadas como vlan0030 ou vlan30 ou eth0.30. Consulte o help e veja a nomenclatura atual no arquivo "/proc/net/vlan/config":# cat /proc/net/vlanPara adicionar uma VLAN interface com VLAN ID 10 na interface eth0 seria:# vconfig add eth0 10Veja se a interface foi criada verificando o arquivo "/proc/net/vlan/config". Uma interface sera criada com o nome eth0.10 ou vlan10, dependendo do "name-type" definido.Para remover uma VLAN interface:# vconfig rem eth0.10Voce deve declarar as configuracoes da interface normalmente, exatamente como as interfaces reais, mas com apenas um parametro a mais, o que identifica a interface fisica associada a vlan. No caso do Debian o arquivo e o "/etc/network/interfaces":auto eth0.10 iface eth0.10 inet static address 192.168.10.1 netmask 255.255.255.0 network 192.168.10.0 broadcast 192.168.10.255 vlan_raw_device eth0 auto eth0.20 iface eth0.20 inet static address 192.168.20.1 netmask 255.255.255.0 network 192.168.20.0 broadcast 192.168.20.255 vlan_raw_device eth0auto eth0.30 iface eth0.30 inet static address 192.168.30.1 netmask 255.255.255.0 network 192.168.30.0 broadcast 192.168.30.255 vlan_raw_device eth0 Veja que no exemplo defini 3 VLANs na interface eth0, a 10 , a 20 e a 30. Agora voce pode montar as configuracoes da maquina baseadas nas interfaces das VLANs.Por exemplo, impedir que o trafego de uma VLAN seja