Cisco ships their equipment with their proprietary RPVST – Rapid Per VLAN Spanning-Tree
Juniper ships their equipment with the standard RSTP – Rapid Spanning-Tree.
These two protocols are not compatible and when you attempt to throw them into an environment together your Cisco equipment will err-disable the involved interfaces in an effort to protect the network.
In this instance and these examples I am using an EX series switch running version 15 code. QFX devices will have a slightly different configuration which require you to specify the interfaces you want to participate in spanning-tree.
There are two options to make these two devices cooperate with each other.
1 – Deploy VSTP on your Juniper equipment. VSTP is interoperable with with Cisco’s RPVST.
2 – Deploy MSTP on both Cisco and Juniper equipment.
Lets look at the configuration of both of these. In both cases I will explicitly configure Cisco to be root with a priority of 8192
For option 1, deploying VSTP on Juniper equipment there are no changes needed on your Cisco gear. Older gear that ships with PVST as well as newer gear that ships with RPVST will both interoperate with Juniper’s VSTP. But there are limitations. Juniper only supports 250ish VLANs on most platforms. Some higher end platforms support up to 500 some-odd VLANs.
Your Cisco configuration will look like the following
cisco# show run | in spanning-tree
spanning-tree vlan 1-4094 priority 8192
!
spanning-tree mode pvst
or
spanning-tree mode rapid-pvst
!
interface GigabitEthernet1/0/7
switchport trunk encapsulation dot1q
switchport mode trunk
!
interface GigabitEthernet1/0/8
switchport trunk encapsulation dot1q
switchport mode trunk
!
Your Juniper configuration will look like the following
root@juniper# show protocols
rstp;
vstp {
vlan all;
}
ge-0/0/0 {
unit 0 {
family ethernet-switching {
port-mode trunk;
vlan {
members all;
}
native-vlan-id 1;
}
}
}
ge-0/0/1 {
unit 0 {
family ethernet-switching {
port-mode trunk;
vlan {
members all;
}
native-vlan-id 1;
}
}
}
To validate that spanning-tree is operating as expected we should see both interfaces Desg FWD on the Cisco device. On the Juniper device we should have one interface Root FWD and one interface Alkt BLK. Well only be looking at VLAN 1-3 for brevity.
cisco#show spanning-tree
VLAN0001
Spanning tree enabled protocol ieee
Root ID Priority 8193
Address 0016.c8b5.8f80
This bridge is the root
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 8193 (priority 8192 sys-id-ext 1)
Address 0016.c8b5.8f80
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300 sec
Interface Role Sts Cost Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Gi1/0/7 Desg FWD 4 128.7 P2p
Gi1/0/8 Desg FWD 4 128.8 P2p
VLAN0002
Spanning tree enabled protocol ieee
Root ID Priority 8194
Address 0016.c8b5.8f80
This bridge is the root
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 8194 (priority 8192 sys-id-ext 2)
Address 0016.c8b5.8f80
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300 sec
Interface Role Sts Cost Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Gi1/0/7 Desg FWD 4 128.7 P2p
Gi1/0/8 Desg FWD 4 128.8 P2p
VLAN0003
Spanning tree enabled protocol ieee
Root ID Priority 8195
Address 0016.c8b5.8f80
This bridge is the root
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 8195 (priority 8192 sys-id-ext 3)
Address 0016.c8b5.8f80
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300 sec
Interface Role Sts Cost Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Gi1/0/7 Desg FWD 4 128.7 P2p
Gi1/0/8 Desg FWD 4 128.8 P2p
root@juniper# run show spanning-tree interface
Spanning tree interface parameters for instance 0
Interface Port ID Designated Designated Port State Role
port ID bridge ID Cost
ge-0/0/0.0 128:513 128:8 8193.0016c8b58f80 20000 BLK ALT
ge-0/0/1.0 128:514 128:7 8193.0016c8b58f80 20000 FWD ROOT
Spanning tree interface parameters for VLAN 2
Interface Port ID Designated Designated Port State Role
port ID bridge ID Cost
ge-0/0/0.0 128:513 128:8 8194.0016c8b58f80 20000 BLK ALT
ge-0/0/1.0 128:514 128:7 8194.0016c8b58f80 20000 FWD ROOT
Spanning tree interface parameters for VLAN 3
Interface Port ID Designated Designated Port State Role
port ID bridge ID Cost
ge-0/0/0.0 128:513 128:8 8195.0016c8b58f80 20000 BLK ALT
ge-0/0/1.0 128:514 128:7 8195.0016c8b58f80 20000 FWD ROOT
Option 2 is to use MSTP. A simple configuration using a single MSTI is below.
The Cisco configuration will look like the following:
cisco# show running | in spanning-tree
spanning-tree mode mst
!
spanning-tree mst configuration
name MSTP
!
spanning-tree vlan 1-4094 priority 8192
!
The Juniper configuration will look like the following:
root@juniper# show protocols
mstp {
configuration-name MSTP;
}
We can validate the configuration by looking at the spanning-tree interfaces again.
cisco#show spanning-tree
MST0
Spanning tree enabled protocol mstp
Root ID Priority 32768
Address 0016.c8b5.8f80
This bridge is the root
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32768 (priority 32768 sys-id-ext 0)
Address 0016.c8b5.8f80
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Interface Role Sts Cost Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Gi1/0/7 Desg FWD 20000 128.7 P2p
Gi1/0/8 Desg FWD 20000 128.8 P2p
root@juniper# run show spanning-tree interface
Spanning tree interface parameters for instance 0
Interface Port ID Designated Designated Port State Role
port ID bridge ID Cost
ge-0/0/0.0 128:513 128:8 32768.0016c8b58f80 20000 BLK ALT
ge-0/0/1.0 128:514 128:7 32768.0016c8b58f80 20000 FWD ROOT