VLAN Trunk

如果网络中有多台交换机时,位于不同交换机上的相同VLAN的主机之间是如何通信的呢?这就是本章要解决的问题,即跨交换机的VLAN通信。

 

在交换网络中,链路有两种类型:接入链路,和中继链路

接入链路:通常属于一个VLAN,如主机与交换机之间连接的链路就是接入链路

中继链路:可以承载多个VLAN,中继链路常用来将一台交换机连接到另一台交换机上,或者将交换机连接到路由器上。

 

在来说下VLAN的标识。

在以太网中实现中继,可使用以下两种封装类型。

1)ISL(Inter-Switch link,交换机间链路)

ISL是Cisco私有的标记方法

ISL报头封装是26字节,CRC(Cyclic Redundancy Check,循环冗余效验)尾部是4字节,总共30字节。

ISL只对帧进行封装,而没有修改帧中的任何内容。

 

2)IEEE802.1q

802.1q是公有的标记方法,其他厂商的产品也支持。

无论采用哪种方法,设备的双方都必须一致。

对于802.1q的工作原理就不多阐述了。惭愧,小弟也是新手。大家如果需要可以自行去查找资料。

 

Trunk的模式和协商

  通过前面的介绍可以知道,TRUNK是两台Cisco Catalyst 交换机端口之间或者交换机和路由器之间的一条点对点链路。TRUNK可以传输多个VLAN的数据流,并且允许用户将VLAN从一台交换机扩展到多个交换机。

 

  对ISL和IE802.1q的配置要视Cisco交换的IOS而定。可以指定TRUNK使用ISL封装,802.1Q封装或者自动协商封装。

 

自动协商是由DTP(Dynamic trunking Protocol 动态中继协议)管理的。为思科专有。它同时支持ISL和802.1q两种中继自动协商,但只能用于交换机之间的中继链路,不能用于交换机和路由器。Cisco Catalyst交换机端口默认开启DTP协商

 

                          基于IOS的Catalyst交换机支持的Trunk模式如下图

 

思科2960只支持802.1q

 

 

 

Trunk配置

1)选择封装类型如下:

Switch(config-if)#switchport trunk encapsulation {isl   |  dot1q   |   negotiate  }

如果选择negotiate,就是指明端口与邻接端口协商,根据对端的设置改变。

 

2)将接口配置为Trunk口,命令如下:

Switch(config-if)#switchport mode trunk

 

另外如不需要Trunk传送某个VLAN的数据,可以从Trunk中删除中删除这个VLAN   如:删除vlan 20 :

Switch(config-if)#switchport trunk allowed vlan remove 20

 

如要添加某个VLAN。命令如下:

Switch(config-if)#switchport trunk allowed vlan add 20

 

接下来用一个实验案例更深入的了解下。

拓扑图如下:

 

 

左边交换机的配置:

 

Switch(config)#vlan 10
Switch(config-vlan)#exit
Switch(config)#vlan 20 
Switch(config-vlan)#exit

Switch(config)#interface range f0/4 - 10

Switch(config-if-range)#switchport mode access

Switch(config-if-range)#switchport access vlan 10

Switch(config-if-range)#exit

Switch(config)#interface range f0/15 - 20

Switch(config-if-range)#switchport mode access

Switch(config-if-range)#switchport access vlan 20

Switch(config-if-range)#exit

Switch(config)#interface fastEthernet 0/24

Switch(config-if)#switchport mode trunk

接下来就是右边的交换机配置差不多就不写上来了。

查看Trunk的信息

Switch#show interfaces fastEthernet 0/24 switchport
Name: Fa0/24
Switchport: Enabled
Administrative Mode: trunk
Operational Mode: trunk
Administrative Trunking Encapsulation: dot1q
Operational Trunking Encapsulation: dot1q
Negotiation of Trunking: On
Access Mode VLAN: 1 (default)
Trunking Native Mode VLAN: 1 (default)
Voice VLAN: none
Administrative private-vlan host-association: none
Administrative private-vlan mapping: none
Administrative private-vlan trunk native VLAN: none
Administrative private-vlan trunk encapsulation: dot1q
Administrative private-vlan trunk normal VLANs: none
Administrative private-vlan trunk private VLANs: none
Operational private-vlan: none
Trunking VLANs Enabled: ALL
Pruning VLANs Enabled: 2-1001
Capture Mode Disabled
Capture VLANs Allowed: ALL
Protected: false
Appliance trust: none

在上面的命令输出中可以看出,在端口F0/24上配置接口模式是Trunk,并且工作模式也是TRUNK,封装协议时dot1q,TRunk可以承载所有的VLAN。

 

接下来我们把VLAN10从Trunk中删除,让它不传送VLAN10的数据。

命令如下:

Switch(config)#interface fastEthernet 0/24

Switch(config-if)#switchport trunk allowed vlan remove 10

然后在观察Trunk的信息

可能我这模拟器有问题,删除了VLAN 10并没显示出来。不过效果确实出来了。

我用左边VLAN10中的客户机ping右边VLAN 10 的客户机如下:

PC>ping 192.168.2.2

Pinging 192.168.2.2 with 32 bytes of data:

Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 192.168.2.2:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

因为开始我们把VLAN 10 从Trunk中删除了,所以它不会为我们传送VLAN10的数据了,现在我们在吧它加回来。命令和效果如下:

Switch(config-if)#switchport trunk allowed vlan add 10

接下来在ping下

如下图

 

我的问题可能是模拟器的问题。

不知道大家出现过这问题没。

你可能感兴趣的:(职场,休闲,交换机,思科)