目录

前言
VTP Mode
VTP Version
旧版本 VTP 的风险 (Version 1 及 2)
VTP Version 3
VTP Pruning

前言

VLAN Trunking Protocol (VTP) 是 Cisco 专利,主要用作 VLAN 管理。话说要在网络里加入一个新的 VLAN,需要在该 VLAN Traffic 所经过的每一只 Switch 创建此 VLAN。使用 VTP 则可以实施中央管理,只需在一只 VTP Server 新增 VLAN,VLAN 资讯就会自动发怖到其他 Switch,其他 Switch 就会新增此 VLAN。然而 VTP Version 1 及 Version 2 有点缺陷,有机会出现灾难性的後果,因此有经验的网管人员都会避免使用。直至 VTP Version 3,才把问题解决了,还加入了 MST 的管理。所以如果真的要应用 VTP 在网络中,应该使用 Version 3。

VTP Mode

要设定 VTP,Switch 之间必需是 Trunk Link (关於 Trunk Link 的设定请参考 Dynamic Trunking Protocol ),然後必需选最少一只 Switch 设定成 VTP Server,其他 Switch 就设定成 VTP Client,以後要加减 VLAN 就在 VTP Server 进行,其他 VTP Client 自动获得 VLAN 资讯。不过,VTP Server 与 VTP Client 要互相沟通,前题是 VTP Domain 与 VTP Password 必需相同。

现为以下网络作 VTP 设定。

undefined

先在 SW1 做 VTP Server 设定,由於 Switch 预设是 Server,因此只需设置 VTP Domain 及 Password。设定好後使用 show vtp statusshow vtp password 确认一下。

SW1(config)#vtp domain jannet
Changing VTP domain name from NULL to jannet
SW1(config)#vtp password ccie
Setting device VTP password to ccie
SW1(config)#end
SW1#show vtp status
VTP Version                     : 3 (capable)
Configuration Revision          : 0
Maximum VLANs supported locally : 1005
Number of existing VLANs        : 5
VTP Operating Mode              : Server
VTP Domain Name                 : jannet
VTP Pruning Mode                : Disabled (Operationally Disabled)
VTP V2 Mode                     : Disabled
VTP Traps Generation            : Disabled
MD5 digest                      : 0x2E 0x80 0x1A 0xBF 0x71 0xB4 0xFF 0x51
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)
VTP version running             : 1
SW1#show vtp password
VTP Password: ccie

然後在 SW2 做 VTP Client 设定,除了设 domain 和 password 之外,还要把 VTP mode 设定成 Client。

SW2(config)#vtp mode client
Setting device to VTP Client mode for VLANS.
SW2(config)#vtp domain jannet
Changing VTP domain name from NULL to jannet
SW2(config)#vtp password ccie
Setting device VTP password to ccie
SW2(config)#end
SW2#show vtp status
VTP Version                     : 3 (capable)
Configuration Revision          : 0
Maximum VLANs supported locally : 1005
Number of existing VLANs        : 5
VTP Operating Mode              : Client
VTP Domain Name                 : jannet
VTP Pruning Mode                : Disabled (Operationally Disabled)
VTP V2 Mode                     : Disabled
VTP Traps Generation            : Disabled
MD5 digest                      : 0x2E 0x80 0x1A 0xBF 0x71 0xB4 0xFF 0x51
VTP version running             : 1
SW1#show vtp password
VTP Password: ccie

现在先来理解一下 show vtp status 里比较重要的栏位意思,请留意不同版本的 IOS 所颢示的栏位顺序可能有所不同。

VTP Version

这是本机最高可支缓的 VTP 版本 (而不是现时执行中的版本),如图颢示如果是 3 的话,即支缓 1-3 版。

Configuration Revision

VLAN Database 的版本流水号,每次 Server 的 VLAN Database 有更新,此流水号就会加 1。

Maximum VLANs supported locally

