Old CCIE Myths: VTP

VN:F [1.9.6_1107]
Rating: 4.8/5 (6 votes cast)
By Marko Milivojevic on April 7th, 2010

Every aspiring CCIE knows this one. VTP has 3 versions, of which one we don’t have available in the lab – version 3. Versions 1 and 2 behave differently when the switch is configured in VTP transparent mode. This blog takes a stab at that established truth.

Theory

Some books and Cisco documentation will tell us different things. For example, the latest official exam guide for CCNP SWITCH exam (still the best study material for switching theory, regardless of few blunders) has this to say:

In VTP version 1, a transparent mode switch does not even relay VTP information it receives to other switches unless its VTP domain names and VTP version numbers match those of the other switches. In VTP version 2, transparent switches do forward received VTP advertisements out of their trunk ports, acting as VTP relays. This occurs regardless of the VTP domain name setting.

On the other hand, Cisco documentation for Catalyst 3560 has the following to say about transparent VTP:

VTP transparent switches do not participate in VTP. A VTP transparent switch does not advertise its VLAN configuration and does not synchronize its VLAN configuration based on received advertisements. However, in VTP Version 2, transparent switches do forward VTP advertisements that they receive from other switches through their trunk interfaces. You can create, modify, and delete VLANs on a switch in VTP transparent mode.

A little further in the same document:

Version-Dependent Transparent Mode—In VTP Version 1, a VTP transparent switch inspects VTP messages for the domain name and version and forwards a message only if the version and domain name match. Because VTP Version 2 supports only one domain, it forwards VTP messages in transparent mode without inspecting the version and domain name.

I don’t know about you, but I am a little bit confused as to how VTP transparent actually works after reading this. Luckily, I do have few Catalysts 3560 in ProctorLabs I can test this on.

Testbed

In order to test behavior of VTP, let’s quickly build the topology for testing. I will use the one depicted on the diagram below.

VTp Testbed

We will also configure some basic stuff on all of the involved switches. Things like hostnames, ensuring that only interfaces we need are used and that they are trunks. Since we’ll be messing with VTP in this blog, we can’t rely on DTP.

Cat2:

hostname Cat2
!
interface range FastEthernet0/1 - 24 , GigabitEthernet0/1 - 2
 shutdown
!
interface FastEthernet0/19
 switchport trunk encapsulation dot1q
 switchport mode trunk
 switchport nonegotiate
 no shutdown
!
interface Vlan1
 ip address 10.0.0.2 255.255.255.0
 no shutdown
!

Cat3:

hostname Cat3
!
interface range FastEthernet0/1 - 24 , GigabitEthernet0/1 - 2
 shutdown
!
interface range FastEthernet0/19 , FastEthernet0/23
 switchport trunk encapsulation dot1q
 switchport mode trunk
 switchport nonegotiate
 no shutdown
!
interface Vlan1
 ip address 10.0.0.3 255.255.255.0
 no shutdown
!

Cat4:

hostname Cat4
!
interface range FastEthernet0/1 - 24 , GigabitEthernet0/1 - 2
 shutdown
!
interface FastEthernet0/23
 switchport trunk encapsulation dot1q
 switchport mode trunk
 switchport nonegotiate
 no shutdown
!
interface Vlan1
 ip address 10.0.0.4 255.255.255.0
 no shutdown
!

We are now ready to play around with VTP.

Basic VTP Configuration

Before we start testing transpartent VTP, let’s configure some basic VTP config. All threee switches to IPexpert domain and server mode, for example.

Cat2, Cat3 and Cat4:

vtp domain IPexpert
vtp mode server

With that done, let’s make a VLAN on Cat2 and see if it’s created on Cat4.

Cat2(config)#vlan 100
Cat2(config-vlan)#name Test-1
Cat2(config-vlan)#exit

Cat4#show vlan 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, Fa0/16
                                                Fa0/17, Fa0/18, Fa0/19, Fa0/20
                                                Fa0/21, Fa0/22, Fa0/24, Gi0/1
                                                Gi0/2
