Tenho uma coisa estranha acontecendo em nossa rede no meu escritório, que não consigo entender direito. Em particular, não sei dizer se é um problema com um comutador 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 switch principal (core01). Ambos executam apenas a camada 2, nossos firewalls fazem o roteamento entre VLANs. Eles têm uma dúzia ou mais de VLANs entre eles. Gi1 no sw01 é uma porta de tronco conectada ao gi1 no core01.
(Divulgação: existem outras opções em nosso ambiente, mas tenho certeza de que isolei o problema entre essas duas. 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 verifiquei (é difícil garantir a ausência de pacotes), e é: sw01 está encaminhando, para core01, tráfego que está entre dois hosts que estão conectados ao sw01 . (Percebi isso porque o IDS em nosso firewall deu um falso positivo no tráfego que não deveria alcançar o firewall.)
Percebemos 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 o servidor ESX do net02 ao gi11.
[net01]----gi44-[sw01]-gi1----gi1-[core01]
[net02]----gi11/
Vamos ver algumas interfaces! Lembre-se, vlan 12 é o problema vlan. Dos outros, verifiquei explicitamente que a vlan 27 não foi afetada.
Aqui estão as portas dos dois 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 unicast indo entre net01 e net02, ambos no sw01! Eu verifiquei isso com uma porta de monitor no sw01 que também vê o tráfego unicast net01-net02 saindo via gi1.
O sw01 sabe que esses dois 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
Também trouxe uma porta não utilizada no sw01 na vlan 12, mas o tráfego unicast foi (o melhor que pude dizer) não sair dessa porta. Portanto, não parece que o sw01 está empurrando todas as suas portas, apenas as portas certas e também o gi1 !
Eu verifiquei que 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
Portanto, meu entendimento é o seguinte: sw01 deve pegar o tráfego unicast para net01 e enviá-lo apenas pela porta de net02 e vice-versa; nada disso deve sair do uplink do sw01. Mas core01, recebendo tráfego no gi1 para um host que ele sabe que está no gi1, está certo em enviá-lo para 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 unicast para o uplink, gi1?
(E preventivamente: sim, eu sei que os SG300s deixam muito a desejar, e sim, devemos ter a árvore de expansão ativada, mas é onde estou agora.)