本机最大支缓的 VLAN 数目,即最多只支缓 1005 个 VLAN,有点需要留意的就是虽然 VLAN 上限是 1005,但 Switch 所支缓的 Spanning Tree 也有上限,一般 Switch 只能容纳 128 或 256 个 Spanning Tree,所以如果 VLAN 数目超出 Spanning Tree 总数,多出的 VLAN 就无法执行 Spanning Tree 而造成 Loop,解决方法是改用 MST,在 MST 的编章再介绍。

Number of existing VLANs

本机现在 VLAN 总数。

VTP Operating Mode

说明本机是 Server、Client 还是 Transparent Mode,一会再说明。

VTP Domain Name

要 VLAN Database 同步,Server 跟 Client 的 Domain Name 必需相同。

VTP Pruning Mode

启动 Pruning 可以减少不必要的 Traffic,留待 VTP Pruning 部份再解说。

VTP version running

就是现时执行中的 VTP 版本。

Show vtp password 所颢示的就是一个明码的 password。

好了,现在只要在 Server 新增 VLAN,Client 就会收到来自 Server 的 VLAN 资讯,并新增该些 VLAN。

SW1(config)#vlan 11-15,1006
SW1(config-vlan)#end
% Applying VLAN changes may take few minutes.  Please wait...

SW1#sh vlan

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Et0/1, Et0/2, Et0/3, Et1/0
                                                Et1/1, Et1/2, Et1/3, Et2/0
                                                Et2/1, Et2/2, Et2/3, Et3/0
                                                Et3/1, Et3/2, Et3/3
11   VLAN0011                         active
12   VLAN0012                         active
13   VLAN0013                         active
14   VLAN0014                         active
15   VLAN0015                         active
1002 fddi-default                     act/unsup
1003 token-ring-default               act/unsup
1004 fddinet-default                  act/unsup
1005 trnet-default                    act/unsup
1006 VLAN1006                         active

SW2 自动增加了 VLAN 11 至 VLAN 15,却没有 VLAN 1006,因为 VTP Version 1 和 2 只支缓 VLAN 2 至 VLAN 1001,直至 Version 3 才支缓更多,这点需要注意。

SW2#sh vlan

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Et0/1, Et0/2, Et0/3, Et1/0
                                                Et1/1, Et1/2, Et1/3, Et2/0
                                                Et2/1, Et2/2, Et2/3, Et3/0
                                                Et3/1, Et3/2, Et3/3
11   VLAN0011                         active
12   VLAN0012                         active
13   VLAN0013                         active
14   VLAN0014                         active
15   VLAN0015                         active
1002 fddi-default                     act/unsup
1003 token-ring-default               act/unsup
1004 fddinet-default                  act/unsup
1005 trnet-default                    act/unsup

另外,VTP Client 不可以自行改动 VLAN,所有增减必需在 Server 进行。如果在 VTP Client 上改动 VLAN 会出现错误讯息。

SW2#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
SW2(config)#vlan 20
VTP VLAN configuration not allowed when device is in CLIENT mode.

除了 Server 和 Client,VTP 还有一个叫 Transparent Mode,Transparent 并不参与 VTP Domain 之中,Server 传来的 VLAN 资讯,它不会更新到自己的 VLAN Database,但却可把这些资讯传给其他 Switch,而 Transparent Mode 也可以自行改动 VLAN。现在我们在 Server 和 Client 之间加入一只 Switch 并把他设成 Transparent。

undefined

在 SW3 执行 vtp mode transparent 把它设定成 Transparent,并故意增加 VLAN 50。留意 SW3 并没有把 VTP Server 的 VLAN 新增到自己的 VLAN Database。

SW3(config)#vtp mode transparent
Setting device to VTP Transparent mode for VLANS.
SW3(config)#vlan 50
SW3(config-vlan)#end
% Applying VLAN changes may take few minutes.  Please wait...
 
SW3#sh vlan
 
VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Et0/0, Et0/1, Et0/2, Et0/3
                                                Et1/0, Et1/1, Et1/2, Et1/3
                                                Et2/0, Et2/1, Et2/2, Et2/3
                                                Et3/0, Et3/1, Et3/2, Et3/3
50   VLAN0050                         active
1002 fddi-default                     act/unsup
1003 token-ring-default               act/unsup
1004 fddinet-default                  act/unsup
1005 trnet-default                    act/unsup
 

现在,在 SW1 (VTP Server) 增加 VLAN 60,看看 SW2 (VTP Client) 能不能收到?

SW1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
SW1(config)#vlan 60

SW2 收到 VLAN 60,證明 SW3 有把 SW1 的 VLAN 资讯传过来。SW2 却没有 VLAN 50,因为 SW3 是 Transparent Mode 不会製造 VLAN 资讯,它不会把自己的 VLAN 50 传给其他 Switch。

SW2#sh vlan

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Et0/1, Et0/2, Et0/3, Et1/0
                                                Et1/1, Et1/2, Et1/3, Et2/0
                                                Et2/1, Et2/2, Et2/3, Et3/0
                                                Et3/1, Et3/2, Et3/3
11   VLAN0011                         active
12   VLAN0012                         active
13   VLAN0013                         active
14   VLAN0014                         active
15   VLAN0015                         active
60   VLAN0060                         active
1002 fddi-default                     act/unsup
1003 token-ring-default               act/unsup
1004 fddinet-default                  act/unsup
1005 trnet-default                    act/unsup

现在总结一下 3 种 VTP Mode 的分别:

VTP Server Mode (预设)

  • 本机 VLAN Database 可更改
  • 收到较自己新的 VLAN 资讯会更新 VLAN Database,并传送给其他 Switch

VTP Client Mode

  • 本机 VLAN Database 不可更改
  • 收到较自己新的 VLAN 资讯会更新 VLAN Database,并传送给其他 Switch

VTP Transparent Mode

  • 本机 VLAN Database 可更改
  • 收到较自己新的 VLAN 资讯也不会更新 VLAN Database (但会传送给其他 Switch)

VTP Version

不断说 VTP 有 3 个 Version,就是 1、2 和 3,实际分别在那里呢?Version 1 是最原始版本,提供了 VTP 的基本功能,至於 Version 2 加入了支缓 Token Ring (请恕作者年纪小,没有用过 Token Ring🙂),另外有一个重要的分别是 Version 1 在使用 Transparent 时收到的 VLAN 资讯会先进行检查,只会把同是 Version 1 的资讯送出去,而 Version 2 则不会进行此检查。

至於 Version 3 则增加了对密码是加密,亦支缓 VLAN 至 4094,另外不得不提的是,在 Version 3 必需要把 Server 升级成 Primary Server 才可更改 VLAN 资讯,此更改相当重要,解决了 Version 1 与 Version 2 一直存在的人为低级错误意外更新了 VLAN Database 的问题。

VTP Version 预设为 Version 1,要修改的话只需用 vtp version 指令。

SW1(config)#vtp version 2
SW1(config)#
SW1#show vtp status
VTP Version                     : 3 (capable)
Configuration Revision          : 7
Maximum VLANs supported locally : 1005
Number of existing VLANs        : 6
VTP Operating Mode              : Server
VTP Domain Name                 : jannet
VTP Pruning Mode                : Disabled (Operationally Disabled)
VTP V2 Mode                     : Enabled
VTP Traps Generation            : Disabled
MD5 digest                      : 0x91 0xD7 0x08 0xB8 0xC5 0xC1 0xE3 0x27
Configuration last modified by 0.0.0.0 at 12-6-16 12:47:50
Local updater ID is 0.0.0.0 (no valid interface found)
VTP version running             : 2

旧版本 VTP 的风险 (Version 1 及 2)

