21-交换技术——VTP技术

1. VTP协议

VTP协议(VLAN Trunking Protocol)是思科私有的一种协议,通常用于交换机设备管理VLAN。

部署了VTP协议的一个或多个服务器节点在创建、修改、删除VLAN时,这些操作的VLAN信息将会通过Trunk链路同步到其他的交换机,使所有部署了VTP协议的交换机保持相同的VLAN信息。

21-交换技术——VTP技术_第1张图片

上图就很好的解释了VTP协议的工作原理,以创建VLAN为例,当部署VTP技术后,Server节点创建了VLAN10/20/30,这些VLAN信息将会同步到所有其他的Client节点中,同理,Server节点的修改,删除VLAN等其它操作都会同步。

 

需要注意的是,VTP被组织管理成域 (VTP  domain),处于相同域的交换机之间会共享VLAN信息,在部署VTP协议之前,服务器节点和客户端节点之间的链路必须为Trunk链路(因为VLAN信息的同步是基于Trunk链路的)。另外,在交换机上部署VTP协议时可以选择服务器和客户端两种模式:

  1. 服务器(server)模式: 服务器节点上的所有创建、删除、修改等操作都会通告给其他交换机,默认情况下交换机都是服务器模式,每个VTP域中必须至少有一个服务器节点。
  2. 客户端(client)模式: 客户端节点上不允许创建、删除、修改操作,但客户端会接收来自其他交换机的VTP通告(VLAN信息),并修改自己的VLAN信息。

 

2. VTP协议部署

了解VTP协议的工作原理后,接下来就是做动手做实验了。

21-交换技术——VTP技术_第2张图片

首先,配置Server节点和Client节点的链路为Trunk链路,这里略过......

 

进入SW3交换机控制台,部署VTP协议成为Server节点,设置VTP管理域为TEST,密码为123456,配置如下:

SW3#
SW3#vlan database
SW3(vlan)#vtp server
Device mode already VTP SERVER.
SW3(vlan)#vtp domain TEST
Changing VTP domain name from NULL to TEST
SW3(vlan)#vtp password 123456
Setting device VLAN database password to 123456.
SW3(vlan)#exit
APPLY completed.
Exiting....
SW3#

 

通过show vtp status命令查看SW3交换机的vtp信息,SW3已经成为了Server节点,vtp信息如下:

SW3#show vtp status
 
VTP Version                     : 2
//vtp的配置版本信息
Configuration Revision          : 0
Maximum VLANs supported locally : 256
Number of existing VLANs        : 5
//表示成为Server节点了
VTP Operating Mode              : Server
//域名为TEST
VTP Domain Name                 : TEST
VTP Pruning Mode                : Disabled
VTP V2 Mode                     : Disabled
VTP Traps Generation            : Disabled
MD5 digest                      : 0x28 0xC9 0x91 0xAC 0x29 0xD6 0x9D 0x9C 
Configuration last modified by 0.0.0.0 at 0-0-00 00:00:00
Local updater ID is 0.0.0.0 (no valid interface found)
SW3#

Configuration Revision:表示VTP配置版本号,由于Server节点此时没有VLAN信息,所以VTP配置版本号默认为0,每次VLAN信息的变动都会增加1,例如,创建,修改,删除等操作都会使vtp配置的版本号加1,配置版本号低的交换机会向配置版本号高的交换机自动同步VLAN信息。

Number of existing VLANs:本地存在的VLAN数目,因为此时还没有自定义创建的VLAN信息,所以只有系统默认的 5个VLAN信息,即VLAN1和1002到1005,并且这些系统VLAN是不能修改和删除。

VTP Domain Name:VTP域名,注意大小写敏感

VTP Operating Mode:VTP操作模式,一般有Server、Client、Transparent三种,默认情况下所有交换机都是Server模式。

 

 

SW1交换机部署vtp协议成为client节点并查看vtp信息,配置如下:

SW1#vlan database
SW1(vlan)#vtp client
Setting device to VTP CLIENT mode.
SW1(vlan)#vtp domain TEST
Changing VTP domain name from NULL to TEST
SW1(vlan)#vtp password 123456
Setting device VLAN database password to 123456.
SW1(vlan)#exit
In CLIENT state, no apply attempted.
Exiting....
SW1#

