原生vlan(假设vlan 10)到达access port vlan 20时发生了什么?

基本情况:

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。

更详细地说,如果这是一个二层数据包,会发生什么情况:

  1. PC A发送一个发往PC B的MAC地址的数据包
  2. 交换机1接收数据包并将其标记为VLAN 10。
  3. 交换机1查找目的MAC,并且发现它不在VLAN 10的CAM表中。数据包被泛洪到所有VLAN 10端口,以及所有携带VLAN 10的中继(源端口除外)。
  4. 交换机2通过中继接收数据包,查找目的MAC并且发现它不在VLAN 10的CAM表中。数据包被扩散到所有的VLAN 10端口,以及所有携带VLAN 10的中继(源端口除外)。

因此,为了澄清你问如果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中的计算机不能互相通信。