在前面已经出现了很多次Trunk这个词汇,但并没有详细的进行解答。我们知道交换机的接口可以运行在接入模式(Access Mode)或者干道模式(Trunk Mode)。交换机接口所连接的链路也被相应地称为接入链路和trunk链路。在接入模式下,接口属于且仅属于一个VLAN。
隧道技术的用途
在前面已经出现了很多次Trunk这个词汇,但并没有详细的进行解答。我们知道交换机的接口可以运行在接入模式(Access Mode)或者干道模式(Trunk Mode)。交换机接口所连接的链路也被相应地称为接入链路和trunk链路。在接入模式下,接口属于且仅属于一个VLAN。
而Trunk(干道)是一种封装技术,它是一条点到点的链路,主要功能就是仅通过一条链路就可以连接多个交换机从而扩展已配置的多个VLAN,如图7-10所示。
同时trunk链路可以连接一台交换机或者路由器或者服务器(特殊网卡),还可以采用通过trunk技术和上级交换机级联的方式来扩展接口的数量,可以达到近似堆叠的功能,节省了网络硬件的成本。
提示:trunk链路不属于任何一个VLAN,它只是在网络中起到了管道的作用。Trunk承载的VLAN范围,默认下是1~1005,可以修改,但必须有1个Trunk协议。使用Trunk时,两台交换机连接接口上的协议要一致。配置为Trunk链路的接口,通常都是交换机上支持最大带宽的带宽口。
表7-6列出了和Trunk操作有关的命令。
表7-6 在基于IOS的交换机上配置trunk
步 骤 |
命 令 |
解 释 |
1 |
Switch#configure terminal |
进入全局配置模式 |
2 |
Switch(config)# interface interface-id |
进入要分配的接口 |
3 |
Switch(config-if)#switchport mode trunk |
将端口设置为trunk模式 |
3(1) |
Switch(config-if)#switchport mode dynamic desirable |
在仅支持802.1Q封装,但支持DTP功能的交换机上主动尝试转换为trunk模式 |
3(2) |
Switch(config-if)#switchport mode dynamic auto |
在仅支持802.1Q封装,但支持DTP功能的交换机上转换为trunk模式,由邻居接口决定 |
3(3) |
Switch(config-if)#switchport nonegotiate |
在仅支持802.1Q封装,但支持DTP功能的交换机上将接口永久设置为trunk模式,但禁止产生DTP帧 |
4 |
Switch(config-if)#switchport trunk encapsulation {isl | dot1q} |
配置接口是使用ISL或者802.1Q封装,两端链路必须采用相同的封装格式 |
5 |
Switch(config-if)#switchport trunk allowed vlan remove vlan-list |
要限制trunk传送的VLAN,从允许的VLAN 列表中去除某些VLAN |
6 |
Switch(config-if)#end (Ctrl+Z) |
返回到特权模式 |
7 |
Switch#show interface interface-id Switchport |
对配置进行检验。一定要加上Switchport关键字,否则会出现show interface输出结果 |
8 |
Switch#copy running-config startup-config |
保存配置 |
在默认状态下,Trunk接口允许所有VLAN的发送和接口传输。当然,根据需要,我们也可以将拒绝某些VLAN通过Trunk传输,从而将该VLAN限制与其他交换机的通信,或者拒绝某些VLAN对敏感数据的访问。需要注意的是,不能从Trunk中移除默认的VLAN1。
Switch(config-if)# switchport trunk allowed vlan {add | all | except | remove} vlan-list要限制trunk传送的VLAN,从允许的VLAN 列表中去除某些VLAN。如执行Switch2(config-if)#switchport trunk allowed vlan remove 10 之后,VLAN 10的将不被传递。
配置Trunk上允许的VLAN列表。使用add(添加)、all(所有)、except(除外)和remove(移除)关键字,可以定义允许在Trunk上传输的VLAN。VLAN列表既可以是一个VLAN,也可以是一个VLAN组。当同时指定若干VLAN时,不要在“,”或“-”间使用空格。
利用Trunk解决问题
当多台交换机同时被划分为两个或两个以上VLAN时,需要创建Trunk,使不同交换机之间的VLAN能够借助于一链路进行通信,否则,VLAN将被限制在交换机内,无法与其他交换机进行通信。默认状态下,第二层接口自动处于动态的Switchport模式,当相邻接口(即借助于双绞线或光纤连接在一起的两个接口)支持Trunk,并且配置为Trunk或动态匹配模式,该链接将作为Trunk。
1.建立Trunk隧道
工程师在排除问题的过程中,对Switch1的fastEthernet 0/2和Switch2的fastEthernet 0/1接口分别设置为Trunk,并在每一个接口都采用dot1q协议进行干道封装。
下面是Switch2的配置:
Switch2(config)# interface fastEthernet 0/1
Switch2(config-if)#Switchport mode trunk //设置接口为Trunk模式
Switch2(config-if)#Switchport trunk encapsulation dot1q //设置封装的类型
对于Switch1上的fastEthernet 0/2接口,请和上面的Switch2交换机配置相同的封装协议,这样可以避免很多Trunk不匹配的问题。
需要注意的是,Trunk 端口默认情况下会传送所有的VLAN的通信。要查看Trunk接口的信息和允许通过此接口的VLAN,可以使用命令:show interfas interface-id switchport输出结果:
Name: Fa0/1
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)
Trunking VLANs Enabled: ALL
Pruning VLANs Enabled: 2-1001
Protected: false
Unknown unicast blocked: disabled
Unknown multicast blocked: disabled
Voice VLAN: none (Inactive)
Appliance trust: none
2.测试连通性
工程师在调试完两边的Trunk封装之后,在Switch2交换机VLAN2中有一台主机Host A将IP地址设置为:192.168.0.1/24,在Switch1交换机的VLAN2中也有一台主机Host B其IP地址设置为:192.168.0.2/24,如果在连接Host A可以Ping通,对Host B的话,就可以证明隧道配置没有问题,并已经起到了作用。
但是如果在这两台交换机之中,两个工作站分别在不同的VLAN之中,则相互Ping对方的话,是不能通信的。
从而说明:不同交换机之间的工作站通过Trunk相连接,只有这些工作站在同一个VLAN之中才可以相互通信,而不同VLAN中的工作站是不能通过Trunk来通信的。VLAN技术将一个大的局域网划分为若干个小的虚拟子网,从而使每一个子网都成为一个单独的广播域,子网之间进行通信必须通过三层设备。当VLAN在交换机上划分后,不同VLAN间的设备就如同是被物理地分割。也就是说,连接到同一交换机、然而处于不同VLAN的设备,就如同被物理地连接到两个位于不同网段的交换机上一样,彼此之间的通信一定要经过路由设备;否则,他们之间将无法得知对方的存在,将无法进行任何通信。