VTP Version 1 及 2 都存在一个缺陷,让网络管理人员闻之色变。问题在於无论 Server Mode 或是 Client Mode,只要收到较自己新的 VLAN 资讯都会更新自己的 VLAN Database,这会造成错误更新的风险。经典的例子是一只在网络上的 Switch 因为某些原因而被关机下线了,然後拿去用作其他用途例如放在测试环境中,经过一番折腾之後,这只 Switch 又放回到网络之中。虽然网络人员已相当醒目地把 Switch 的 Configuration 清掉 (write erase),但由於 VTP 资讯不是记录在 Configuration 而是记录 Flash Memory 之中,就算 Configuration 清掉,VTP 设定仍然存在,如果这时 Switch 的 VTP Configuration Revision 较新的话,一插进网络中就会意外地把错误的 VLAN Database 更新到网络的 Switch 之中,造成灾难性後果!在这里会用一个实验说明。

用 SW1 作 VTP Server,SW2 作 VTP Client,在 SW1 加入一些 VLAN,当然 SW2 可以反映到新增的 VLAN。

undefined

SW1#conf t
SW1(config)#vlan 11-15
SW1(config-vlan)#end

SW1#sh vlan
 
VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Et0/1, Et0/2, Et0/3, Et1/0
                                                Et1/1, Et1/2, Et1/3, Et2/0
                                                Et2/1, Et2/2, Et2/3, Et3/0
                                                Et3/1, Et3/2, Et3/3
11   VLAN0011                         active
12   VLAN0012                         active
13   VLAN0013                         active
14   VLAN0014                         active
15   VLAN0015                         active
1002 fddi-default                     act/unsup
1003 token-ring-default               act/unsup
1004 fddinet-default                  act/unsup
1005 trnet-default                    act/unsup
 
SW2#sh vlan
 
VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Et0/1, Et0/2, Et0/3, Et1/0
                                                Et1/1, Et1/2, Et1/3, Et2/0
                                                Et2/1, Et2/2, Et2/3, Et3/0
                                                Et3/1, Et3/2, Et3/3
11   VLAN0011                         active
12   VLAN0012                         active
13   VLAN0013                         active
14   VLAN0014                         active
15   VLAN0015                         active
1002 fddi-default                     act/unsup
1003 token-ring-default               act/unsup
1004 fddinet-default                  act/unsup
1005 trnet-default                    act/unsup
 

好了,现在把 SW1 与 SW2 之间的 port shutdown。然後把 SW2 转成 VTP Server,故意把原有的 VLAN 删掉,又加入一个新的 VLAN 20。

SW2(config)#vtp mode server
Setting device to VTP Server mode for VLANS.
SW2(config)#no vlan 11-15
% Applying VLAN changes may take few minutes.  Please wait...

SW2(config)#vlan 20
SW2(config-vlan)#end
% Applying VLAN changes may take few minutes.  Please wait...

SW2#
SW2#sh vlan

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Et0/1, Et0/2, Et0/3, Et1/0
                                                Et1/1, Et1/2, Et1/3, Et2/0
                                                Et2/1, Et2/2, Et2/3, Et3/0
                                                Et3/1, Et3/2, Et3/3
20   VLAN0020                         active
1002 fddi-default                     act/unsup
1003 token-ring-default               act/unsup
1004 fddinet-default                  act/unsup
1005 trnet-default                    act/unsup

现在先看看两只 Switch 的 VTP status。留意 SW1 的 Revision 是 6,而 SW2 的 Revision 是 7。因为刚才增减 VLAN 的动作已经令 Configuration Revision 增加了。

