为此,我做了一下实验,来说明此问题,更加有说服力。

为什么A和D能互通?_java

当我把SW1的端口划分vlan好后,SW2未划分acces时:

PC1 是可以ping PC3   ,PC4,不能ping 通 PC2

解释:

PC1发的ping数据包,到达SW1后,交换机根据 e0/0/2为access口,vlan属于10,于是在这个数据包打上 vlan 10的tag;然后根据tag查找,转发到e 0/0/1,因为e/0/01也属于vlan 10,这是数据包 离开e0/0/1是没有携带tag的。到达SW2,因为SW2这时我还没做任何配置,所以就跟正常通信一样,查找目的ip地址,直接转发到目的PC,因为PC3,PC4能ping通。PC2不能ping通的原因是,PC2接的端口输入vlan20。


为什么A和D能互通?_java_02
为什么A和D能互通?_java_03

当我把SW1的端口划分vlan好后,SW2的端口也划分acces时:

PC1是可以ping PC4,但不能pingPC2,PC3。

解释:

PC1发的ping数据包,到达SW1后,交换机根据 e0/0/2为access口,vlan属于10,于是在这个数据包打上 vlan 10的tag;然后根据tag查找,转发到e 0/0/1,因为e/0/01也属于vlan 10,这是数据包 离开e0/0/1是没有携带tag的。到达SW2,因为SW2的e0/0/1已划为vlan 20,于是交换机SW2将刚到来的数据包打算vlan 20的tag,然后查找,转发到e0/0/3(因为e0/0/3已划为vlan 20的端口),所以PC4能ping通,然后e0/0/2 划为vlan 10,与进来数据包(tag 20)不匹配,所以不能ping通。

为什么A和D能互通?_java_04


以上是我的个人见解,若有存在错误的地方,欢迎指出。或者您有更好的见解,欢迎在下方进行评论。