sábado, 7 de abril de 2012

Experiências do mundo real + LAB. Resolvendo problemas com trunks - Parte I - VLAN Mismatch.

Imagine que de repente, você depara com estas mensagens no logging ou aparecendo espontaneamente na console do switch, após receber um alerta ou um chamado de usuários reclamando de algum problema com acesso a rede:

SWITCH-A# 
*Mar  1 00:31:21.695: %CDP-4-NATIVE_VLAN_MISMATCH: Native VLAN mismatch discovered on FastEthernet1/14 (30), with SWITCH-B FastEthernet1/15 (1).
SWITCH-A# 
E o mais interessante, não consegue ter tem acesso e nem ter resposta no ping para o SWITCH-B, mesmo recebendo CDP dele na porta Fa1/14 do SWITCH-A (Significa que ele está funcionando). O que fazer? Chamar o Bátima? Apesar da dublagem deste vídeo ser chula, recomendo vê-lo depois que fazer o LAB deste post, para quem nunca viu... Mas, e agora, como resover isto?


É simples Comissário, essa fita mostra tudo.

Já que o Bátima está com outras ocupações, e você é o responsável por manter uma rede ou fazer usuários ficarem felizes, segue abaixo como resolver este problema. Vamos lá, segue a topologia abaixo:

Trunk entre SWITCH-A e SWITCH-B

Em ambos os switches, temos três VLANs, VLAN 10, usada para as máquinas, VLAN 20, usada para os Telefones IP (tráfego de sinalização e voz) e a VLAN 30, que foi escolhida para gerenciamento. Note que esta VLAN foi escolhida pelo cliente ou o projetista da rede (Ou até você mesmo pode ter escolhido, se for o projetista ou administrador da rede) para ser uma VLAN nativa, ou seja, conceitualmente os quadros, uma PDU (Protocol Data Unit) da camada 2 (Enlace) não passarão a ter marcação de nenhuma VLAN, passando entre os switches como se fossem um quadro normal. O problema nesta caso é que um dos switches não está com a mesma VLAN nativa configurada na porta que faz o trunk com o seu switch vizinho. Neste caso, podemos checar que, após conectar pela console (Acesso físico) no switch que não estamos conseguindo acessar, vemos os também seguintes as seguintes mensagens na saída da console ou nos logs:

SWITCH-B#
*Mar  1 00:10:04.307: %CDP-4-NATIVE_VLAN_MISMATCH: Native VLAN mismatch discovered on FastEthernet1/15 (1), with SWITCH-A FastEthernet1/14 (30).
SWITCH-B#
*Mar  1 00:11:04.311: %CDP-4-NATIVE_VLAN_MISMATCH: Native VLAN mismatch discovered on FastEthernet1/15 (1), with SWITCH-A FastEthernet1/14 (30).
SWITCH-B#
*Mar  1 00:12:04.299: %CDP-4-NATIVE_VLAN_MISMATCH: Native VLAN mismatch discovered on FastEthernet1/15 (1), with SWITCH-A FastEthernet1/14 (30).
SWITCH-B#
Já que temos alguma forma de acesso ao SWITCH-B, podemos começar a comparar como estão configuradas as portas entre eles. Podemos ver diretamente a configuração da porta ou somente verificar como o está o trunking delas.
SWITCH-A>sh int fastEthernet  1/14 switchport
Name: Fa1/14
Switchport: Enabled
Administrative Mode: trunk
Operational Mode: trunk
Administrative Trunking Encapsulation: dot1q
Operational Trunking Encapsulation: dot1q
Negotiation of Trunking: Disabled
Access Mode VLAN: 0 ((Inactive))
Trunking Native Mode VLAN: 30 (MGMT)
Trunking VLANs Enabled: ALL
Trunking VLANs Active: 1,10,20,30
Protected: false
Priority for untagged frames: 0
Override vlan tag priority: FALSE
Voice VLAN: none
Appliance trust: none
SWITCH-A>
E o log gerado, no SWITCH-A:

 *Mar  1 00:12:24.351: %CDP-4-NATIVE_VLAN_MISMATCH: Native VLAN mismatch discovered on FastEthernet1/14 (30), with SWITCH-B FastEthernet1/15 (1).
Agora vamos para o SWITCH-B:

