基本情况:
PC A连接到交换机1 ——交换机2 —– PC B
交换机1具有访问端口vlan 10,并且在交换机1和交换机2之间也具有中继链路,其中本地vlan 10被configuration为两端都开关。
交换机2面向PC B的其他接口被configuration为访问端口vlan 20。
当数据包从PC A传送到PC B时发生了什么? 由于PC A有一个未标记的/ native vlan,一直到switch 2,当它到达PC B时会发生什么? 数据包是经过还是将被丢弃?
你的问题不清楚,但我想你问的是这样的:
PC A --------- Switch 1 ------- Switch 2 --------- PC B ^ access ^ trunk ^ access VLAN 10 VLAN 20
假设没有任何交换机正在执行任何types的路由,则PC A和PC B将永远不能相互通话。 由于PC不在同一个VLAN中,因此另一台PC将永远不在发送方VLAN的交换机CAM表中。 因此,它将被泛洪到同一个VLAN上的所有端口,而不会到达另一台PC。
更详细地说,如果这是一个二层数据包,会发生什么情况:
因此,为了澄清你问如果PC A发送帧到PC B的MAC地址会发生什么。
数据包将到达交换机1.究竟发生了什么取决于交换机是否使用每个vlan MAC表。 如果它使用每个vlan MAC表,那么mac查找将失败,并且数据包将被泛滥出VLAN上的所有端口(除了它来自哪个端口)。 如果不使用per-vlan MAC表,那么它可能匹配PC B的MAC表条目并被发送到交换机2,或者它可能会被泛洪到VLAN上的所有端口。
无论哪种方式,数据包发送到交换机2.由于VLAN 10是互连交换机链路上的本地VLAN,它发送untagged。
数据包到达交换机2,将其解释为VLAN 10数据包(按照本地vlanconfiguration)。
如果交换机使用每个vlan的MAC表,那么它将尝试将数据包泛洪到VLAN上的所有端口(除了它来自的那个端口),但是没有端口将其泛洪到所以停止在那里。
如果它不使用每个vlan MAC表,那么它将查找Mac表中的地址,注意端口在错误的VLAN中并丢弃数据包。
无论哪种方式,数据包都不会到达PC B.
注意:这种情况不太可能发生,因为PC A没有办法findPC B存在的地方。 任何寻找PC B的IP(或类似的)地址的arp广播(或类似的)将永远不会到达PC B.
两台计算机在不同的VLAN中。 除非在VLAN之间configuration了路由,否则stream量不会从A到B,反之亦然。
这实际上与VLAN标记,中继端口,本地VLAN或您有两个交换机的事实没有任何关系。 连接到不同VLAN中的端口的主机不能相互通信,除非您将路由configuration为在VLAN之间路由stream量。 即使您将计算机连接到一台交换机,并且交换机正在使用出厂默认VLAN,情况也是如此。 除了通过路由器之外,不同VLAN中的计算机不能互相通信。