//show命令查看SW1交换机的vtp信息
SW1#show vtp status 
VTP Version                     : 2
//client节点的vtp配置版本信息
Configuration Revision          : 0
Maximum VLANs supported locally : 256
Number of existing VLANs        : 5
//SW1交换机已经成为了client节点
VTP Operating Mode              : Client
VTP Domain Name                 : TEST
VTP Pruning Mode                : Disabled
VTP V2 Mode                     : Disabled
VTP Traps Generation            : Disabled
MD5 digest                      : 0x28 0xC9 0x91 0xAC 0x29 0xD6 0x9D 0x9C 
Configuration last modified by 0.0.0.0 at 0-0-00 00:00:00
SW1#

 

 

SW2交换机部署vtp协议成为client节点并查看vtp信息,配置如下:

SW2#vlan database
SW2(vlan)#vtp client
Setting device to VTP CLIENT mode.
SW2(vlan)#vtp domain TEST
Changing VTP domain name from NULL to TEST
SW2(vlan)#vtp password 123456
Setting device VLAN database password to 123456.
SW2(vlan)#exit
In CLIENT state, no apply attempted.
Exiting....
SW2#
SW2#

//show命令查看SW2交换机的vtp信息
SW2#show vtp status 
VTP Version                     : 2
Configuration Revision          : 0
Maximum VLANs supported locally : 256
Number of existing VLANs        : 5
VTP Operating Mode              : Client
VTP Domain Name                 : TEST
VTP Pruning Mode                : Disabled
VTP V2 Mode                     : Disabled
VTP Traps Generation            : Disabled
MD5 digest                      : 0x28 0xC9 0x91 0xAC 0x29 0xD6 0x9D 0x9C 
Configuration last modified by 0.0.0.0 at 0-0-00 00:00:00
SW2#

 

 

现在Server节点上创建VLAN10,VLAN20,VLAN30,并使同一域(domain)下的所有部署了VTP协议的交换机学习到Server节点的VLAN信息:

SW3#
SW3#vlan database 
SW3(vlan)#vlan 10 name VLAN10
VLAN 10 added:
    Name: VLAN10
SW3(vlan)#vlan 20 name VLAN20
VLAN 20 added:
    Name: VLAN20
SW3(vlan)#vlan 30 name VLAN30
VLAN 30 added:
    Name: VLAN30
SW3(vlan)#vlan 40 name VLAN40
VLAN 40 added:
    Name: VLAN40
SW3(vlan)#exit
APPLY completed.
Exiting....
SW3#

当exit命令退出,这些配置信息就会应用,然后Server节点就会通过Trunk链路把这些变动的VLAN信息通告给所有其他的Client节点的交换机。

 

 

 

当Server节点创建多个VLAN信息后,vtp配置版本号就会加1,此时我们再查看其他client节点的vtp信息:

SW1#show vtp status 
VTP Version                     : 2
//vtp配置信息版本号加1
Configuration Revision          : 1
Maximum VLANs supported locally : 256
//本地的VLAN数目为9
Number of existing VLANs        : 9
VTP Operating Mode              : Client
VTP Domain Name                 : TEST
VTP Pruning Mode                : Disabled
VTP V2 Mode                     : Disabled
VTP Traps Generation            : Disabled
MD5 digest                      : 0x34 0x8E 0xB7 0x6A 0x26 0x75 0x0F 0x27 
Configuration last modified by 0.0.0.0 at 3-1-02 00:10:35
SW1#

 

 

因为Server节点的vtp版本号更高,所以其他Client节点都会从Server节点同步VLAN信息,Client1的VLAN信息如下:

SW1#show vlan-switch brief 

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Fa0/1, Fa0/2, Fa0/3, Fa0/4
                                                Fa0/5, Fa0/6, Fa0/7, Fa0/8
                                                Fa0/9, Fa0/10, Fa0/11, Fa0/12
                                                Fa0/13, Fa0/14, Fa0/15
10   VLAN10                           active    
20   VLAN20                           active    
30   VLAN30                           active    
40   VLAN40                           active    
1002 fddi-default                     active    
1003 token-ring-default               active    
1004 fddinet-default                  active    
1005 trnet-default                    active    
SW1#