100  Test-1                           active
1002 fddi-default                     act/unsup
1003 token-ring-default               act/unsup
1004 fddinet-default                  act/unsup
1005 trnet-default                    act/unsup

That worked, just as we expected it would. It’s time to play with transparent mode on Cat3.

Transparent VTP, Version 1

Let’s change VTP to transparent on Cat3 and see if it will forward updates from Cat2 to Cat4.

Cat3(config)#vtp mode transparent
Setting device to VTP TRANSPARENT mode.
Cat3(config)#exit
Cat3#show vtp status
VTP Version                     : running VTP1 (VTP2 capable)
Configuration Revision          : 0
Maximum VLANs supported locally : 1005
Number of existing VLANs        : 6
VTP Operating Mode              : Transparent
VTP Domain Name                 : IPexpert
VTP Pruning Mode                : Disabled
VTP V2 Mode                     : Disabled
VTP Traps Generation            : Disabled
MD5 digest                      : 0xA6 0xD7 0xCE 0x39 0x15 0x45 0xF0 0x11
Configuration last modified by 10.0.0.2 at 3-1-93 15:52:42

Excellent, Cat3 is is not VTP version 1 transparent switch with revision 0. Let’s create another VLAN on Cat2 and see it created on Cat4. This should work according to the quoted documentation.

Cat2(config)#vlan 101
Cat2(config-vlan)#name Test-2
Cat2(config-vlan)#exit

Cat4#show vlan 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, Fa0/16
                                                Fa0/17, Fa0/18, Fa0/19, Fa0/20
                                                Fa0/21, Fa0/22, Fa0/24, Gi0/1
                                                Gi0/2
100  Test-1                           active
101  Test-2                           active
1002 fddi-default                     act/unsup
1003 token-ring-default               act/unsup
1004 fddinet-default                  act/unsup
1005 trnet-default                    act/unsup

Excellent. Let’s now change the domain to “ipexpert” on Cat3 and see what happens. We’ll also enable some debugging.

Cat3(config)#vtp domain ipexpert
Cat3(config)#exit
Cat3#show vtp status
VTP Version                     : running VTP1 (VTP2 capable)
Configuration Revision          : 0
Maximum VLANs supported locally : 1005
Number of existing VLANs        : 6
VTP Operating Mode              : Transparent
VTP Domain Name                 : ipexpert
VTP Pruning Mode                : Disabled
VTP V2 Mode                     : Disabled
VTP Traps Generation            : Disabled
MD5 digest                      : 0xD1 0x64 0xC3 0xC6 0x6C 0x98 0xBD 0xB5
Configuration last modified by 10.0.0.2 at 3-1-93 15:52:42

That’s all set. So, let’s make another VLAN on Cat2 and observe what happens. Since we’re using VTP version 1, according to documentation, this should not work, due to domain mismatch.

Cat2(config)#vlan 102
Cat2(config-vlan)#name Test-3
Cat2(config-vlan)#exit

Look at Cat3.

VTP LOG RUNTIME: Dropping packet received on trunk Fa0/19 - not in domain IPexpert

Is there VLAN 102 on Cat4?

Cat4#show vlan id 102
VLAN id 102 not found in current VLAN database

So far so good. We proved that VTP transparent switch will only forward VTP updates that are in the same domain. So far, so good. How about VTP version 2?

Transparent VTP, Version 2

Let’s change the configuration on our Cat3 back to domain IPexpert, but change the version to 2.

Cat3(config)#vtp version 2
Cat3(config)#vtp domain IPexpert
Cat3(config)#exit
 Cat3#show vtp status
