Sie sind auf Seite 1von 3

Routing on a stick com Linux

Routing on a stick a tcnica usada para rotear trfego inter VLANs usando um nico roteador conectado
com um nico cabo a uma nica porta de transporte (porta trunk ou VLAN tagged). Um roteador deve ter um
p em cada rede que ele encaminha trfego, mas se ele tem apenas uma porta de rede podemos criar
interfaces virtuais e atribuir cada uma uma VLAN usando o encapsulamento 802.1q. Um roteador pode ser,
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 com o ID da VLAN de origem.
A interface do roteador recebe os frames e atribui a cada interface virtual segundo a respectiva VLAN. Veja a
imagem abaixo:

Veja que existem 3 VLANs no switch, uma para cada porta. O roteador est conectado em uma nica porta de
onde tem acesso a todas as VLANs, o trfego de uma e outra diferenciado pelo protocolo 802.1q.
Se quiser entender mais sobre VLANs consulte este artigo: goo.gl/YWJOdS

Neste guia vou criar 2 VLAN interfaces sobre uma interface real. Com as interfaces criadas voc pode
referenci-las para manipular qualquer configurao no sistema, como regras de firewall, roteamento, etc
Sem mais para teoria vamos prtica.
Criando as interfaces
Antes de tudo instale o pacote vlan. No Debian e derivados seria:
apt-get install vlan
Em seguida carregue o mdulo 8021q, e coloque uma linha para ele no arquivo /etc/modules, para que seja
carregado sempre:
# modprobe 8021q
# echo 8021q >> /etc/modules
Com o mdulo carregado pelo kernel voc pode exibir as configuraes das VLAN interfaces no arquivo
/proc/net/vlan/config. E o comando para manipular as interfaces o vconfig:
cat /proc/net/vlan/config
vconfig help
Existem algumas opes quanto nomenclatura das interfaces, mas voc pode alterar usando o vconfig
set_name_type. Por exemplo, as interfaces da vlan 30 podem ser nomeadas como vlan0030 ou vlan30 ou
eth0.30. Consulte o help e veja a nomenclatura atual no arquivo /proc/net/vlan/config.
Para adicionar uma VLAN interface com VLAN ID 45 na interface eth0 seria:
# vconfig add eth0 45
Veja se a interface foi criada verificando o arquivo /proc/net/vlan/config. Uma interface ser criada com o
nome eth0.45 ou vlan45, dependendo do name-type definido.
Para remover uma VLAN interface:
# vconfig rem eth0.45
Voc deve declarar as configuraes da interface no arquivo /etc/network/interfaces normalmente,
exatamente como as interfaces reais, mas com apenas um parmetro a mais, o que identifica a interface fsica
da vlan:
auto eth0.45
iface eth0.45 inet static
address 192.168.45.1
netmask 255.255.255.0
network 192.168.45.0
broadcast 192.168.45.255

vlan_raw_device eth0
auto eth0.50
iface eth0.50 inet static
address 192.168.50.1
netmask 255.255.255.0
network 192.168.50.0
broadcast 192.168.50.255
vlan_raw_device eth0
Veja que no exemplo defini 2 VLANs na interface eth0, a 45 e a 50.
Agora voc pode montar as configuraes da mquina baseadas nas interfaces das VLANs. Por exemplo,
impedir que o trfego de uma VLAN seja encaminhado para outra:
# iptables -A FORWARD -i eth0.45 -o eth0.50 -j REJECT
# iptables -A FORWARD -i eth0.50 -o eth0.45 -j REJECT
Ou definir regras diferentes para uma VLAN no squid:
acl vlan45 src 192.168.45.0/24
acl vlan50 src 192.168.50.0/24
acl youtube dstdomain youtube.com
http_access deny vlan50 youtube
Configurao do Switch
Para que o trfego chegue na interface da VLAN correta, os frames devem vir com a marcao 802.1q. Para
isto a porta do switch deve estar configurada corretamente como trunk e permitindo as VLANs claro.
Em um switch Cisco a configurao seria:
switch(config-if) switchport mode trunk
switch(config-if) switchport trunk allow vlan all
Ou em um switch HP/3com:
port link-type trunk
port trunk permit vlan all
Se voc usa o RouterOS a coisa pode ser mais confusa, confira aqui: goo.gl/Lw4qMO

Das könnte Ihnen auch gefallen