环境准备:一台安装GNS3-1.3.10、Wireshark、SecureCRT8.0的计算机。并在GNS 3中添加路由映像。(GNS3-1.3.10、Wireshark、SecureCRT8.0安装连接:
https://blog.51cto.com/14473285/2426223 )(GNS 3添加路由映像连接:
https://blog.51cto.com/14473285/2426262 )
Trunk是什么? Trunk的作用是什么?通过这两个问题我们来了解Trunk。希望大家看完这篇文章也可以了解学习Trunk。
1、什么是Trunk?
在上一篇文章中讲述了vlan的作用、vlan的配置方法,通过vlan我们能够轻松的分隔广播域,避免广播风暴的产生,在同一个交换机的大的网络环境中划分多个小网络,每一个小网络也就是一个vlan,同一个vlan上的用户处于同一网段时可以实现相互通信,一个交换机的接口是有限的,当用户过多时交换机接口是不够使用的,我就需要增加交换机。在不同的交换机中设置相同vlan,理论上是这个vlan中的用户是可以相互通信的,那么这个vlan中的用户如何通信呢?如图1:
(图1)
如图1所示,我们想要两个交换机中vlan 10中的用户相互通信,我们就需要接入一条链路将两个交换机相连,同时这条链路两端的接口同样要配置到vlan 10中,来实现两台交换机中vlan 10中的用户的相互通信(如果这条链路两端接口没有配置到vlan 10中,那么这两台交换机中vlan 10中的用户是无法通信的,因为他们并不在一个vlan中)。那么我们要想这两台交换机中vlan 20、vlan 30中的用户通信同样需要分别接入两条链路,并且接口分别配置到vlan 20、vlan 30中来实现相互信,如下图2:
(图2)
如图2所示,通过链路连接两台交换设备中的多个相同vlan相互通信就需要添加多条链路。那么同样的问题出现了,我们交换机接口是有限的,每条链路同样要占据接口,同时还会产生大量的线路,那么这种方法就是不可取的,弊端比较大。
类似现实中送货的例子,当我们运送货物时,为了把运送的货物区分开,我们就会给这些货物贴上不同的标签,以达到区分的效果。那么在vlan中,由于每一个vlan号不同,就可以只用一条中继链路,将不同vlan发送的数据帧打上不同的标识,发送到另一台交换机中,通过标识再发送到vlan中,实现vlan间的通信,这就是Trunk。如图3:
(图3)
在交换网络中,有两种类型链路:接入链路和中继链路
1)、接入链路:通常属于一个vlan,如上图,交换机域主机之间连接的链路
2)、中继链路:可以承载多个vlan,如图3中两个交换机之间相连的链路,中继链路常
用来将一台交换机连接到其他交换机上,或者将交换机连接到路由器上。
2、Trunk的作用
1)、Trunk是一个公共的链路,在Trunk中可以发送所有vlan的数据,以达到所有vlan可以通过一条链路跨交换机通信。
2)、Trunk根据不同的vlan号给vlan发送的数据添加标识,使同一vlan可以跨交换机通信。
就像上面所说的Trunk根据不同的vlan号给vlan发送的数据添加标识,使同一vlan可以跨交换机通信。那么vlan的标识有哪些?这个标识包含哪些内容呢?
3、vlan的标识
Vlan的标识有两种:
1)、ISL(Cisco私有协议)
2)、IEEE 802.1q
这两种标识的使用其实就是封装的过程,在数据帧发送到Trunk接口时,Trunk会给数据帧增加封装,发送给另一台交换机,交换机接受到Trunk接口装的数据帧后,解封装查看封装的标识内容,转发到相应的vlan中。
ISL标识是Cisco私有协议,而且协议内容占据32个字节,不推荐使用,这里也不在介绍。
IEEE 802.1q协议是一个公共的协议,所以设备都可以使用,协议内容也只有4个字节,是我们经常使用的协议,在下面的配置中都会用这种协议来配置。
4、vlan跨交换机通讯过程
通过上面的讲述我们知道,vlan跨交换机通信时vlan发送数据到交换机,通过trunk接口时trunk根据不同的vlan号给数据帧加封装,发送到另一台交换机trunk接口,trunk接口接受到加封装的数据帧,通过解析封装的vlan号发送到相应的vlan中。如图:
Vlan 10发送数据帧到交换机,这个时候就要经过trunk接口发送到另一台交换设备中,数据帧在经过trunk接口时,trunk接口根据vlan号给数据帧加封标识(而这个标识是vlan 10特有的标识),然后发送掉另一台交换机,在经过另一台交换就trunk接口时,trunk解析封装的标识内容,知道时vlan 10发送的数据,然后解除封装回复原始数据帧,发送给vlan 10接口,vlan10中的用户接收数据。
5、trunk的配置
经过上面的讲述大家应该大概了解了什么是trunk、trunk的作用与vlan跨交换机通讯的过程,下面我们就在GNS 3中实验配置trunk,达到在两台交换机中通过trunk实现同一vlan之间通讯。
1)、打开GNS 3,配置两台路由设备,并添加交换机业务单板,添加交换机磁盘空间,更改路由图标为交换机图标,更改路由名称为交换名称,方便我们识别(这里我不在详细介绍添加更改过程,会在关键点介绍,不会的可以参考【VLAN的原理、静态VLAN与配置方法(理论与实践):https://blog.51cto.com/14473285/2427648】中配置交换机)。如图:
在拓扑操作区添加两台路由设备。
给路由设备添加交换机业务单板。
给路由设备设置磁盘空间。
更改图标为交换机图标。
更改名称为交换机名称。(另一台路由设备同上更改设置)
更改好的交换机设备。
2)、在拓扑操作区域添加4台PC主机(PC1、PC2、PC3、PC4),并与交换机设备连接,两台交换机连接,PC1、PC2连接sw1交换机分别连接交换机f1/0、f1/1接口,PC3、PC4连接sw2交换机反别连接交换机f1/0、f1/1接口,sw1交换机f1/2接连接sw2交换机f1/2接口,并点击显示接口图标显示接口。如图:
在拓扑操作区添加PC设备。
连接交换机与PC设备,PC1、PC2连接sw1交换机分别连接交换机f1/0、f1/1接口,PC3、PC4连接sw2交换机反别连接交换机f1/0、f1/1接口,sw1交换机f1/2接连接sw2交换机f1/2接口。
点击显示接口图标,在拓扑操作区显示接口。
通过书写工具在拓扑操作区标记出我们将要设置的vlan,与各个PC机的IP地址。
3)、点击开启全部设备,并双击设备图标打开设备配置揭界面,如图:
点击开启按钮,开启全部设备。
分别双击设备图标,打开设备配置界面,弹出设备配置窗口。
4)、在sw1交换机中配置vlan10、vlan20,并将PC机接口分别添加进vlan10、vlan20,在sw2交换机中同样操作(按拓扑区域标注出来的接口添加),并在PC机中添加IP地址(同样按拓扑操作区标注出来的添加),如图:
选择sw1交换机,输入configure terminal进入全局模式,输入no ip routing关闭路由功能(因为我们是路由设备改的交换设备,所以我们就要关闭路由功能),然后选择SW2交换设备同样配置,这里我就不在截图。
选择SW1交换机设备,在全局模式中输入vlan 10,20进行配置vlan10、vlan20,然后输入exit退出vlan,输入命令do show vlan-switch brief查看vlan,下面就会显示我们添加的vlan10、vlan20(选择SW2交换设备同样配置,这里我就不在截图)。
在sw1交换机配置界面以全局模式输入命令interface fastethernet1/0进入f1/0接口模式,输入命令switch mode access进入链路接入模式,输入命令switch access vlan 10接口接入vlan 10,输入exit退出接口模式回到全局模式,继续输入interface fastethernet1/1进入f1/1接口模式,,输入命令switch mode access进入链路接入模式,输入命令switch access vlan 20接口接入vlan 20,输入命令do show vlan-switch brief查看valn列表,接口f1/0、f1/1成功接入vlan10、vlan20。在sw2交换机配置界面同样操作,不在截图。
这里我先在sw2交换机中配置trunk,输入exit退出接口模式,输入interface fastethernet1/2,进入f1/2接口,输入命令switchport mode trunk配置接口为trunk模式,输入switchport trunk encapsulation dot1q配置trunk协议(这里我用了两个?来提示命令符),输入exit退出接口模式,输入命令do show interface fastethernet1/2 switchport 查看f1/2接口配置,在这里我们可以看到接口模式配置为trunk模式,并且可以通过所有vlan。配置完成后在sw1中重复配置,这里不在截图。
5)、配置完成交换机后,我们来配置PC1、PC2、PC3、PC4主机IP地址,PC1配置IP地址为192.168.10.10,PC2配置IP地址为192.168.10.20,PC3配置IP地址为192.168.10.30,PC4配置IP地址为192.168.10.40,如图:
选择PC1主机,进入配置界面,输入命令 ip 192.168.10.10配置IP地址为192.168.10.10,稍等下面会显示配置信息(PC2、PC3、PC4同样操作,就不再截图)。
6)、配置完成后,我们通过ping命令来验证我们的配置结果,如图:
我们在PC1中用ping命令来连接PC3成功建立通信,当用PC2中连接时无法通信,因为我们通过vlan的划分将PC1与PC3设置在同样vlan,并通过配置trunk跨交换机连接PC3,所以PC1和PC3正常通信,虽然和PC2处于同一交换机,但通过vlan的划分分隔开与PC2的广播域,所以PC1与PC2无法建立通信。
我们在PC2中用ping命令成功与PC4建立连接,与PC3无法通信,理论与上面是相同。
通过这个实验我们通过配置trunk使处于不同交换机中的相同vlan成功通信。