Tráfego de difusão ponto a ponto entre hosts em um switch que sai do switch por seu uplink. Por quê?

3

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

Rich Lafferty
fonte
Você já capturou pacotes na porta do monitor? Ou nos servidores? É uma questão estranha e a única coisa que consigo explicar para explicar os interruptores do modo de inundação entram quando as tabelas mac enchem, mas como você mencionou, está longe de estar cheio. Como é o uso do processador? Você pode postar um arquivo .pcap na porta do monitor do tráfego em questão? é apenas o tráfego DNS e DHCP que é visto no uplink?
GerryEgan
Você usa NLB ou clustering de failover?
Mathieu Chateau

Respostas:

0

Eu daria uma olhada nos endereços MAC nos pacotes capturados. Se a máscara, a tabela arp ou o gateway em um dos hosts estiver incorreto, poderá estar configurando o endereço MAC de destino errado.

James Robinson
fonte