1.         简介:
1)         VLAN:
VLAN(Virtual Local Area Network)的中文名为”虚拟局域网”。VLAN是一种将局域网设备从逻辑上划分成一个个网段,从而实现虚拟工作组的新兴数据交换技术。
2)         Trunk:
Trunk是一种封装技术,它是一条点到点的中继链路,链路的两端可以都是交换机,也可以是交换机和路由器,还可以是主机和交换机或路由器。基于端口汇聚功能,允许交换机与交换机、交换机与路由器、主机与交换机或路由器之间通过两个或多个端口并行连接同时传输以提供更高宽带、更大吞吐量,大幅度提供整个网络能力。
3)         VTP:
VTP(VLAN Trunking Protocol)是VLAN中继协议,也被称为虚拟局域网干道协议。它是思科私有协议。作用是十几台交换机在企业网中,配置VLAN工作量大,可以使用VTP协议,把一台交换机配置成VTP Server,其余交换机配置成VTP Client,这样可以使他们互相学习。
三种模式:
服务器模式(Server)
提供VTP消息(包括VLAN ID和名字信息),学习相同域名的VTP消息,转发相同域名的VTP消息,可以添加、删除和更改VLAN,VLAN信息写入NVRAM。
客户机模式(Client)
请求VTP消息(包括VLAN ID和名字信息),学习相同域名的VTP消息,转发相同域名的VTP消息,不可以添加、删除和更改VLAN,VLAN信息不会写入NVRAM。
透明模式(Transparent)
不提供VTP消息,不学习VTP消息,转发VTP消息,可以添加、删除和更改自身VLAN,只在自身上有效的VLAN信息写入NVRAM。
2.         拓扑图:

3.         实验步骤:
1)         检测:
交换机检测:
在实际情况中,首先要查看下交换机原来的配置,如果原来有配置,需要把交换机的配置清除干净,重启交换机,使用如下命令:
S1#delete flash:vlan.dat          清除VLAN信息
S1#erase startup-config          清除交换机配置文件
S1#reload                      重启交换机
交换机中的VLAN信息存放在单独的文件中flash:vlan.dat,因此如果要完全清除交换机的配置,除了使用”erase starting-config”命令外,还要使用”delete flash:vlan.dat”命令把VLAN数据删除。
线路检测:
把线路连完以后,网络应该都是通的。
PC-1 ping PC-3:

PC-2 ping PC-4:

PC-2 ping PC-5:

2)         设置Trunk:
SW1:

使用switch mode trunk把SW1上的f0/1设置成Trunk模式。
>SW2:

同样把SW2上的f0/1,f0/2这2个接口设置成Trunk模式。
int range f0/1 -2表示进入f0/1到f0/2接口配置模式,如果要配置f0/1到f0/10的接口,可以使用int range f0/1 -10,注意”-”前的空格。
SW3:

最后把SW2上的f0/1这个接口设置成Trunk模式。
特别注意:
在实际操作中,可能还需要配置trunk链路的封装类型,同一链路的两端封装要相同。有的交换机,例如2950,只能封装dot1q,因此无需执行命令修改。
SW1(config-if)switchport trunk encanpsulation dot1q
若要修改,使用上面的命令来修改封装为802.1q类型。封装类型分为ISL与802.1q,其中ISL为思科独有,802.1q为共有。
3)         开启VTP:
要保证VTP的正常学习,需要:①在同一个域名内   ②使用同样的密码,其密码目的是为了安全,防止不明身份的交换机加入到域中
SW1

vtp mode server把SW1设置为服务器模式(Server)
vtp domain office 设置VTP域名为office
vtp password cisco 设置VTP密码为cisco
SW2

设置SW2为透明模式(Transparent),并使用同样的域名与密码。
>SW3