SWITCH-B#sh int fastEthernet  1/15 switchport
Name: Fa1/15
Switchport: Enabled
Administrative Mode: trunk
Operational Mode: trunk
Administrative Trunking Encapsulation: dot1q
Operational Trunking Encapsulation: dot1q
Negotiation of Trunking: Disabled
Access Mode VLAN: 0 ((Inactive))
Trunking Native Mode VLAN: 1 (default)
Trunking VLANs Enabled: ALL
Trunking VLANs Active: 1,10,20,30
Protected: false
Priority for untagged frames: 0
Override vlan tag priority: FALSE
Voice VLAN: none
Appliance trust: none
SWITCH-B#

O que podemos ver entre os dois switches é que existe a configuração de trunk entre eles e todas as VLANs estão sendo permitidas entre ambas as portas, porém, a VLAN nativa ainda não está configurada para a VLAN 30 no SWITCH-B. Para isso, temos que fazer com que a VLAN 30 seja a VLAN nativa também para a interface Fa1/15 do SWITCH-B. Até não mudarmos esta configuração na porta, ainda veremos os logs de VLAN mismatch em ambos switches no log e não haverá tráfego IP na vlan 30 para o switch B. Abaixo seguem os logs e o teste de ping para o SWITCH-A:

SWITCH-B#
*Mar  1 00:35:18.551: %CDP-4-NATIVE_VLAN_MISMATCH: Native VLAN mismatch discovered on FastEthernet1/15 (1), with SWITCH-A FastEthernet1/14 (30).
SWITCH-B#
*Mar  1 00:36:18.547: %CDP-4-NATIVE_VLAN_MISMATCH: Native VLAN mismatch discovered on FastEthernet1/15 (1), with SWITCH-A FastEthernet1/14 (30).
SWITCH-B#
*Mar  1 00:37:18.563: %CDP-4-NATIVE_VLAN_MISMATCH: Native VLAN mismatch discovered on FastEthernet1/15 (1), with SWITCH-A FastEthernet1/14 (30).
SWITCH-B#
 SWITCH-B#sh cdp nei fas 1/15 det
-------------------------
Device ID: SWITCH-A
Entry address(es):
  IP address: 182.168.30.20
Platform: Cisco 3725,  Capabilities: Router Switch IGMP
Interface: FastEthernet1/15,  Port ID (outgoing port): FastEthernet1/14
Holdtime : 169 sec

Version :
Cisco IOS Software, 3700 Software (C3725-ADVENTERPRISEK9-M), Version 12.4(15)T10, RELEASE SOFTWARE (fc3)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2009 by Cisco Systems, Inc.
Compiled Mon 14-Sep-09 15:53 by prod_rel_team

advertisement version: 2
VTP Management Domain: ''
Native VLAN: 30
Duplex: full

SWITCH-B#ping 182.168.30.20

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 182.168.30.20, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
SWITCH-B#
 Agora, para arrumar isto, basta um simples comando na interface Fa1/15 do SWITCH-B e os logs irão parar de aparecer em ambos os switches e teremos conectividade entre eles pela VLAN30:
SWITCH-B(config)#int fas 1/15
SWITCH-B(config-if)#switchport trunk native vlan 30
SWITCH-B(config-if)#
E agora, podemos verificar a porta novamente :
SWITCH-B#sh interfaces  fas1/15 switchport
Name: Fa1/15
Switchport: Enabled
Administrative Mode: trunk
Operational Mode: trunk
Administrative Trunking Encapsulation: dot1q
Operational Trunking Encapsulation: dot1q
Negotiation of Trunking: Disabled
Access Mode VLAN: 0 ((Inactive))
Trunking Native Mode VLAN: 30 (MGMT)
Trunking VLANs Enabled: ALL
Trunking VLANs Active: 1,10,20,30
Protected: false
Priority for untagged frames: 0
Override vlan tag priority: FALSE
Voice VLAN: none
Appliance trust: none
SWITCH-B#
E agora, podemos ver que o SWITCH-B está de volta na rede, pela VLAN30!
SWITCH-B#ping 182.168.30.20               

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 182.168.30.20, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 4/13/24 ms
SWITCH-B#
Por enquanto é só. E segue aqui a topologia, pronta para rodar no GNS3! Só edite o arquivo .net de acordo para apontar para o IOS e o arquivo de confguração na sua máquina. Have fun!