我们发现SW1交换机学习到了SW3交换机的VLAN信息,简单来理解就是:当其他Client节点发现是同一个域下,并且密码都是正确的,就会把这些更新的VLAN信息接收。

 

 

 

Client2的VLAN信息如下:

SW2#show vlan-switch brief 

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Fa0/1, Fa0/2, Fa0/3, Fa0/4
                                                Fa0/5, Fa0/6, Fa0/7, Fa0/8
                                                Fa0/9, Fa0/10, Fa0/11, Fa0/12
                                                Fa0/13, Fa0/14, Fa0/15
10   VLAN10                           active    
20   VLAN20                           active    
30   VLAN30                           active    
40   VLAN40                           active    
1002 fddi-default                     active    
1003 token-ring-default               active    
1004 fddinet-default                  active    
1005 trnet-default                    active    
SW2#

部署VTP协议后,同一域(domain)下的交换机实现了VLAN信息同步。

 

3. VTP协议的注意事项

1. 作为Server节点来说,它具备创建,修改,删除VLAN的权限;而Client节点正好相反,Client节点具备学习,转发权限。

如果你想在Client节点上删除vlan是无法完成的:

Client2(vlan)#
Client2(vlan)#no vlan 10
Deleting VLAN 10...
Client2(vlan)#exit
In CLIENT state, no apply attempted.
Exiting....
Client2#
Client2#show vlan-swi
Client2#show vlan-switch brief

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Fa0/1, Fa0/2, Fa0/3, Fa0/4
                                                Fa0/5, Fa0/6, Fa0/7, Fa0/8
                                                Fa0/9, Fa0/10, Fa0/11, Fa0/12
                                                Fa0/13, Fa0/14, Fa0/15
10   VLAN10                           active    
20   VLAN20                           active    
30   VLAN30                           active    
1002 fddi-default                     active    
1003 token-ring-default               active    
1004 fddinet-default                  active    
1005 trnet-default                    active    
Client2#

上面的提示中已经明确指出client节点是无法删除vlan信息的。

 

 

 

2. 无论是Server节点还是Client节点,域名和密码必须一致,否则无法实现同步。例如在Server节点修改域名为HAHA并删除vlan 40,配置如下:

SW3#vlan database 
//修改Server的域名为HAHA
SW3(vlan)#vtp domain HAHA
Changing VTP domain name from TEST to HAHA
SW3(vlan)#
//删除了vlan 40
SW3(vlan)#no vlan 40
Deleting VLAN 40...
SW3(vlan)#exit
APPLY completed.
Exiting....
SW3#

查看Client节点,vtp信息如下:

SW1#show vtp status 
VTP Version                     : 2
Configuration Revision          : 2
Maximum VLANs supported locally : 256
Number of existing VLANs        : 9
VTP Operating Mode              : Client
VTP Domain Name                 : TEST
VTP Pruning Mode                : Disabled
VTP V2 Mode                     : Disabled
VTP Traps Generation            : Disabled
MD5 digest                      : 0x36 0x56 0x1A 0xE2 0x7A 0x14 0x16 0xED 
Configuration last modified by 0.0.0.0 at 3-1-02 00:04:06
SW1#

由于Server和Client并不在同一域下,因此Client并未学习到Server的VLAN信息,还是保持原来的VLAN信息

 

 

 

3. 一般每次创建,修改,删除VLAN等这些操作都会使版本号加1,版本号低的设备会向版本号高的设备学习VLAN信息(注意:Server也可以向Client学习)

//Server节点创建了VLAN40
SW3#vlan database 
SW3(vlan)#vlan 40 name VLAN40
VLAN 40 added:
    Name: VLAN40
SW3(vlan)#exit
APPLY completed.
Exiting....
SW3#

//通过show命令查看Server节点,此时vtp配置版本信息增加为2
SW3#show vtp status 
VTP Version                     : 2
Configuration Revision          : 2
Maximum VLANs supported locally : 256
Number of existing VLANs        : 9
VTP Operating Mode              : Server
VTP Domain Name                 : TEST
VTP Pruning Mode                : Disabled
VTP V2 Mode                     : Disabled
VTP Traps Generation            : Disabled
MD5 digest                      : 0x36 0x56 0x1A 0xE2 0x7A 0x14 0x16 0xED 
Configuration last modified by 0.0.0.0 at 3-1-02 00:04:06
Local updater ID is 0.0.0.0 (no valid interface found)
SW3#

 