设置SW3为客户机模式(Client),并使用同样的域名与密码。
4)         创建VLAN:
在SW1上创建VLAN,由于上面开启了VTP学习功能,SW3为客户机模式(Client)将会学习到SW1上的VLAN,而SW2使用的是透明模式(Transparent),将不会学习SW1上的VLAN。
创建vlan10:
在SW1上创建

vlan 2 创建编号为2号的VLAN,VLAN编号的范围为1~1001
name vlan10 设置此VLAN的名字为vlan10
创建vlan20:
在SW1上创建

使用同样的方法创建vlan20
>SW2上VLAN学习:

使用show vlan查看SW2上的VLAN信息,VLAN1、VLAN1002-1005是系统默认有的VLAN,不能删除,也不能改名。可以看到没有名为vlan10与vlan20的信息,说明了透明模式(Transparent)不会学习VLAN。
SW3上VLAN学习:

在SW3上查看VLAN信息,可以看到客户机模式(Client)学习到了vlan10与vlan20,编号分别为2与3,要注意的是VTP只会学习VLAN而不会学习划分在VLAN中的接口。
5)         把接口划分在VLAN中:
>f0/2与f0/5划分在vlan10上:

上面介绍了同时配置连续接口的方法,现在介绍如何同时配置不连续的多端口
int range f0/2,f0/5 同时配置不连续的多端口,以逗号隔开
switch mode access 接口改为access模式,说明该端口是用于连接计算机的
switch access vlan 2 把此端口加入到编号为2的VLAN中,也就是vlan10
f0/3与f0/4划分在vlan20上:

用同样的方法把f0/3与f0/4添加进vlan20
查看

把端口划分好后,在SW3上查看VLAN信息,可以在vlan10与vlan20后面看到刚刚划分好的端口。默认时,所有交换机接口都在VLAN 1上。
删除VLAN,使用”no vlan 2”命令即可。删除某一VLAN后,要记得把该VLAN上的端口重新划分到别的VLAN上,否则将导致端口的“消失”。
6)         检测VLAN:
PC-1 ping PC-3:

由于PC-1与PC-3不属于同一个VLAN,所以相互之间不能通信
>PC-2 ping PC-3:

PC-2 ping PC-1:

PC-2与PC-1属于同一VLAN,所以通信成功
PC-1 ping PC-5:

4.         相关知识:
1)         二种链路类型:
>Access:
Access类型的端口只能属于1个VLAN,一般用于连接计算机的端口。
>Trunk:
Trunk类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口。
2)         VTP学习:
VTP并不只是客户机向服务器学习,也有可能服务器向客户机学习,具体谁跟谁学,根据VTP的修订号来看,修订号低的向修订号高的学。
使用show vtp status来查看VTP信息:

1-8行分别为:①该VTP支持版本2、②修订号、③支持最大的VLAN数、④VLAN数量、⑤VTP模式、⑥VTP域名⑦VTP修剪是否启动⑧VTP版本2没有启动,现在是版本1
图中红色方框内的修订号,当修改、创建或者删除VLAN时,此数字将在原先的基础上加1。因此当交换机拿去维修后,再使用时特别要注意此修订号,以免因VTP学习错误而造成网络瘫痪。
3)         配置VTP修剪与VTP版本2:
VTP修剪:
VTP修剪默认是关闭的,在交换机发送VTP更新报文的时候会向交换机上所有的Trunk端口去发送,因此这些更新会占用一部分带宽,所以启用VTP修剪是将一些没有必要的流量修剪掉。
如:

在上图中,SW2上有vlan10,而SW3与SW4上没有vlan10,当SW1上VTP更新时,会经过Trunk向SW2、SW3、SW4泛洪,而VTP更新报文携带vlan10的信息向SW3、SW4去泛洪毫无意义,因为SW3与SW4上没有vlan10的用户,修剪就是用来解决这种毫无意义的泛洪。VTP修剪只是从逻辑上将待定VLAN隔离,并不是从物理上隔离,一旦SW3与SW4有了vlan10的用户,它们将会自动收到VTP更新报文。
启动修剪:
SW1(config)#vtp pruning
使用以上命令开启VTP修剪。
查看:

