首先我们看到的实验拓扑如下:

spacer.gif


除了两个交换机相连接的e0/0/5e0/0/1端口是trunk,其余和pc相连的都是access接口类型。

1trunk接口在收到报文帧中携带vlan标记时,判断本端口是否允许该vlan标记的报文通过。如果允许则报文携带原有的vlan标记进行转发,否则丢弃该报文。

2:如果收到的报文帧中不携带vlan标记,则为该报文打上vlan标记为本端口的pvid

3:trunk接口在发送报文时,首先判断报文所携带的vlan标记和本端口的pvid是否相等。如果相等则剥掉报文中所携带的vlan标记。如果不相同则报文携带原有vlan标记进行转发

Trunk接口转发过程:

1 收到一个数据帧。

2 帧是否有VLAN Tag,没有Tag,丢弃帧;Tag,则判断该Trunk 接口是否允许该VLAN 帧进入。允许则进行下步处理,否则丢弃该帧。

3 交换机根据帧的目的MAC 地址和VLAN ID,查找VLAN 配置信息,决定从哪个接口把帧发送出去。

4 交换机根据查到的出接口发送数据帧。

SW1的配置:

<Huawei>

[Huawei]sys 

[Huawei]sysname SW1

[SW1]int e0/0/1

[SW1-Ethernet0/0/1]portlink-type access///首先将接口类型定义为access

[SW1]int e0/0/2

[SW1-Ethernet0/0/2]portlink-type access

[SW1]int e0/0/3

[SW1-Ethernet0/0/3]portlink-type  access

[SW1]int e0/0/4

[SW1-Ethernet0/0/4]portlink-type access

[SW1]vlan 10

[SW1-vlan10]port e0/0/1

[SW1-vlan10]port e0/0/3

[SW1]vlan 20

[SW1-vlan20]port e0/0/2

[SW1-vlan20]port e0/0/4

SW2的配置(大概配置):[SW2]vlan 20

[SW2-vlan20]porte0/0/2

[SW2]vlan 10

[SW2-vlan10]porte0/0/3

此时如果用pc1 ping  pc3是能够ping通的,是因为pc1pc3处于同一网段,同一vlan且属于同一交换机。

spacer.gif

但是用pc1 ping pc6是不能够通的,因为跨交换机的两个接口默认只允许通过vlan1,所以必须将两个交换机的接口配置trunk链路类型。

spacer.gif

此时如果想pc1pc6能够ping通,需要在两个交换机的接口配置trunk链路。增加的配置如下:

[SW1]int e0/0/5

[SW1-Ethernet0/0/5]portlink-type trunk ///指定接口类型为trunk

[SW1-Ethernet0/0/5]porttrunk allow-pass vlan all///默认情况下trunk端口只允许默认vlan通过,即vlan1的数据帧通过,所以要指定哪些vlan帧能够通过。H3C在此处的配置命令为port trunk permit vlanall

[SW2]int e0/0/1

[SW2-Ethernet0/0/1]portlink-type trunk

 [SW2-Ethernet0/0/1]port trunk allow-pass vlanall.

添加完配置后此时用pc1 ping pc6的实验结果图如下:

spacer.gif