show命令查看Client节点,因为Client的vtp配置版本号比Server的低,所以Client会从Server学习新的VLAN信息,新的vtp配置版本号。

SW1#show vtp status 
VTP Version                     : 2
Configuration Revision          : 2
Maximum VLANs supported locally : 256
Number of existing VLANs        : 9
VTP Operating Mode              : Client
VTP Domain Name                 : TEST
VTP Pruning Mode                : Disabled
VTP V2 Mode                     : Disabled
VTP Traps Generation            : Disabled
MD5 digest                      : 0x36 0x56 0x1A 0xE2 0x7A 0x14 0x16 0xED 
Configuration last modified by 0.0.0.0 at 3-1-02 00:04:06
SW1#

 

4. VTP数据分组

Server和Client之间进行VLAN信息同步时会发送VTP数据分组,一般会有以下几种:

  1. 汇总通告
  2. 通告请求
  3. 子集通告

 

汇总通告分组如下所示:

21-交换技术——VTP技术_第3张图片

对于汇总通告来说,该类型的分组主要是以每周期5分钟间隔向其他交换机通告本地的VTP信息,包括域,版本号这些信息,类似于之前学习的路由协议中的hello分组。

 

 

通告请求,即Client或者Server发起的触发请求,通常是用于在初始化的时候请求VLAN信息的,这种数据分组很少看到的。

 

 

 

当然,在这里我们重点关注子集通告这种类型的分组。如下所示:

21-交换技术——VTP技术_第4张图片

可以看到在子集通告分组中携带了多个VLAN的信息

 

5. 透明模式

一般部署了VTP协议后,Client设备向Server设备学习,这意味着Client设备的版本号比Server设备要低。也就是说VTP协议是基于版本号的高低来决定向谁学习的。

现在假设这么一种情况:在现有的网络环境中,新加进来一台Client设备,但是Client的版本号比Server要高,那么就会出现Server向Client学习这样的情况,导致现有的网络VLAN信息被清空,显然这不是我们期望的,为了避免出现这种情况,Cisco提供了一种透明模式。

 

开启了透明模式后,新加入的交换机设备的版本号会设置为0,虽然可以创建,删除修改VLAN,但是无法与其他设备进行交互学习。

 

 

开启透明模式命令:

//进入vlan数据库    
vlan database
//设置为透明模式
vtp transparent

21-交换技术——VTP技术_第5张图片

实验环境:首先把所有设备的链路设置为Trunk链路,并部署VTP协议,设置SW1和SW2为Client模式,SW3为Server模式并创建VLAN10,20,30......

 

把SW1设备的接口全部关掉:

SW1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
SW1(config)#int ran
SW1(config)#int range f0/0 , f0/1
SW1(config-if-range)#sh
SW1(config-if-range)#shutdown

 

然后设置SW1设备为Server模式:

SW1#vlan database 
SW1(vlan)#vtp Server 
Setting device to VTP SERVER mode.
SW1(vlan)#vtp domain TEST
Domain name already set to TEST .
SW1(vlan)#vtp password 123456
Password already set to 123456.
SW1(vlan)#exit
APPLY completed.
Exiting....
SW1#

 

然后SW1成为Server后不断地修改VLAN信息:

SW1#
SW1#vlan database 
SW1(vlan)#vlan 100
VLAN 100 added:
    Name: VLAN0100
SW1(vlan)#vlan 200
VLAN 200 added:
    Name: VLAN0200
SW1(vlan)#exit
APPLY completed.
Exiting....
SW1#
SW1#vlan database 
SW1(vlan)#vlan 300
VLAN 300 added:
    Name: VLAN0300
SW1(vlan)#exit
APPLY completed.
Exiting....
SW1#
SW1#vlan database 
SW1(vlan)#vlan 400
VLAN 400 added:
    Name: VLAN0400
SW1(vlan)#exit
APPLY completed.
Exiting....

 

此时再查看SW1设备,发现版本号已经增加到4了:

