We learnt the concept and configuration of VTP. On a large or congested network, VTP can become a bottleneck when excess traffic is sent across trunks needlessly, consuming valuable bandwidth. VTP being a (VLAN) management protocol, should not hamper the performance of the network by competing with the application traffic for bandwidth on the trunk.
VTP pruning allows us to prune, deny or weed out specific VLAN traffic from being sent to all switches in the VTP domain. Albeit VLANs are created in switches by VTP, if no ports are assigned to the VLANs and are not active, the broadcasts of those VLANs will be pruned.
Consider the following network in which all switches are in the same VTP domain. The switches in the gray box all have ports assigned to VLAN 100, while the rest of the switches do not. With VTP active, all of the switches will have VLAN 100 configured, and as such will receive broadcasts initiated on that VLAN. However, those without ports assigned to VLAN 100 have no use for the broadcasts.
On a busy VLAN, broadcasts can amount to a significant percentage of traffic. In this case, all that traffic is being needlessly sent over the entire network, and is taking up valuable bandwidth on the interswitch trunks.
VTP pruning prevents traffic originating from a particular VLAN from being sent to switches on which that VLAN is not active (i.e., switches that do not have ports connected and configured for that VLAN). With VTP pruning enabled, the VLAN 100 broadcasts will be restricted to switches on which VLAN 100 is actively in use.
Configuring VTP Pruning
VTP pruning is enabled with the vtp pruning command on IOS. This can only be done when the switch is in VTP server mode:
Switch1(config)#vtp pruning Pruning switched on
Disabling VTP pruning is done by negating the command (no vtp pruning).
The VLANs eligible for pruning are configured at the interface level in IOS. We should use the command switchport trunk pruning vlan on each trunking interface on the switch where pruning is desired:
Switch1(config)#int gi0/24 ! I have configured Gi0/24 as trunk Switch1(config-if)#switchport trunk pruning vlan ? WORD VLAN IDs of the allowed VLANs when this port is in trunking mode add add VLANs to the current list except all VLANs except the following none no VLANs remove remove VLANs from the current list
When pruning is enabled, all VLANs are eligible for pruning, by default.
If we configure VLAN 100 to be eligible for pruning, IOS considers this to mean only VLAN 100 should be eligible:
Switch1(config-if)#switchport trunk pruning vlan 100
No message is displayed indicating that we have just disabled pruning for VLANs 2–99 and 101–1001. We have to look at the interface again to see:
Switch1#sh int gi0/24 switchport | inc Pruning Pruning VLANs Enabled: 100
We can add VLANs to the list of pruning-eligible VLANs with the add keyword and remove them with the remove keyword:
Switch1(config-if)#switchport trunk pruning vlan add 20-30 Switch1(config-if)#switchport trunk pruning vlan remove 30
We can also specify that all VLANs except one or more that we list be made eligible
for pruning with the switchport trunk pruning vlan except vlan-id command.
Remember to double-check your work with the show interface interface-id switch
port command. Adding and removing VLANs can quickly get confusing, especially
with IOS managing VTP pruning on an interface basis.