我们通过上图来了解trunk:
在SW1上创建了三个VLAN,分别为vlan 10,vlan 20,vlan 30。
在SW2上创建了两个vlan,分别为vlan 10,vlan 20.
我们要实现vlan10之间,vlan20之间的通信,如果没有trunk技术的话,那我们就需要在SW1和SW2之间,再增加一条链路来实现通信。这样的话,端口利用率太低。而我们的交换机端口有两种模式access和trunk,一般我们在连接PC时都选用access模式,在设备之间互联时选用trunk模式。
access模式:
SW1(config)#interface f0/1 //进入f0/1端口
SW1(config-if)#switchport mode access //将端口设置为access(访问模式)
SW1(config-if)#switchport access vlan 10 //将f0/1加入到vlan 10
将access模式的端口加入到某一个vlan之中的话,那么这个端口就只能用来传输这一个vlan的数据。
trunk模式:
SW1(config)#interface f0/7 //进入f0/7端口
SW1(config-if)#switchport mode trunk //将f0/7端口设置为trunk模式
SW2(config)#interface f0/7 //进入f0/7端口
SW2(config-if)#switchport mode trunk //将f0/7端口设置为trunk模式
上图中的交换机之间的链路我们就称为trunk链路,相当于这条链路是共享的,它可以传输多个vlan的数据,不仅仅只为为某一个vlan服务。这样就可以实现vlan10之间 ,vlan20之间的正常通信。
ps:三层交换机端口设置trunk模式,需进行封装。
配置命令:
SW3(config)#interface g0/1
SW3(config-if)#switchport trunk encapsulation dot1q
SW3(config-if)#switchport mode trunk
为什么要进行封装?
dot1q为国际通用的trunk封装协议,所以各个厂家的设备都需要遵循这个公有标准。
但是有些厂家开发了自己设备的私有封装协议,例如思科的ISL封装协议。思科与思科之间的设备既可以使用公有的dot1q,也可以使用其私有的ISL封装协议。但是思科与其他厂商之间,就只能使用公有的dot1q协议来进行封装。
原文地址:http://13399301.blog.51cto.com/13389301/1975348