SW1#show vtp status
VTP Version                     : 3 (capable)
Configuration Revision          : 6
Maximum VLANs supported locally : 1005
Number of existing VLANs        : 6
VTP Operating Mode              : Server
VTP Domain Name                 : jannet
VTP Pruning Mode                : Disabled (Operationally Disabled)
VTP V2 Mode                     : Disabled
VTP Traps Generation            : Disabled
MD5 digest                      : 0x39 0xC8 0x43 0x0A 0xF0 0xEE 0x30 0x20
Configuration last modified by 0.0.0.0 at 12-6-16 12:47:50
Local updater ID is 0.0.0.0 (no valid interface found)
VTP version running             : 2
SW2#show vtp status
VTP Version                     : 3 (capable)
Configuration Revision          : 7
Maximum VLANs supported locally : 1005
Number of existing VLANs        : 6
VTP Operating Mode              : Server
VTP Domain Name                 : jannet
VTP Pruning Mode                : Disabled (Operationally Disabled)
VTP V2 Mode                     : Enabled
VTP Traps Generation            : Disabled
MD5 digest                      : 0x91 0xD7 0x08 0xB8 0xC5 0xC1 0xE3 0x27
Configuration last modified by 0.0.0.0 at 12-6-16 12:47:50
Local updater ID is 0.0.0.0 (no valid interface found)
VTP version running             : 2

好了,现在先把 SW2 改回 VTP Client,然後再度与 SW1 连线,满以为万无一失!怎料 SW1 的 VLAN Database 竟然被更新了!

SW1#sh vlan

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Et0/1, Et0/2, Et0/3, Et1/0
                                                Et1/1, Et1/2, Et1/3, Et2/0
                                                Et2/1, Et2/2, Et2/3, Et3/0
                                                Et3/1, Et3/2, Et3/3
20   VLAN0020                         active
1002 fddi-default                     act/unsup
1003 trcrf-default                    act/unsup
1004 fddinet-default                  act/unsup
1005 trbrf-default                    act/unsup
1006 VLAN1006                         active

而 VTP 的 Revision 竟和 SW2 一样,很明显 SW1 虽然是 Server,却被身为 Client 的 SW2 更新了。在真实的网络环境,这失误可以令原有的 VLAN 设定被修改了,网络即时瘫痪!

SW1#sh vtp status
VTP Version                     : 3 (capable)
Configuration Revision          : 7
Maximum VLANs supported locally : 1005
Number of existing VLANs        : 6
VTP Operating Mode              : Server
VTP Domain Name                 : jannet
VTP Pruning Mode                : Disabled (Operationally Disabled)
VTP V2 Mode                     : Enabled
VTP Traps Generation            : Disabled
MD5 digest                      : 0x91 0xD7 0x08 0xB8 0xC5 0xC1 0xE3 0x27
Configuration last modified by 0.0.0.0 at 12-6-16 12:47:50
Local updater ID is 0.0.0.0 (no valid interface found)
VTP version running             : 2

VTP Version 3

现在试把刚才的 VTP Server 和 Client 都改成使用 Version 3。

undefined

SW1(config)#vtp version 3
SW1(config)#end
SW2(config)#vtp version 3
SW2(config)#end

Version 3 其一个改变是 Password 可以加密,只要用 vtp password hidden 便可。

SW1(config)#vtp password ccie hidden
Setting device VTP password
SW1(config)#end
SW1#show vtp password
VTP Password: 6CDB879C15C244340E71402D939A3A45

另外,在 Version 3 的 Server 想增减 VLAN 是会看到错误讯息的。

SW1(config)#vlan 50
VTP VLAN configuration not allowed when device is not the primary server for vlan database.

因为我们必需把 Server 升级成 Primary Server 才有权更改 VLAN,升级的指令是 vtp primary vlan (不用进入 Config Mode),除了 vlan,还有其他选项, mst 就留待 Multi Spanning Tree 章节再讨论,而 force 意思是强制升级,如果没有用 force 选项,系统会先检查是否有 Primary Server 存在,如果有就升级失败,如使用 force 则跳过检查。留意升级时需要输入 VTP password。

SW1#vtp primary ?
  force  Do not check for conflicting devices
  mst    MST feautre
  vlan   Vlan feautre
 

SW1#vtp primary vlan
This system is becoming primary server for feature vlan
Enter VTP Password:
No conflicting VTP3 devices found.
Do you want to continue? [confirm]
SW1#
*Dec  7 12:59:00.676: %SW_VLAN-4-VTP_PRIMARY_SERVER_CHG: aabb.cc00.0600 has become the primary server for the VLAN VTP feature