VTP Version                     : running VTP2
Configuration Revision          : 0
Maximum VLANs supported locally : 1005
Number of existing VLANs        : 6
VTP Operating Mode              : Transparent
VTP Domain Name                 : IPexpert
VTP Pruning Mode                : Disabled
VTP V2 Mode                     : Enabled
VTP Traps Generation            : Disabled
MD5 digest                      : 0x04 0xAF 0x40 0x22 0x73 0x39 0x2E 0xE8
Configuration last modified by 10.0.0.3 at 3-1-93 15:52:42

 VTP LOG RUNTIME: Relaying packet received on trunk Fa0/19 - in TRANSPARENT MODE (nc = false)
 VTP LOG RUNTIME: Relaying packet received on trunk Fa0/23 - in TRANSPARENT MODE (nc = false)

Great stuff. Not only are we running VTP version 2 now, but it would appear that update from Cat2 was relayed to Cat4. Let’s make sure.

Cat4#show vlan id 102

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
102  Test-3                           active    Fa0/23

VLAN Type  SAID       MTU   Parent RingNo BridgeNo Stp  BrdgMode Trans1 Trans2
---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------
102  enet  100102     1500  -      -      -        -    -        0      0   

Remote SPAN VLAN
----------------
Disabled

Primary Secondary Type              Ports
------- --------- ----------------- ------------------------------------------

From this, we can conclude that VTP running version 2 will indeed relay updates sent by VTP version 1, ignoring the version. Interesting. How about the claim that it will relay these updates if domains don’t match?

Cat3(config)#vtp domain ipexpert
Cat3(config)#exit

 VTP LOG RUNTIME: Dropping packet received on trunk Fa0/19 - not in domain IPexpert
 VTP LOG RUNTIME: Dropping packet received on trunk Fa0/23 - not in domain IPexpert

Come again? Didn’t the official documentation say this is OK? Let’s try to be more explicit. Time for VLAN 103 to start its mission.

Cat2(config)#vlan 103
Cat2(config-vlan)#name Test-4
Cat2(config-vlan)#exit
 VTP LOG RUNTIME: Dropping packet received on trunk Fa0/19 - not in domain IPexpert
 VTP LOG RUNTIME: Dropping packet received on trunk Fa0/19 - not in domain IPexpert

Let me quote that piece of documentation again.

Because VTP Version 2 supports only one domain, it forwards VTP messages in transparent mode without inspecting the version and domain name.

I’m sorry, but I disagree and I have configuration to prove it!

Let’s not stop here. What if Cat2 and Cat4 were also running VTP version 2. Perhaps that will change things? Let’s try.

Cat2(config)#vtp version 2
Cat2(config)#exit
Cat2#show vtp status
VTP Version                     : running VTP2
Configuration Revision          : 5
Maximum VLANs supported locally : 1005
Number of existing VLANs        : 9
VTP Operating Mode              : Server
VTP Domain Name                 : IPexpert
VTP Pruning Mode                : Disabled
VTP V2 Mode                     : Enabled
VTP Traps Generation            : Disabled
MD5 digest                      : 0x9A 0x99 0xE7 0x53 0x9C 0xFE 0x00 0xF7
Configuration last modified by 10.0.0.2 at 3-1-93 16:25:13
Local updater ID is 10.0.0.2 on interface Vl1 (lowest numbered VLAN interface found)

Cat4(config)#vtp version 2
Cat4(config)#exit
Cat4#show vtp status
VTP Version                     : running VTP2
Configuration Revision          : 4
Maximum VLANs supported locally : 1005
Number of existing VLANs        : 8
VTP Operating Mode              : Server
VTP Domain Name                 : IPexpert
VTP Pruning Mode                : Disabled
VTP V2 Mode                     : Enabled
VTP Traps Generation            : Disabled
MD5 digest                      : 0xCE 0x26 0x0C 0x27 0xFD 0x98 0xF6 0x20
Configuration last modified by 10.0.0.4 at 3-1-93 16:26:00
Local updater ID is 10.0.0.4 on interface Vl1 (lowest numbered VLAN interface found)