当开启修剪后,使用show vtp status查看结果中VTP Pruning Mode(上图红色方框)冒号后面的值为Enabled。
>VTP版本2:
版本1与版本2区别:
在版本1中透明模式的交换机在VTP转发信息给其他交换机的时候,先检查VTP的版本号和域名是否与本机匹配,匹配才转发该消息,不匹配则不进行转发。VTP版本2在转发VTP信息时,不检查版本号和域名。
版本2支持令牌环交换和令牌环VLAN。
开启版本2:

查看:

第一行:VTP Version      :2指的是VTP支持版本2。
>注意:
VTP修剪和VTP版本只需要在一个VTP Server进行即可,其他Server或Client会自动跟着更改。VTP修剪是为了防止不必要的流量从Trunk链路上通过,通常需要启动。
4)         Native VLAN:

配置Native VLAN,把它改为VLAN 2了,默认是VLAN 1。在Trunk链路上,数据帧会根据ISL或者802.1Q被重新封装,然而如果是Native vlan的数据,是不会被重新封装就在Trunk链路上传输。链路两端的Native vlan要是一样的。如果不一样,交换机会提示出错。
查看使用show interface f0/2 trunk命令。
5)         DTP配置:
简介:
DTP是思科动态中继协议,是VLAN协议组中思科专有协议,主要用于协商两台设备间链路上的中继及中继封装类型。
配置命令:
和DTP配置有关的有以下命令,这些命令不能任意组合:
switchport trunk encapsulation {negotiate|isl|dot1q}
配置Trunk链路上的封装类型,可以是negotiate双方协商确定,也可以是指定的isl或者dot1q
switchport nonegotiate
Trunk链路上不发送协商包,默认是发送的
switch mode {trunk|dynamic desirable|dynamic auto}
trunk:
这个设置将端口置为永久trunk模式,封装类型由switchport trunk encapsulation命令决定
dynamic desirable:
端口主动变为trunk,如果另一端为negotiate、dynamic desirable、dynamic auto将成功协商
dynamic auto:
被动协商,如果另一端为negotiate、dynamic desirable将成功协商。
实例:
把接口配置为negotiate,使用:
SW1(config-if)#switchport trunk encapsulation { isl | dot1q }
SW1(config-if)#switchport mode trunk
SW1(config-if)#switchport negotiate
把接口配置为desirable,使用:
SW1(config-if)#switchport mode dynamic desirable
SW1(config-if)#switchport trunk encapsulation { negotiate | isl | dot1q }
把接口配置为auto,使用:
SW1(config-if)#switchport mode dynamic auto
SW1(config-if)#switchport trunk encapsulation { negotiate | isl | dot1q }
注意:
由于交换机有缺省配置,进行以上配置后,使用”show running”可能看不到我们配置的命令。默认时catalyst 2950和3550的配置是desirable模式;而catalyst 3560是auto模式,所以两台3560交换机之间不会自动形成Trunk,3560交换机和2950交换机之间却可以形成Trunk。
6)         跨越交换机的VLAN:

如果不开启VTP,手动配置上图的网络,不仅仅需要在交换机SW2与SW3上都配置vlan10与vlan20,在SW1上也需要配置vlan10与vlan20,否则网络是不通的,因为从PC-1发送数据包经过SW2时,由于不是默认VLAN(即native vlan),SW2会在数据包中做一个标记(TAG),以使其它交换机识别该数据包属于哪一个VLAN,这样,其它交换机收到这样一个数据包后,只会将该数据包转发到标记中指定的VLAN去,从而完成了跨越交换机的VLAN内部数据传输,而SW1上没有vlan10,当数据包过来时,SW1看不懂SW2打标记以后的数据包,从而造成网络不通。所以解决此问题的方法就是在SW1上创建vlan10与vlan20。