Version 3 的 show vtp status 会分成 VLAN、MST 和 UNKNOWN 叁部份,暂只关注 VLAN 部份。留意 Primary ID 与本机 Device ID 一样,代表本机正是 Primary Server。

SW1#show vtp status
VTP Version                     : 3 (capable)
VTP version running             : 3
VTP Domain Name                 : jannet
VTP Pruning Mode                : Disabled (Operationally Disabled)
VTP Traps Generation            : Disabled
Device ID                       : aabb.cc00.0600

Feature VLAN:
--------------
VTP Operating Mode                : Primary Server
Number of existing VLANs          : 6
Number of existing extended VLANs : 1
Configuration Revision            : 1
Primary ID                        : aabb.cc00.0600
Primary Description               : SW1
MD5 digest                        : 0x6D 0x03 0xB9 0x24 0xB8 0x1F 0xE4 0x7A
                                    0x11 0x0A 0x00 0xF3 0x19 0x4A 0x4C 0xC9


Feature MST:
--------------
VTP Operating Mode                : Transparent

 --More--
*Dec  7 13:04:25.208: %AMDP2_FE-6-EXCESSCOLL: Ethernet3/3 TDR=0, TRC=0

Feature UNKNOWN:
--------------
VTP Operating Mode                : Transparent

在 SW2 VTP Client 也看到 Primary ID 是 SW1 的 ID。所有此 VTP Version 3 的 Switch 只接受来自 Primary Server 的更新。

SW2#show vtp status
VTP Version                     : 3 (capable)
VTP version running             : 3
VTP Domain Name                 : jannet
VTP Pruning Mode                : Disabled (Operationally Disabled)
VTP Traps Generation            : Disabled
Device ID                       : aabb.cc00.0500

Feature VLAN:
--------------
VTP Operating Mode                : Client
Number of existing VLANs          : 6
Number of existing extended VLANs : 1
Configuration Revision            : 1
Primary ID                        : aabb.cc00.0600
Primary Description               : SW1
MD5 digest                        : 0x6D 0x03 0xB9 0x24 0xB8 0x1F 0xE4 0x7A
                                    0x11 0x0A 0x00 0xF3 0x19 0x4A 0x4C 0xC9


Feature MST:
--------------
VTP Operating Mode                : Transparent


Feature UNKNOWN:
--------------
VTP Operating Mode                : Transparent

Primary Server 更改完成後建议把其免去 Primary Server 的角色,避免意外。方法是把 VTP mode 改成 Transparent 再改回 Server。

SW1(config)#vtp mode transparent
Setting device to VTP Transparent mode for VLANS.
SW1(config)#vtp mode server
Setting device to VTP Server mode for VLANS.
SW1(config)#end
SW1#show vtp status
VTP Version                     : 3 (capable)
VTP version running             : 3
VTP Domain Name                 : jannet
VTP Pruning Mode                : Disabled (Operationally Disabled)
VTP Traps Generation            : Disabled
Device ID                       : aabb.cc00.0600
 
Feature VLAN:
--------------
VTP Operating Mode                : Server
Number of existing VLANs          : 6
Number of existing extended VLANs : 1
Configuration Revision            : 1
Primary ID                        : 0000.0000.0000
Primary Description               :
MD5 digest                        : 0x6D 0x03 0xB9 0x24 0xB8 0x1F 0xE4 0x7A
                                    0x11 0x0A 0x00 0xF3 0x19 0x4A 0x4C 0xC9
 

VTP Pruning

Virtual LAN (VLAN) 一篇中提及过,我们可以在 Trunk Link 上控制那些 VLAN 可以通过,那些不能,而 Pruning 则可进一步自动检测 VLAN 在网络上的分佈,从而知道 Trunk Link 需要什麽 VLAN Traffic,把不必要的 Traffic 自动挡下来,减少浪费 Bandwidth。

