Eu daria uma olhada nos endereços mac nos pacotes capturados. Se a máscara, arp table ou gateway em um dos hosts estiverem errados, pode estar configurando o endereço MAC de destino errado.
Eu tenho uma coisa estranha acontecendo em nossa rede no meu escritório, que não consigo entender. Em particular, não posso dizer se é um problema com um switch ou um problema com a configuração.
Temos um switch Cisco SG300-52 (sw01) na parte superior de um rack em nossa sala de servidores, conectado a outro SG300-28 que atua como nosso principal switch (core01). Ambos executam apenas a camada 2, nossos firewalls fazem roteamento entre VLANs. Eles têm uma dúzia de VLANs entre eles. Gi1 on sw01 é uma porta de tronco conectada ao gi1 no core01.
(Divulgação: Existem outros switches em nosso ambiente, mas tenho certeza que isolei o problema nesses dois. Feliz em fornecer mais informações, se necessário.)
O comportamento que estou vendo é limitado a uma VLAN, vlan 12 - ou, pelo menos, não está acontecendo nas outras que eu verifiquei (é difícil garantir a ausência de pacotes), e é: sw01 está encaminhando, para core01, o tráfego que está entre dois hosts, ambos conectados a sw01 . (Eu notei isso porque o IDS em nosso firewall deu um falso positivo no tráfego que não deve atingir o firewall.)
Observamos isso principalmente entre nossos dois servidores dhcp / dns, net01 (10.12.0.10) e net02 (10.12.0.11). net01 é hardware físico e net02 está em um servidor VMware ESX. O net01 está conectado ao gi44 no sw01 e ao servidor ESX do net02 ao gi11.
[net01]----gi44-[sw01]-gi1----gi1-[core01]
[net02]----gi11/
Vamos ver algumas interfaces! Lembre-se, a vlan 12 é a vlan do problema. Dos outros, eu verifiquei explicitamente que a vlan 27 não era afetada.
Aqui estão as duas portas dos hosts: esx01 contém net02.
sw01#sh run int gi11
interface gigabitethernet11
description esx01
lldp med disable
switchport trunk allowed vlan add 5-7,11-13,100
switchport trunk native vlan 27
!
sw01#sh run int gi44
interface gigabitethernet44
description net01-1
lldp med disable
switchport mode access
switchport access vlan 12
!
Aqui está o tronco no sw01.
sw01#sh run int gi1
interface gigabitethernet1
description "trunk to core01"
lldp med disable
switchport trunk allowed vlan add 4-7,11-13,27,100
!
E a outra extremidade do tronco no core01.
interface gigabitethernet1
description sw01
macro description switch
switchport trunk allowed vlan add 2-7,11-16,27,100
!
Eu tenho uma porta de monitor no core01, assim:
core01#sh run int gi12
interface gigabitethernet12
description "monitor port"
port monitor GigabitEthernet 1
!
E a porta do monitor no core01 vê o tráfego em unicast entre net01 e net02, ambos no sw01! Eu verifiquei isso com uma porta de monitor no sw01 que vê o tráfego unicast net01-net02 saindo via gi1 também.
sw01 sabe que ambos os hosts estão em portas que não são sua porta de tronco:
:) ratchet$ arp -a | grep net
net02.2ndsiteinc.com (10.12.0.11) at 00:0C:29:1A:66:15 [ether] on eth0
net01.2ndsiteinc.com (10.12.0.10) at 00:11:43:D8:9F:94 [ether] on eth0
sw01#sh mac addr addr 00:0C:29:1A:66:15
Aging time is 300 sec
Vlan Mac Address Port Type
-------- --------------------- ---------- ----------
12 00:0c:29:1a:66:15 gi11 dynamic
sw01#sh mac addr addr 00:11:43:D8:9F:94
Aging time is 300 sec
Vlan Mac Address Port Type
-------- --------------------- ---------- ----------
12 00:11:43:d8:9f:94 gi44 dynamic
Eu também trouxe uma porta não utilizada no sw01 na vlan 12, mas o tráfego unicast era (o melhor que eu poderia dizer) não saindo dessa porta. Então, não parece que o sw01 está empurrando para fora todas as suas portas, apenas as portas certas e também gi1 !
Eu verifiquei que o sw01 não está preenchendo sua tabela de endereços:
sw01#sh mac addr count
This may take some time.
Capacity : 8192
Free : 7983
Used : 208
As configurações completas para core01 e sw01 estão disponíveis: core01 , sw01 .
Finalmente, versões:
sw01#sh ver
SW version 1.1.2.0 ( date 12-Nov-2011 time 23:34:26 )
Boot version 1.0.0.4 ( date 08-Apr-2010 time 16:37:57 )
HW version V01
core01#sh ver
SW version 1.1.2.0 ( date 12-Nov-2011 time 23:34:26 )
Boot version 1.1.0.6 ( date 11-May-2011 time 18:31:00 )
HW version V01
Então, meu entendimento é o seguinte: sw01 deve usar o tráfego unicast para net01 e enviá-lo apenas pela porta net02 e vice-versa; nada disso deve sair do uplink do sw01. Mas o core01, recebendo tráfego no gi1 para um host que ele conhece é no gi1, está certo em enviar todas as suas portas. (Ou seja: sw01 está se comportando mal, mas core01 está fazendo o que deveria, dadas as circunstâncias.)
Minha pergunta é: Por que o sw01 está enviando esse tráfego de unicast para seu uplink, gi1?
(E preventivamente: sim, eu sei que os SG300s deixam muito a desejar, e sim, nós devemos ter spanning tree ativado, mas é aí que eu estou agora).
Eu daria uma olhada nos endereços mac nos pacotes capturados. Se a máscara, arp table ou gateway em um dos hosts estiverem errados, pode estar configurando o endereço MAC de destino errado.