CCNA Roteamento InterVLAN


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

Teoria

Antes de mais nada é necessário ter, pelo menos, a seguinte topologia:

  • Pelo menos 1 switch
  • Pelo menos 2 computadores conectados ao Switch
    • Cada um dos computadores deve estar em uma rede diferente.
  • 1 dispositivo de camada 3 conectado ao Switch
  • Configurar pelo menos 2 VLANs no Switch
  • Configurar as portas do Switch que estão conectadas aos computadores:
    • Como portas de acesso
    • Associa-las em VLAns diferentes

É 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.

Roteador

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:

  • A camada dois irá utilizar um protocolo diferente, pois a porta do Switch será trunk com 802.1q
  • O roteador não pode receber muitos ips em apenas 1 interface

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.

Sub Interface

Uma sub interface FastEthernet ou GigabitEthernet de um roteador pode ter dois tipos de encapsulamento:

  • ISL
  • 802.1q (dot1q)

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:

  1. Receber o quadro pela interface física

  2. Ler as informações da camada 1 a 3

  3. Quando o roteador identificar o campo VLAN na camada 2 ele irá comparar com a sua configuração de sub interface

    1. Se a VLAN existir no roteador (estiver configurada) ele irá remover o cabeçalho da camada 2
    2. Após remover o cabeçalho camada 2 o roteador irá analisar a camada 3
  4. Baseando-se no endereço camada 3 o roteador irá identificar em qual interface / sub interface ele deve enviar o tráfego

    1. Verifica se a interface/sub interface de saída tiver encapsulamento 802.1q
    2. Insere os cabeçalhos da camada 2 (insere a tag da VLAN) e encaminha o tráfego

Prática

Comandos necessários para realizar o roteamento InterVLAN

Topologia

  • Resolução: Comandos usados em R1 ->
  • Resolução: Comandos usados em Switch ->
  • Tráfego capturado pela interface F1/1 (VLAN 26 do Switch) ->
  • Tráfego capturado pela interface F1/1 (VLAN 27 do Switch) ->
  • Tráfego capturado pela interface F1/15 (Link Trunk do Switch) -> FastEthernet1-15-TRUNK-CCNA-RoteamentoInterVLAN.pcap

ps. para abrir o tráfego capturado é necessário ter o Wireshark instalado (o programa é grátis)

Swtich

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

Roteador

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.

Testes

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.

VLAN 26
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
VLAN 27
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
Switch

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

Roteador
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

Análise simples do tráfego capturado

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