While we were busy changing all that, Cat3 was also busy.

 VTP LOG RUNTIME: Dropping packet received on trunk Fa0/23 - not in domain IPexpert
 VTP LOG RUNTIME: Dropping packet received on trunk Fa0/19 - not in domain IPexpert
 VTP LOG RUNTIME: Dropping packet received on trunk Fa0/19 - not in domain IPexpert
 VTP LOG RUNTIME: Dropping packet received on trunk Fa0/23 - not in domain IPexpert
 VTP LOG RUNTIME: Dropping packet received on trunk Fa0/23 - not in domain IPexpert

It was very busy telling us that it will not behave in the documented way.

One more thing. What if Cat2 and Cat4 are VTP version 2 and Cat3 is VTP version 1? Let’s see.

VTP version 1, Relaying VTP Version 2

Cat3(config)#vtp version 1
Cat3(config)#domain IPexpert
Cat3(config)#exit

 VTP LOG RUNTIME: Relaying packet received on trunk Fa0/19 - in TRANSPARENT MODE (nc = false)
 VTP LOG RUNTIME: Relaying packet received on trunk Fa0/23 - in TRANSPARENT MODE (nc = false)

Fair enough. Let’s see if Cat4 has all the VLANs we need.

Cat4#show vlan 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, Fa0/16
                                                Fa0/17, Fa0/18, Fa0/19, Fa0/20
                                                Fa0/21, Fa0/22, Fa0/24, Gi0/1
                                                Gi0/2
100  Test-1                           active
101  Test-2                           active
102  Test-3                           active
103  Test-4                           active
1002 fddi-default                     act/unsup
1003 trcrf-default                    act/unsup
1004 fddinet-default                  act/unsup
1005 trbrf-default                    act/unsup

Let’s change the domain name on Cat3 and see if that works.

Cat3(config)#vtp domain ipexpert
Cat3(config)#exit

Time for VLAN 104.

Cat2(config)#vlan 104
Cat2(config-vlan)#name Test-5
Cat2(config-vlan)#exit

And Cat3, as expected, tells us ¡no pasarán!

 VTP LOG RUNTIME: Dropping packet received on trunk Fa0/19 - not in domain IPexpert
 VTP LOG RUNTIME: Dropping packet received on trunk Fa0/19 - not in domain IPexpert

Conclusion

The only thing I can say after this exercise is that on Catalyst 3560, the only switch we care about in CCIE R&S exam, behaves the same way in VTP version 1 and VTP version 2 transparent mode in regard to relaying VTP updates.

What do you think. Myth busted?


Marko Milivojevic – CCIE #18427
Senior Technical Instructor – IPexpert
Join our Online Study List

Old CCIE Myths: VTP, 4.8 out of 5 based on 6 ratings
Share and Enjoy:
  • RSS
  • Twitter
  • Facebook
  • Google Bookmarks
  • Digg
  • Print
  • Technorati
  • Slashdot
  • LinkedIn
  • del.icio.us
  • Reddit
  • Sphinn
  • Mixx
  • Blogplay
  • Netvibes
  • NewsVine
  • Live
  • Ping.fm
  • MySpace
  • Yahoo! Bookmarks
  • Yahoo! Buzz