SW1#show vtp status 
VTP Version                     : 2
Configuration Revision          : 4
Maximum VLANs supported locally : 256
Number of existing VLANs        : 12
VTP Operating Mode              : Server
VTP Domain Name                 : TEST
VTP Pruning Mode                : Disabled
VTP V2 Mode                     : Disabled
VTP Traps Generation            : Disabled
MD5 digest                      : 0x21 0x98 0xDC 0x7F 0x0E 0xB8 0xCA 0xDB 
Configuration last modified by 0.0.0.0 at 3-1-02 00:15:53
Local updater ID is 0.0.0.0 (no valid interface found)
SW1#

 

SW3作为server,vtp信息并没有发生改变:

SW3#show vtp status 
VTP Version                     : 2
Configuration Revision          : 1
Maximum VLANs supported locally : 256
Number of existing VLANs        : 8
VTP Operating Mode              : Server
VTP Domain Name                 : TEST
VTP Pruning Mode                : Disabled
VTP V2 Mode                     : Disabled
VTP Traps Generation            : Disabled
MD5 digest                      : 0xAA 0xB5 0xA0 0xB5 0xDD 0x27 0xAA 0x4F 
Configuration last modified by 0.0.0.0 at 3-1-02 00:07:23
Local updater ID is 0.0.0.0 (no valid interface found)
SW3#

 

 

然后把SW1设备设置为Client模式,并打开其接口,模拟新加入的设备:

SW1#vlan database 
SW1(vlan)#vtp client 
Setting device to VTP CLIENT mode.
SW1(vlan)#exit
In CLIENT state, no apply attempted.
Exiting....
SW1#
SW1#conf t 
Enter configuration commands, one per line.  End with CNTL/Z.
SW1(config)#int range f0/0 , f0/1
SW1(config-if-range)#no shutdown 
SW1(config-if-range)#exit

 

 

再次查看SW3设备,发现Server居然向新加入的Client学习vtp信息,导致自己原有的vtp信息被覆盖了:

SW3#show vtp status 
VTP Version                     : 2
Configuration Revision          : 4
Maximum VLANs supported locally : 256
Number of existing VLANs        : 12
VTP Operating Mode              : Server
VTP Domain Name                 : TEST
VTP Pruning Mode                : Disabled
VTP V2 Mode                     : Disabled
VTP Traps Generation            : Disabled
MD5 digest                      : 0x21 0x98 0xDC 0x7F 0x0E 0xB8 0xCA 0xDB 
Configuration last modified by 0.0.0.0 at 3-1-02 00:15:53
Local updater ID is 0.0.0.0 (no valid interface found)
SW3#

 

 

为了避免发生这种情况,我们需要在新加入的SW1设备中设置为透明模式:

SW1#vlan database 
SW1(vlan)#vtp transparent 
Setting device to VTP TRANSPARENT mode.
SW1(vlan)#exit
APPLY completed.
Exiting....

另外,如果交换机设备设置为透明模式后,将不会同步和被同步其他节点的VLAN数据库信息。

 

 

6. VTP裁剪

关于VTP裁剪:用于修剪掉不需要广播流量,一般是在Server端开启prune功能。

 

以SW3为例,VTP裁剪配置如下:

SW3#vlan database 
//在server端开启VTP裁剪    
SW3(vlan)#vtp pruning 
Pruning switched ON
SW3(vlan)#

 

查看SW3设备的状态:

SW3#show vtp status 
VTP Version                     : 2
Configuration Revision          : 5
Maximum VLANs supported locally : 256
Number of existing VLANs        : 12
VTP Operating Mode              : Server
VTP Domain Name                 : TEST
//Enabled表示开启了VTP裁剪技术
VTP Pruning Mode                : Enabled
VTP V2 Mode                     : Disabled
VTP Traps Generation            : Disabled
MD5 digest                      : 0x56 0xD9 0x23 0xD6 0x08 0x1F 0x00 0x86 
Configuration last modified by 0.0.0.0 at 3-1-02 00:32:37
Local updater ID is 0.0.0.0 (no valid interface found)
SW3#

另外,其他的Client设备也会学习到。

 

你可能感兴趣的:(CCNA修炼指南,VTP协议,计算机网络,交换机,VLAN,局域网)