这部份用真实 Switch 测试会比较理想,首先把两只 Switch 连接好并设定好 VTP。

undefined

现在我们试在 SW1 新增 11-20。看看 Fa1/0/13 的 trunk 状态,由於预设 Vlan Allowed 是全开的,所以 Vlan allowed 显示 1-4094,但因为本机只有预设的 Vlan 1 及刚刚新增的 Vlan 11-20,所以 Vlan allowed and active 就只有 Vlan 1,11-20。最後由於 VTP Pruning 并没有开启,所以最後一行 Vlans in spanning tree forwarding state and not pruned 也是 Vlan 1,11-20。如果读者并未了解这 3 行是什麽东东,可以参考过去的一篇文章:Virtual LAN (VLAN)

SW1(config)#vlan 11-20
SW1(config-vlan)#end

SW1#show int fastEthernet 1/0/13 trunk
 
Port        Mode         Encapsulation  Status        Native vlan
Fa1/0/13    desirable    802.1q         trunking      1
 
Port        Vlans allowed on trunk
Fa1/0/13    1-4094
 
Port        Vlans allowed and active in management domain
Fa1/0/13    1,11-20
 
Port        Vlans in spanning tree forwarding state and not pruned
Fa1/0/13    1,11-20

现在尝试 Enable VTP Pruning,设定方法很简单,只要在 VTP Server 用 vtp pruning 指令即可,整个 VTP domain 里的 Switch 都会变成 VTP Pruning Mode Enabed。

SW1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
SW1(config)#vtp pruning
Pruning switched on
SW1(config)#end
SW1#show vtp status
VTP Version                     : 2
Configuration Revision          : 8
Maximum VLANs supported locally : 1005
Number of existing VLANs        : 15
VTP Operating Mode              : Server
VTP Domain Name                 : jannet
VTP Pruning Mode                : Enabled
VTP V2 Mode                     : Disabled
VTP Traps Generation            : Disabled
MD5 digest                      : 0x4B 0xB5 0x0C 0x4F 0xDF 0x56 0xD1 0xF8

再看看 Fa1/0/13 的 trunk 发生了什麽改变,可见最後一行 Vlans in spanning tree forwarding state and not pruned 是馀下 Vlan 1,为什麽?因为 VTP 侦测到 SW2 根本没有 Vlan 11-15 的 Interface,换句话说,SW1 明知道 SW2 不需要 Vlan 11-15 的 Traffic,所以就主动把 Traffic 停住了以减抵 Bandwidth 用量。至於 Vlan 1 包含了一些 Management Traffic,是不可以被 Pruned 的。

SW1#show int fastEthernet 1/0/13 trunk

Port        Mode         Encapsulation  Status        Native vlan
Fa1/0/13    desirable    802.1q         trunking      1

Port        Vlans allowed on trunk
Fa1/0/13    1-4094

Port        Vlans allowed and active in management domain
Fa1/0/13    1,11-15

Port        Vlans in spanning tree forwarding state and not pruned
Fa1/0/13    1

试试在 SW2 新增两个 SVI,一个是 VLAN 11,一个是 VLAN 13。

SW2(config)#int vlan 11
SW2(config-if)#no shutdown
SW2(config-if)#int vlan 13
SW2(config-if)#no shutdown

於是 SW1 就会知道 SW2 现在需要 VLAN 11 和 VLAN 13 的 Traffic 了,VLAN 11 和 VLAN 13 就会 Not Pruned。

SW1#show int fastEthernet 1/0/13 trunk

Port        Mode         Encapsulation  Status        Native vlan
Fa1/0/13    desirable    802.1q         trunking      1

Port        Vlans allowed on trunk
Fa1/0/13    1-4094

Port        Vlans allowed and active in management domain
Fa1/0/13    1,11-15

Port        Vlans in spanning tree forwarding state and not pruned
Fa1/0/13    1,11,13