12 Responses to “Old CCIE Myths: VTP”

  1. Rickey says:

    So, if I understand this correctly, VTP v2 transparent mode will forward VTP advertisements only if in same domain and same with v1?

    I wonder if pre 12.4 or even earlier the myth was correct?

    VA:F [1.9.6_1107]
    Rating: 1.0/5 (1 vote cast)
  2. Amplebrain says:

    Hi,
    This consistent inconsistency has been for a while. The Documentation is wrong but the behavior hasnt been updated for older switches. Tassos posted some info on this sometime back…

    http://ccie-in-3-months.blogspot.com/2008/05/passing-vtp-advertisements-through-vtp.html

    http://ccie-in-3-months.blogspot.com/2008/07/cco-documentation-errors-vtp-v2.html

    VA:F [1.9.6_1107]
    Rating: 0.0/5 (0 votes cast)
  3. Joe Astorino says:

    Myth Busted

    VA:F [1.9.6_1107]
    Rating: 0.0/5 (0 votes cast)
  4. Yasir Ashfaque says:

    What about V3, will it forward if domains dint match ??

    VA:F [1.9.6_1107]
    Rating: 0.0/5 (0 votes cast)
  5. Neil says:

    Nice write up, but what if you’re asked a question along those lines in the CCIE written (or SWITCH for that matter). Do you answer what you know, what you’ve tested and what you’ve proved. Or do you answer what’s documented?? Is it right or wrong??

    VA:F [1.9.6_1107]
    Rating: 0.0/5 (0 votes cast)
    • It’s a tricky question you ask. Those are not open-ended questions. I would definitely answer what the documentation says and leave the comment for the question explaining the real life.

      If you are faced with this as the OEQ, you can answer properly, giving book and real-life answers :-)


      Marko Milivojevic – CCIE #18427
      Senior Technical Instructor – IPexpert
      Join our Online Study List

      VN:F [1.9.6_1107]
      Rating: 0.0/5 (0 votes cast)
  6. vin says:

    awesome article, thanks for taking the time to write this!

    VA:F [1.9.6_1107]
    Rating: 0.0/5 (0 votes cast)
  7. omer says:

    you could have explain it patiently , it could be more beneficial to every body,u have mention server – transp – server, u could have get more fun in server- transp-client.

    VA:F [1.9.6_1107]
    Rating: 1.0/5 (2 votes cast)
  8. Mark DeLong says:

    In the SWITCH book they also mention in a short blurb that VTP transparent mode is recommended for all switches in a switch fabric that is sensitive/critical (i.e. a data center) as to prevent the well known problems where a new VTP client or server can come online in some situations and overwrite the existing VLAN DB on other switches by advertising summaries with higher revision numbers.

    Interestingly enough, in the Arch Exam (CCDP – Design) Cisco recommends ALL switches in ANY switch fabric should run in VTP transparent mode (effectively turning VTP OFF on your network) because of several reasons:

    1. The VLAN DB Overwrite issue.
    2. The fact that networks tend to run on the 20/80 rule now and not the 80/20 rule. Most traffic will be routed making individual switch fabrics smaller in terms of vlans.
    3. For security: To minimize the advertisement of information about the network that an attacker can gain through VTP.
    4. Global VLANs are no longer recommended and trunking should not traverse the network core layer.
    5. And finally, because most switch fabrics should be small and confined to a single closet where only two VLANs exist (Data and Voice) with the exception of things like DCs and the like.

    So in the end I don’t care much about VTP because truly it is a protocol that has a history of problems in many facets and no longer benefits the network. It should be turned off. If most of your switches in a properly config’d network just need two VLANs then you should manually configure them. Its not like you don’t have to manually configure other things on these switches any way. Unfortunately, VTP is still on many networks just as are Global VLANs. I could site the reasons for this but it would just be derogatory.

    Now in ending, I’m not saying that you talking about VTP is a bad thing because VTP *is* on these exams and you have to study it. I just like to spread the news on VTP and that I think we should get rid of it. I really think it is sticking around like a bad urban legend.

    Cheers,

    Mark (CCNP, CCIE Student)

    P.S. If anyone has any reasons why they think I”m wrong here I’d love to here it. And sorry if I’m too off topic for the thread.

    VA:F [1.9.6_1107]
    Rating: 4.0/5 (1 vote cast)
  9. Mohamed Saad says:

    Hi to all :
    For Mark Delong It should be turned off. If most of your switches in a properly config’d network just need two VLANs then you should manually configure them.
    I’m ok with that … On where I work we have two core switches and medium enterprise with 84 Vlan … even if it has many problems (VTP) how can I manage such a burden and for many others the need for many vlans is a necessity ..
    that is it I wanted to say … :)

    VA:F [1.9.6_1107]
    Rating: 0.0/5 (0 votes cast)

Leave a Reply