[FAQ]上连口分别为untagged和tagged的PC为何ping不同

发布时间:  2016-06-23 浏览次数:  171 下载次数:  1
问题描述

 

如上图所示,两台交换机分别连接两台PC,LSW1的接口GE0/0/1的配置如下:

port hybrid tagged vlan 10

LSW2的接口GE0/0/1的配置如下:

port hybrid untagged vlan 10

发现两台不能ping通,如果将两个接口的配置互换,两台PC可以ping通。

 

 

 

 

解决方案

如上图所示,当LSW1的配置如下所示:

#
interface GigabitEthernet0/0/1
port hybrid tagged vlan 10
#
interface GigabitEthernet0/0/2
port link-type trunk
port trunk pvid vlan 10
port trunk allow-pass vlan 10
#
LSW2的配置如下所示:
#
interface GigabitEthernet0/0/1
port hybrid untagged vlan 10
#
interface GigabitEthernet0/0/2
port link-type trunk
port trunk allow-pass vlan 10
#
    现在模拟PC1开始ping PC2,PC1发出一个不带tag的帧到LSW1的GE0/0/1口,该接口会打上缺省的VLAN ID,默认为1,1是默认在允许通过的VLAN ID列表里,因此接收该报文,到LSW1的GE0/L0/2口,由于VLAN ID 1与缺省VLAN ID(本口已经通过port trunk pvid 10 修改为10)不同,且是该接口允许通过的VLAN ID,保持原有Tag 1,发送该报文;到达LSW2的GE0/0/2口时,由于此报文的VLAN ID 1在接口允许通过的VLAN ID(VLAN ID 1默认通过)列表里,接收该报文,然后到达LSW2的GE0/0/1口,由于该口设置为untagged vlan 10,因此数据包将携带tag为1的帧发送给PC2,而PC是不能接受带tag的帧的,所以PC1不能ping通PC2。

如果将端口配置改为如下:

LSW1的配置如下所示:

#
interface GigabitEthernet0/0/1
port hybrid untagged vlan 10
#
interface GigabitEthernet0/0/2
port link-type trunk
port trunk pvid vlan 10
port trunk allow-pass vlan 10
#
LSW2的配置如下所示:
#
interface GigabitEthernet0/0/1
port hybrid tagged vlan 10
#
interface GigabitEthernet0/0/2
port link-type trunk
port trunk allow-pass vlan 10
#

    仍然模拟PC1开始ping PC2,PC1发出一个不带tag的帧到LSW1的GE0/0/1口,该接口会打上缺省的VLAN ID,默认为1,1是默认在允许通过的VLAN ID列表里,因此接收该报文,到LSW1的GE0/L0/2口,由于VLAN ID 1与缺省VLAN ID(本口已经通过port trunk pvid 10 修改为10)不同,且是该接口允许通过的VLAN ID,保持原有Tag 1,发送该报文;到达LSW2的GE0/0/2口时,由于此报文的VLAN ID 1在接口允许通过的VLAN ID(VLAN ID 1默认通过)列表里,接收该报文,然后到达LSW2的GE0/0/1口,由于该口设置为tagged vlan 10,因此携带tag为1的帧将去掉tag并发送给PC2。

    PC2收到报文之后,将会回应一个不带tag的报文给PC1,从PC1到达LSW2的GE0/0/1口,打上缺省的VLAN ID 1,而且缺省VLAN ID在允许通过的VLAN ID列表里,接收该报文,报文到达LSW2的GE0/0/2口,而携带的VLAN ID 1与缺省VLAN ID 1相同,且是该接口允许通过的VLAN ID,去掉tag,发送该报文,因此报文去掉tag并到达LSW1的GE0/0/2口,由于此接口已将默认ID改为10,因此该报文将打上缺省的VLAN ID 10,并且在允许通过的VLAN ID列表里,因此接受该报文,这是报文将携带的tag为10,并到达LSW1的GE0/0/1口,而该口配置为untagged vlan 10,因此该帧将去掉tag 10,并发送给PC1,因此两台PC之间可以ping通。如下所示。

    本问题看起来非常的绕,事实上,本问题的关键在于LSW1的GE00/2口,由于华为交换机的端口缺省的VLAN ID为1,并且是默认通过的,而如果将端口的缺省VLAN ID修改之后,要注意报文从该接口接收和从该接口发出的不同区别,按照三种端口不同的接收和发送数据帧的处理方式,一步一步分析,就可以得出结论。

 

 

 

 

 

END