交换机上的主机之间的单播stream量通过其上行链路离开交换机。 为什么?

我的办公室networking上发生了一件奇怪的事情,我无法理解。 特别是我不能确定是交换机出现问题还是configuration问题。

我们在服务器机房的机架顶部有一台Cisco SG300-52交换机(sw01),连接到另一台作为核心交换机(core01)的SG300-28。 都只运行第2层,我们的防火墙在VLAN之间进行路由。 他们之间有十几个VLAN。 sw01上的Gi1是连接到core01上的gi1的中继端口。

(披露:在我们的环境中还有其他交换机,但是我确信我已经将问题隔离到了这两个问题上,如果需要,可以提供更多的信息。

我看到的行为仅限于一个VLAN,vlan 12 – 或者至less在我检查过的其他VLAN上没有发生(这很难保证数据包不存在),它是: sw01是转发, core01,这两个主机之间的stream量都被插入到sw01中 。 (我注意到了这一点,因为我们的防火墙中的IDS误报了不应该到达防火墙的stream量。)

我们注意到这主要在我们的两个dhcp / dns服务器net01(10.12.0.10)和net02(10.12.0.11)之间。 net01是物理硬件,net02位于VMware ESX服务器上。 net01连接到sw01和net02的ESX服务器上的gi44到gi11。

[net01]----gi44-[sw01]-gi1----gi1-[core01] [net02]----gi11/ 

让我们看看一些接口! 请记住,vlan 12是vlan的问题。 其他人中,我明确证实vlan 27 没有受到影响。

这是两个主机的端口:esx01包含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 ! 

这是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 ! 

而core01上的trunk的另一端。

 interface gigabitethernet1 description sw01 macro description switch switchport trunk allowed vlan add 2-7,11-16,27,100 ! 

我在core01上有一个监视器端口,因此:

 core01#sh run int gi12 interface gigabitethernet12 description "monitor port" port monitor GigabitEthernet 1 ! 

而core01上的监控端口看到net01和net02之间的单播stream量,两者都在sw01上! 我已经通过sw01上的监视器端口validation了这一点,net01-net02单播stream量也通过gi1离开。

sw01知道这两个主机都在不是它的中继端口的端口上:

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

我还在vlan 12上的sw01上创build了一个未使用的端口,但单播stream量(尽我所知)并没有从这个端口出来。 所以它看起来并不像sw01所有的端口,只是正确的端口和gi1

我已经validation了sw01没有填满它的地址表:

 sw01#sh mac addr count This may take some time. Capacity : 8192 Free : 7983 Used : 208 

core01和sw01的完整configuration可用: core01 , sw01 。

最后,版本:

 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 

所以我的理解是这样的:sw01应该把net01的单播stream量从net02的端口发送出去,反之亦然。 没有一个应该出去sw01的上行链路。 但是core01,在gi1上接收到的gi1上的stream量信息,就是把它发送出去的所有端口。 (即:sw01是行为不端的,但是core01正在按照情况做。

我的问题是: 为什么sw01将单播stream量发送出其上行链路,gi1?

(而且先发制人:是的,我知道SG300s有很多不足之处,是的,我们应该启用生成树,但这正是我现在所处的位置。)

我会看看捕获的数据包中的MAC地址。 如果某个主机上的掩码,arp表或网关出错,则可能是设置了错误的目标MAC地址。