Config Lab: RSTP Config 1
LAN switches use many default settings that work without you having to do anything, and oftentimes, you can leave those default settings as-is. However, with Spanning Tree Protocol (STP), and its better cousin Rapid STP (RSTP), you should configure some settings based on a few design goals. This config lab works through some of the more common configuration settings to influence the choice of root switch and designated ports.
The Lab Exercise
Lab Requirements
This lab begins with a working network. It shows two PCs in each of the two separate VLANs/Subnets, with a router to router packets between the subnets. In fact, if you implement the lab as shown and use only the initial configuration, all the PCs should be able to ping each other. In that case, STP/RSTP works with all default configuration settings.
(You may want to spend a little more time than usual checking out the detailed initial configuration. Also, if you plan to implement the lab for yourself in Cisco Packet Tracer or elsewhere, you may find it useful to implement the initial configuration and examine the VLANs, VLAN trunking, ROAS, and STP/RSTP behavior before performing the configuration.)
Once you understand the initial configuration, configure some common best practices for STP/RSTP in LANs. Specifically:
- Use default STP/RSTP settings unless you need the setting to implement the lab.
- Configure all switches to use per-vlan RSTP rather than per-vlan STP.
- Root Switch in VLAN 10:
- Configure switch Dist1 with a better priority than the other switches so that Dist1 becomes the root switch.
- Configure the priority setting as a specific number.
- Use the highest priority setting possible for Dist1 while ensuring that Dist1 does not tie with the other switches.
Additionally, consider the following points about the switches’ choices for Designated Ports (DPs):
- After configuring so that Dist1 becomes the root switch in VLAN 10, but with all other STP/RSTP settings as defaults, all three switches will have a root cost of 4.
- As a result, the switches will tie in their Designated Port (DP) elections for the Dist2-Access3 and Dist2-Access4 links.
- As a result, the Designated Port (DP) choices on those links use tiebreakers.
Based on those facts, also configure to achieve the following goals:
- Configure to avoid the tiebreakers for choosing any DPs by lowering the STP/RSTP port cost(s) on switch Dist2, in VLAN 10, on Dist2 port G1/1/1. (Such a change will change switch Dist2’s root cost.)
- Multiple possible cost values could be used. However, for the purposes of this lab, set the cost to one lower than the default cost for a Gigabit Ethernet interface.
Figure 1: RSTP Topology for this Lab
Initial Configuration
The four switches have no pre-configuration related to RSTP. However, all the switches use VLAN trunking on the links between switches. They also use VTP mode transparent, requiring the VLANs to be configured on each switch. So, each switch shows both VLAN 10 and 11 as preconfigured. For information about the PCs and the router, look below these next four examples.
hostname Dist1
!
vtp mode transparent
vlan 10,11
!
interface GigabitEthernet1/1/2
description Trunk link to Dist2
switchport mode trunk
!
interface GigabitEthernet1/1/3
description Trunk link to Access3
switchport mode trunk
!
interface GigabitEthernet1/1/4
description Trunk link to Access4
switchport mode trunk
!
interface GigabitEthernet1/0/1
description Trunk to R1
switchport mode trunk
Example 1: Dist1 Config
hostname Dist2
!
vtp mode transparent
vlan 10,11
!
interface GigabitEthernet1/1/1
description Trunk link to Dist1
switchport mode trunk
!
interface GigabitEthernet1/1/3
description Trunk link to Access3
switchport mode trunk
!
interface GigabitEthernet1/1/4
description Trunk link to Access4
switchport mode trunk
Example 2: Dist2 Config
hostname Access3
!
vtp mode transparent
vlan 10,11
!
interface GigabitEthernet1/1/1
description Trunk link to Dist1
switchport mode trunk
!
interface GigabitEthernet1/1/2
description Trunk link to Dist2
switchport mode trunk
!
interface GigabitEthernet1/0/11
description Access link to PC11
switchport mode access
switchport access vlan 10
!
interface GigabitEthernet1/0/21
description Access link to PC21
switchport mode access
switchport access vlan 11
Example 3: Access3 Config
hostname Access4
!
vtp mode transparent
vlan 10,11
!
interface GigabitEthernet1/1/1
description Trunk link to Dist1
switchport mode trunk
!
interface GigabitEthernet1/1/2
description Trunk link to Dist2
switchport mode trunk
!
interface GigabitEthernet1/0/12
description Access link to PC12
switchport mode access
switchport access vlan 10
!
interface GigabitEthernet1/0/22
description Access link to PC22
switchport mode access
switchport access vlan 11
Example 4: Access4 Config
The four PCs connect to two different access VLANs and subnets, as follows:
- PC11 and PC12: VLAN 10, subnet 10.1.10.0/24, gateway 10.1.10.1.
- PC21 and PC22: VLAN 11, subnet 10.1.11.0/24, gateway 10.1.11.1.
R1 uses a router-on-a-stick (ROAS) configuration to support the subnets. With the initial topology and device configurations, the PCs should be able to ping each other and the default gateway. Their initial configurations are shown next.
Address: 10.1.10.11
Mask: 255.255.255.0
Gateway: 10.1.10.1
Example 5: PC11 Configuration Settings
Address: 10.1.10.12
Mask: 255.255.255.0
Gateway: 10.1.10.1
Example 6: PC12 Configuration Settings
Address: 10.1.11.21
Mask: 255.255.255.0
Gateway: 10.1.11.1
Example 7: PC21 Configuration Settings
Address: 10.1.11.22
Mask: 255.255.255.0
Gateway: 10.1.11.1
Example 8: PC22 Configuration Settings
hostname WAN
!
interface gigabitethernet0/1
no shutdown
!
interface gigabitethernet0/1.10
encapsulation dot1q 10
ip address 10.1.10.1 255.255.255.0
!
interface gigabitethernet0/1.11
encapsulation dot1q 11
ip address 10.1.11.1 255.255.255.0
Example 9: Router R1 Configuration Settings
Answer Options - Click Tabs to Reveal
You can learn a lot and strengthen real learning of the topics by creating the configuration – even without a router or switch CLI. In fact, these labs were originally built to be used solely as a paper exercise!
To answer, just think about the lab. Refer to your primary learning material for CCNA, your notes, and create the configuration on paper or in a text editor. Then check your answer versus the answer post, which is linked at the bottom of the lab, just above the comments section.
You can also implement the lab using the Cisco Packet Tracer network simulator. With this option, you use Cisco’s free Packet Tracer simulator. You open a file that begins with the initial configuration already loaded. Then you implement your configuration and test to determine if it met the requirements of the lab.
(Use this link for more information about Cisco Packet Tracer.)
Use this workflow to do the labs in Cisco Packet Tracer:
- Download the .pkt file linked below.
- Open the .pkt file, creating a working lab with the same topology and interfaces as the lab exercise.
- Add your planned configuration to the lab.
- Test the configuration using some of the suggestions below.
You can also implement the lab using Cisco Modeling Labs – Personal (CML-P). CML-P (or simply CML) replaced Cisco Virtual Internet Routing Lab (VIRL) software in 2020, in effect serving as VIRL Version 2.
If you prefer to use CML, use a similar workflow as you would use if using Cisco Packet Tracer, as follows:
- Download the CML file (filetype .yaml) linked below.
- Import the lab’s CML file into CML and then start the lab.
- Compare the lab topology and interface IDs to this lab, as they may differ (more detail below).
- Add your planned configuration to the lab.
- Test the configuration using some of the suggestions below.
Download this lab’s CML file!
Network Device Info:
This table lists the interfaces used in the lab exercise documentation that differ from those used in the sample CML file.
Device | Lab Port | Â CML Port |
Dist1 | G1/1/2 | G1/2 |
Dist1 | G1/1/3 | G1/3 |
Dist1 | G1/1/4 | G1/0 |
Dist1 | G1/0/1 | G0/1 |
Dist2 | G1/1/2 | G1/2 |
Dist2 | G1/1/3 | G1/3 |
Dist2 | G1/1/4 | G1/0 |
Access3 | G1/1/1 | G1/1 |
Access3 | G1/1/2 | G1/2 |
Access3 | G1/0/11 | G0/1 |
Access3 | G1/0/21 | G0/2 |
Access4 | G1/1/1 | G1/1 |
Access4 | G1/1/2 | G1/2 |
Access4 | G1/0/12 | G0/1 |
Access4 | G1/0/22 | G0/2 |
Lab Answers Below: Spoiler Alert
Lab Answers: Configuration (Click Tab to Reveal)
Lab Answers
spanning-tree mode rapid-pvst
spanning-tree vlan 10 priority 28672
Example: Dist1 Config
spanning-tree mode rapid-pvst
interface GigabitEthernet1/1/1
spanning-tree vlan 10 cost 3
Example: Dist2 Config
spanning-tree mode rapid-pvst
Example: Access3 Config
spanning-tree mode rapid-pvst
Example: Access4 Config
Commentary, Issues, and Verification Tips (Click Tabs to Reveal)
Lab Commentary
Compared to many Config Labs, this lab takes much more time to understand the initial configuration, but then few commands to configure the switches to meet the design requirements.
Cisco switches default with a base priority of 32,768. IOS allows base priority values as a multiple of 4096, in the range from 0 and 61,440. For instance, the values closest to but less than 32,768 – the values used in lab and most often used in real networks – are:
- 28,672
- 24,576
- 20,480
The lab requirements asked you to configure the priority of switch Dist1 to a lower number. This lab shows Dist1 with the next lower value below the default of 32,768, namely 28,672, as configured in the spanning-tree vlan 10 priority 28672 global command.
The other lab requirement asked you to configure Dist2 with a lower port cost (compared to the default cost) on its G1/1/1 port and lower that cost to one less than the default port cost on Gigabit interfaces (which is cost 4.) You do that using the spanning-tree vlan 10 cost 3 interface subcommand on Dist2’s G1/1/1 port. As a result, when Dist2 and Access3 compete to elect the Designated Port on the link that connects them, Dist2 wins with its root cost of 3 versus Access3’s root cost of 4.
Known Issues in this Lab
This section of each Config Lab Answers post hopes to help with those issues by listing any known issues with Packet Tracer related to this lab. In this case, the issues are:
# | Summary | Detail |
1 | VLAN trunking requires the switchport trunk encapsulation command | Old Cisco switches supported both ISL (older) and 802.1Q (newer) trunking protocol options, so those switches required the switchport trunk encapsulation command to be configured on VLAN trunks. Cisco Packet Tracer switches use this same logic, while Cisco switches produced since around 2010 support 802.1Q only. |
2 | Packet Tracer does not support multiple VLANs in the global vlan command | The initial configuration shows the command vlan 10,11 – legal on real Cisco switches but rejected by Cisco Packet Tracer. Instead, configure the VLANs on separate vlan commands. |
3 | Different behavior with the  spanning-tree cost n interface subcommand | This command, on real switches, sets the spanning-tree cost for all VLANs on that interface. In PT, it appears to set the cost for VLAN 1 only. To perform the lab, set the cost in VLAN 10 with the spanning-tree vlan 10 cost n command. |
Why Would Cisco Packet Tracer Have Issues?
(Note: The below text is the same in every Config Lab.)
Cisco Packet Tracer (CPT) simulates Cisco routers and switches. However, CPT does not run the same software that runs in real Cisco routers and switches. Instead, developers wrote CPT to predict the output a real router or switch would display given the same topology and configuration – but without performing all the same tasks, an actual device has to do. On a positive note, CPT requires far less CPU and RAM than a lab full of devices so that you can run CPT on your computer as an app. In addition, simulators like CPT help you learn about the Cisco router/switch user interface – the Command Line Interface (CLI) – without having to own real devices.
CPT can have issues compared to real devices because CPT does not run the same software as Cisco devices. CPT does not support all commands or parameters of a command. CPT may supply output from a command that differs in some ways from what an actual device would give. Those differences can be a problem for anyone learning networking technology because you may not have experience with that technology on real gear – so you may not notice the differences. So this section lists differences and issues that we have seen when using CPT to do this lab.
Beyond comparing your answers to this lab’s Answers post, you can test in Cisco Packet Tracer (CPT) or Cisco Modeling Labs (CML). In fact, you can and should explore the lab once configured. For this lab, once you have completed the configuration, try these verification steps.Â
- From switch Dist1, issue the show spanning-tree vlan 10 command. Note its STP/RSTP Bridge ID (BID).
- From each switch, issue the show spanning-tree vlan 10 command. Look at the upper part of the output, which identifies the root switch. Note that all should refer to switch Dist1, by its BID, as the root switch.
- Compare the DP roles on all the trunk links between Dist2, Access3, and Access4, which are the switches you configured so that Dist2 should be the DP on those links:
- Issue the show spanning-tree vlan 10 command on each switch.
- On Dist1 and Access1, compare the value of the “Role” heading for the interfaces on the link between the two switches. Dist1 should list “DESG” for “Designated,” while Access3 should list “Altn” for Alternate.
- Likewise, on Dist2 and Access4, make the same comparison. Dist2 should be the DP, with Access4 as an Alternate Port role.
Hi Wendell,
The descriptions for Access3 and Access4 in the CLI are labeled incorrectly in the packet tracer file.
For example, the show running-config command description for G1/1/3 is “Trunk link to Access1” and G1/1/4 is “Trunk link to Access2.” I assume Access1 = Access3, and Access2 = Access4?
Hi Chris,
Thanks. Indeed, the description commands were wrong, because when we revised the labs in 2021, the older lab used names “Access1” and “Access2”. We missed the description commands.
I’ve fixed them – next downloads should show the correct switch names in the description commands.
Thanks for the notice.
Wendell
helo
it is not a big issue to enter this but wanted to let know, that in option with the PT file, Dist2 is missing one entry in config “switchport mode trunk” on interface GigabitEthernet1/1/4.
in show running-configuration it is this:
Dist2#sh run | sec interface GigabitEthernet1/1/4
interface GigabitEthernet1/1/4
description Trunk link to Access4
switchport trunk encapsulation dot1q
Hi Wendll,
I’m running this lab in PT 8.2.0.0162. I changed the Dist2 port G1/1/1’s cost to 2. After that, how can I see the change reflected? Show running-config indeed shows the setting:
!
interface GigabitEthernet1/1/1
description Trunk link to Dist1
switchport mode trunk
spanning-tree cost 2
!
But show spanning-tree vlan 10 shows me cost 4 for all interfaces:
Dist2#sh spanning-tree vlan 10
VLAN0010
Spanning tree enabled protocol rstp
Root ID Priority 28682
Address 00D0.584B.214A
Cost 4
Port 25(GigabitEthernet1/1/1)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32778 (priority 32768 sys-id-ext 10)
Address 00D0.D3CE.856A
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 20
Interface Role Sts Cost Prio.Nbr Type
—————- —- — ——— ——– ——————————–
Gi1/1/4 Altn BLK 4 128.28 P2p
Gi1/1/3 Altn BLK 4 128.27 P2p
Gi1/1/1 Root FWD 4 128.25 P2p
Or is it a bug in PT?
thanks
Hi Vicente,
Interesting. Yep, it’s a “bug”, or at least a “not quite like real”. It’s hard to 100% mimic real.
That said, I experimented, and found this:
PT does not act like real with the “spanning-tree cost n” interface subcommand. In real switches, IOS applies that cost to all VLANs that do not have a specific setting per the spanning-tree cost command. Looks like PT is applying that cost to VLAN 1 only, but not all the others.
PT acts like real if you use the syntax “spanning-tree vlan x cost n”, specifying the VLAN. I’ll update the lab to suggest it as well.
Wendell