O roteamento interVLAN nada mais é do que fazer com que o tráfego de uma VLAN seja encaminhado para outra VLAN, esse encaminhamento pode ser feito utilizando as camdas 2 e 3
Antes de mais nada é necessário ter, pelo menos, a seguinte topologia:
É importante lembrar que uma porta do Switch que se conecta com o computador deve ser uma porta de acesso, pois apenas essas portas irão utilizar a mesma camada 2 que o computador. Já no caso da porta que fica conectada com o roteador deve estar no modo trunk, pois somente o link trunk possui o encapsulamento diferenciado para identificar a qual VLAN cada quadro (frame) pertence.
Como cada VLAN irá pertencer a uma rede diferente, nada melhor que usarmos como exemplo um roteador (dispositivo camada 3) para fazer o roteamento entre as VLANs! Antes de prosseguir é necessário lembrar de algumas coisas:
Para se adequar as necessidades do roteamento interVLAN é necessário criar sub interfaces com o encapsulamento 802.1q para cada VLAN, assim uma VLAN irá se comunicar com outra.
Uma sub interface FastEthernet ou GigabitEthernet de um roteador pode ter dois tipos de encapsulamento:
Para essa página iremos abordar apenas o 802.1q
Para permitir que o roteador interprete as informações de VLAN 802.1q é necessário configurar cada sub interface para esse encapsulamento, quando configurado o roteador irá tomar a seguinte decisão:
Receber o quadro pela interface física
Ler as informações da camada 1 a 3
Quando o roteador identificar o campo VLAN na camada 2 ele irá comparar com a sua configuração de sub interface
Baseando-se no endereço camada 3 o roteador irá identificar em qual interface / sub interface ele deve enviar o tráfego
Comandos necessários para realizar o roteamento InterVLAN
ps. para abrir o tráfego capturado é necessário ter o Wireshark instalado (o programa é grátis)
NOTA: Como o GNS3 não consegue emular um Switch, vamos usar um roteador 3700 com um módulo de Switch que irá proporcionar um resultado semelhante (praticamente idêntico)
O primeiro passo é criar as VLANs, que conforme a topologia devem ser 26 e 27, para ficar mais documentado irei dar nomes; Scoob e VIP respectivamente, também iremos criar uma VLAN que não será utilizada para nada, essa será nossa VLAN nativa, que por boas práticas deve ser assim mesmo.
Switch>enable
Switch#vlan database
Switch(vlan)#vlan 26 name Scoob
VLAN 26 added:
Name: Scoob
Switch(vlan)#vlan 27 name VIP
VLAN 27 added:
Name: VIP
Switch(vlan)#vlan 100 name NADA
VLAN 100 added:
Name: NADA
Switch(vlan)#exit
Após criar as VLANs, é necessário associar as interfaces as VLANs e também configurar o link trunk
Switch#configure terminal
Switch(config)#interface FastEthernet 1/1
Switch(config-if)#switchporte mode access
Switch(config-if)#switchport access vlan 26
Switch(config-if)#exit
Switch(config)#interface FastEthernet 1/2
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 27
Switch(config-if)#exit
Switch(config)#interface FastEthernet 1/15
Switch(config-if)#switchport mode trunk
Switch(config-if)#switchport trunk native vlan 100
Switch(config-if)#switchport trunk encapsulation dot1q !Não é necessário, mas só para constar que existe!
Switch(config-if)#switchport trunk allowed vlan all !Não é necessário, mas só para constar que existe!
Switch(config-if)#exit
Switch(config)#end
Switch#wr
Pronto, foi feito o que deveria ser feito no switch
No roteador é necessário criar interfaces virtuais, portanto o primeiro passo é habilitar a interface física
R1>enable
R1#configure terminal
R1(config)#interface FastEthernet 0/0
R1(config-if)#no shutdown
R1(config-if)#exit
Agora devem ser criadas as sub nterfaces e seus encapsulamentos.
R1(config)#interface FastEthernet 0/0.26
R1(config-subif)#encapsulation dot1q 26
R1(config-subif)#ip address 192.168.1.1 255.255.255.0
R1(config-subif)#exit
R1(config)#interface FastEthernet 0/0.27
R1(config-subif)#encapsulation dot1q 27
R1(config-subif)#ip address 192.168.0.1 255.255.255.0
R1(config-subif)#exit
R1(config)#interface FastEthernet 0/0.100
R1(config-subif)#encapsulation dot1q 100 native
R1(config-subif)#exit
R1(config)#exit
R1#wr
No exemplo acima é possível ver uma certa semelhança entre o número da sub interface e o número da VLAN no entanto esse valores não precisam ser iguais, porém é um costume deixar igual para facilitar uma análise para resolver quaisquer problemas relacionados.
Nesse exemplo estou usando Qemu do GNS3 para criar hosts linux, portanto alguns comandos de linux serão necessários para fazermos os testes, não é necessário se preocupar com eles.
ragazzid@ragazzid-26# ifconfig eth0 192.168.1.10 netmask 255.255.255.0
ragazzid@ragazzid-26# add route default gw 192.168.1.1
ragazzid@ragazzid-26# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
127.0.0.0 0.0.0.0 255.0.0.0 UH 0 0 0 lo
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
ragazzid@ragazzid-26# ping 192.168.1.1
PING 4.2.2.2 (4.2.2.2) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=255 time=10.095 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=255 time=6.0 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=255 time=8.9 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=255 time=7.7 ms
<output omitted>
ragazzid@ragazzid-26# ping 192.168.0.10
PING 4.2.2.2 (4.2.2.2) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=255 time=30.145 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=255 time=157.132 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=255 time=13.9 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=255 time=18.017 ms
ragazzid@ragazzid-27# ifconfig eth0 192.168.0.10 netmask 255.255.255.0
ragazzid@ragazzid-27# add route default gw 192.168.0.1
ragazzid@ragazzid-27# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
127.0.0.0 0.0.0.0 255.0.0.0 UH 0 0 0 lo
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
ragazzid@ragazzid-27# ping 192.168.0.1
PING 4.2.2.2 (4.2.2.2) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=255 time=31.123 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=255 time=8.399 ms
64 bytes from 192.168.0.1: icmp_seq=3 ttl=255 time=6.091 ms
64 bytes from 192.168.0.1: icmp_seq=4 ttl=255 time=10.022 ms
<output omitted>
ragazzid@ragazzid-27# ping 192.168.1.10
PING 4.2.2.2 (4.2.2.2) 56(84) bytes of data.
64 bytes from 192.168.1.10: icmp_seq=1 ttl=255 time=21.129 ms
64 bytes from 192.168.1.10: icmp_seq=2 ttl=255 time=16.608 ms
64 bytes from 192.168.1.10: icmp_seq=3 ttl=255 time=14.147 ms
64 bytes from 192.168.1.10: icmp_seq=4 ttl=255 time=17.093 ms
Verificando a tabela CAM para confirmar se tudo foi aprendido corretamente
Switch#show mac-address-table
Destination Address Address Type VLAN Destination Port
------------------- ------------ ---- --------------------
c202.1838.0000 Self 1 Vlan1
00ab.86f1.3200 Dynamic 26 FastEthernet1/1
00ab.770b.7100 Dynamic 27 FastEthernet1/2
c800.153c.0000 Dynamic 26 FastEthernet1/15
c800.153c.0000 Dynamic 27 FastEthernet1/15
Note que há 2 endereços MAC idênticos para as 2 VLANs, esse é o link trunk
Verificando as rotas
R1#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route
Gateway of last resort is not set
C 192.168.0.0/24 is directly connected, FastEthernet0/0.27
C 192.168.1.0/24 is directly connected, FastEthernet0/0.26
Iníncio da conversa, 192.168.0.10 tenta se comunicar com 192.168.1.10, observe que nào há informação de VLAN ou de quadros 802.1q
No. Time Source Destination Protocol Info
2 0.001132 192.168.0.10 192.168.1.10 ICMP Echo (ping) reply
Frame 2 (98 bytes on wire, 98 bytes captured)
Ethernet II, Src: 00:ab:77:0b:71:00 (00:ab:77:0b:71:00), Dst: c8:00:1b:84:00:00 (c8:00:1b:84:00:00)
Internet Protocol, Src: 192.168.0.10 (192.168.0.10), Dst: 192.168.1.10 (192.168.1.10)
Internet Control Message Protocol
Abaixo podemos ver uma informação que sai do link trunk e passa pelo roteador, podemos deduzir isso devido a mudança do ID da VLAN do quadro (802.1q) de 27 para 26
No. Time Source Destination Protocol Info
1 0.000000 192.168.0.10 192.168.1.10 ICMP Echo (ping) request
Frame 1 (102 bytes on wire, 102 bytes captured)
Ethernet II, Src: 00:ab:77:0b:71:00 (00:ab:77:0b:71:00), Dst: c8:00:1b:84:00:00 (c8:00:1b:84:00:00)
802.1Q Virtual LAN, PRI: 0, CFI: 0, ID: 27
Internet Protocol, Src: 192.168.0.10 (192.168.0.10), Dst: 192.168.1.10 (192.168.1.10)
Internet Control Message Protocol
No. Time Source Destination Protocol Info
2 0.007918 192.168.0.10 192.168.1.10 ICMP Echo (ping) request
Frame 2 (102 bytes on wire, 102 bytes captured)
Ethernet II, Src: c8:00:1b:84:00:00 (c8:00:1b:84:00:00), Dst: 00:ab:86:f1:32:00 (00:ab:86:f1:32:00)
802.1Q Virtual LAN, PRI: 0, CFI: 0, ID: 26
Internet Protocol, Src: 192.168.0.10 (192.168.0.10), Dst: 192.168.1.10 (192.168.1.10)
Internet Control Message Protocol