Operating the backbone in SPB
SPB usually “just works”, but hey - We all know that this is supposed to be true for a lot of things. Oddly enough, this seems to never be applicable when YOU try do to something, right? Having a grasp of some basic operational commands and being able to validate the SPB config will take you a long way, and will make it easy to correct simple mistakes. This isn’t by any means a comprehensive guide to troubleshooting, just some basic operational commands.
Let’s start with the backbone:
In an ALE switch, you navigate around the AOS the same way as in most other brands - You use what you know, and use “?” to see what more applies. You can choose to take a look at the configuration (like show run commands) or what is running right now. In this case, we know that SPB is what we look for, so let’s start what’s running right now:
BRANCH-USR-Core:: show spb ?
^
ISIS IPVPN6 IPVPN
(Shortest Path Bridging Command Set)
Ok, SPB is based on ISIS, so let’s add that:
Branch-USR-Core:: show spb isis ?
^
UNICAST-TABLE SPF SERVICES
RAPID-LSP-CONVERGE-TABLE RAPID-LSP-CONVERGE-INFO
NODES MULTICAST-TABLE MULTICAST-SOURCES-SPF
MULTICAST-SOURCES INGRESS-MAC-FILTER INTERFACE
INFO DATABASE BVLANS ADJACENCY
(Shortest Path Bridging Command Set)
Since we’re checking out the backbone currently, let’s focus on the ones that obviously are linked to the backbone functions: INTERFACE, NODES, ADJACENCY, and BVLANS:
BRANCH-USR-Core:: show spb isis interface
SPB ISIS Interfaces:
Oper Admin Link Hello Hello Circ
Interface Level CircID state state Metric Intvl Mult Type
---------------+-------+----------+------+-------+---------+-------+------+------------
1/1/47 L1 1 DOWN UP 4000 9 3 Pt-to-Pt
1/1/48 L1 2 UP UP 4000 9 3 Pt-to-Pt
1/1/49A L1 3 DOWN UP 10 9 3 Pt-to-Pt
1/1/50A L1 4 UP UP 10 9 3 Pt-to-Pt
1/1/51A L1 5 DOWN UP 1000 9 3 Pt-to-Pt
Here, we can see all interfaces currently configured for the SPB backbone, L1 is the type for SPB-ISIS interfaces, we see the circuit-id, and that some are down, some are up, but all are enabled. We also see the link metric, and that hello messages are sent every 9 seconds, and adjacency is declared lost if 3 checks in a row fails. The circuit type is point-to-point.
BRANCH-USR-Core:: show spb isis nodes
SPB ISIS Nodes:
System Name System Id SourceID BridgePriority
--------------------+---------------+--------+---------------
BCB-1 9424.e14e.4945 0xe4945 32768 (0x8000)
BCB-2 9424.e14e.4999 0xe4999 32768 (0x8000)
BEB-1 9424.e14f.4193 0xf4193 32768 (0x8000)
BEB-2 9424.e14f.43c3 0xf43c3 32768 (0x8000)
Customer-1 9424.e15a.e6a1 0xae6a1 32768 (0x8000)
Customer-2 9424.e164.b39a 0x4b39a 32768 (0x8000)
Customer-3 9424.e164.b3c4 0x4b3c4 32768 (0x8000)
Customer-4 9424.e164.bb34 0x4bb34 32768 (0x8000)
BRANCH-USR-Core 9424.e17c.3081 0xc3081 32768 (0x8000)
Customer-5 9424.e17c.3135 0xc3135 32768 (0x8000)
The above command shows us all the SPB nodes in total that the BRANCH-USR-Core has discovered, including itself. System name is what it is, system Id is the unique node-id in the SPB domain (BMAC). SourceID is a 20-bit identifier used for mapping the origin of BUM traffic (only relevant in tandem multicast mode, check out this post about multicast modes). The bridge priority is used as a tie breaker during path computation. By manipulating the bridge priority, you can create a similar hierarchy as you would with STP, with lowest prio in the core etc.
BRANCH-USR-Core:: show spb isis adjacency
SPB ISIS Adjacency:
System
(Name : SystemId) Type State Hold Interface
-------------------------------------+------+-------+------+----------
Customer-2 : 9424.e164.b39a L1 UP 22 1/1/48
BEB-2 : 9424.e14f.43c3 L1 UP 19 1/1/54A
The command above shows us all adjacencies that the local node have established to other nodes. Again, we see the node name, system ID (BMAC) as well as the type (always L1 for SPB IS-IS). We also see state, the hold time (seconds until the adjacency is declared lost if no “hello” message is recieved), and the interface where the adjacency is formed.
BRANCH-USR-Core:: show spb isis bvlans
SPB ISIS BVLANS:
Services Num Tandem Root Bridge
BVLAN ECT-algorithm In Use mapped ISIDS Multicast (Name : MAC Address)
-------+-----------------+-------+---------+------+----------+----------------------------------------
4000 00-80-c2-01 YES NO 0 SGMODE
4001 00-80-c2-02 YES YES 23 SGMODE
4002 00-80-c2-03 YES YES 27 SGMODE
4003 00-80-c2-04 YES YES 31 SGMODE
4004 00-80-c2-05 YES YES 16 SGMODE
BVLANs: 5
The command “show spb isis bvlans” shows us the number of BVLANs, the ECT-algorithm used, if the BVLAN is used, and have any services mapped to it. BVLAN 4000 have no services mapped, since it is used for the IS-IS control plane messaging. The other BVLANs have quite a few services mapped, and all are using SG-mode multicast replication. The root bridge is only visible for the BVLANs that use (*,G)tandem replication.
BRANCH-USR-Core:: show spb isis unicast-table
SPB ISIS Unicast MAC Table:
Destination Outbound
BVLAN (Name : MAC Address) Interface
------+----------------------------------------+-----------
4000 BCB-1 : 94:24:e1:4e:49:45 1/1/48
4000 BCB-2 : 94:24:e1:4e:49:99 1/1/48
4000 BEB-1 : 94:24:e1:4f:41:93 1/1/48
4000 BEB-2 : 94:24:e1:4f:43:c3 1/1/54A
4000 Customer-1 : 94:24:e1:5a:e6:a1 1/1/54A
4000 Customer-2 : 94:24:e1:64:b3:9a 1/1/48
4000 Customer-3 : 94:24:e1:64:b3:c4 1/1/48
4000 Customer-4 : 94:24:e1:64:bb:34 1/1/48
4000 Customer-5 : 94:24:e1:7c:31:35 1/1/48
4001 BCB-1 : 94:24:e1:4e:49:45 1/1/48
4001 BCB-2 : 94:24:e1:4e:49:99 1/1/48
4001 BEB-1 : 94:24:e1:4f:41:93 1/1/48
4001 BEB-2 : 94:24:e1:4f:43:c3 1/1/54A
4001 Customer-1 : 94:24:e1:5a:e6:a1 1/1/54A
4001 Customer-2 : 94:24:e1:64:b3:9a 1/1/48
4001 Customer-3 : 94:24:e1:64:b3:c4 1/1/48
4001 Customer-4 : 94:24:e1:64:bb:34 1/1/48
4001 Customer-5 : 94:24:e1:7c:31:35 1/1/48
4002 BCB-1 : 94:24:e1:4e:49:45 1/1/48
4002 BCB-2 : 94:24:e1:4e:49:99 1/1/48
4002 BEB-1 : 94:24:e1:4f:41:93 1/1/48
4002 BEB-2 : 94:24:e1:4f:43:c3 1/1/54A
4002 Customer-1 : 94:24:e1:5a:e6:a1 1/1/54A
4002 Customer-2 : 94:24:e1:64:b3:9a 1/1/48
4002 Customer-3 : 94:24:e1:64:b3:c4 1/1/48
4002 Customer-4 : 94:24:e1:64:bb:34 1/1/48
4002 Customer-5 : 94:24:e1:7c:31:35 1/1/48
4003 BCB-1 : 94:24:e1:4e:49:45 1/1/48
4003 BCB-2 : 94:24:e1:4e:49:99 1/1/48
4003 BEB-1 : 94:24:e1:4f:41:93 1/1/48
4003 BEB-2 : 94:24:e1:4f:43:c3 1/1/54A
4003 Customer-1 : 94:24:e1:5a:e6:a1 1/1/54A
4003 Customer-2 : 94:24:e1:64:b3:9a 1/1/48
4003 Customer-3 : 94:24:e1:64:b3:c4 1/1/48
4003 Customer-4 : 94:24:e1:64:bb:34 1/1/48
4003 Customer-5 : 94:24:e1:7c:31:35 1/1/48
4004 BCB-1 : 94:24:e1:4e:49:45 1/1/48
4004 BCB-2 : 94:24:e1:4e:49:99 1/1/48
4004 BEB-1 : 94:24:e1:4f:41:93 1/1/48
4004 BEB-2 : 94:24:e1:4f:43:c3 1/1/54A
4004 Customer-1 : 94:24:e1:5a:e6:a1 1/1/54A
4004 Customer-2 : 94:24:e1:64:b3:9a 1/1/48
4004 Customer-3 : 94:24:e1:64:b3:c4 1/1/48
4004 Customer-4 : 94:24:e1:64:bb:34 1/1/48
4004 Customer-5 : 94:24:e1:7c:31:35 1/1/48
MAC Addresses: 45
In this output in the example above, we can see the egressing interface when sending traffic to that node. The mac-address is the system-id, so we’re only seeing nodes mac-addresses. Paths can and will differ between BVLANs due to their different SPT algorithms.
SH-USR-Core:: show spb isis spf bvlan 4000
SPB ISIS Path Table:
Destination Outbound Next Hop SPB Num
(Name : BMAC) Interface (Name : BMAC) Metric Hops
----------------------------------------+----------+----------------------------------------+------+------
BCB-1 : 94:24:e1:4e:49:45 1/1/48 Customer-2 : 94:24:e1:64:b3:9a 12000 3
BCB-2 : 94:24:e1:4e:49:99 1/1/48 Customer-2 : 94:24:e1:64:b3:9a 8000 2
BEB-1 : 94:24:e1:4f:41:93 1/1/48 Customer-2 : 94:24:e1:64:b3:9a 16010 5
BEB-2 : 94:24:e1:4f:43:c3 1/1/54A BEB-2 : 94:24:e1:4f:43:c3 1000 1
Customer-1 : 94:24:e1:5a:e6:a1 1/1/54A BEB-2 : 94:24:e1:4f:43:c3 11000 2
Customer-2 : 94:24:e1:64:b3:9a 1/1/48 Customer-2 : 94:24:e1:64:b3:9a 4000 1
Customer-3 : 94:24:e1:64:b3:c4 1/1/48 Customer-2 : 94:24:e1:64:b3:9a 12000 3
Customer-4 : 94:24:e1:64:bb:34 1/1/48 Customer-2 : 94:24:e1:64:b3:9a 8000 2
Customer-5 : 94:24:e1:7c:31:35 1/1/48 Customer-2 : 94:24:e1:64:b3:9a 16000 4
SPF Path count: 9
This command “show spb isis spf bvlan 4000” gives use the resulting paths of the current shortest path forwarding tree calculations for bvlan 4000 in your local node. We see the destination + its BMAC, and the next hop node + its BMAC, the SPB total metric for the path, and the total number of hops until the traffic reaches its destination.
Checking the configuration
BRANCH-USR-Core:: show configuration snapshot spb
! SPB-ISIS:
spb isis bvlan 4000 ect-id 1
spb isis bvlan 4001 ect-id 2
spb isis bvlan 4002 ect-id 3
spb isis bvlan 4003 ect-id 4
spb isis bvlan 4004 ect-id 5
spb isis control-bvlan 4000
spb isis interface port 1/1/43 metric 4000
spb isis interface port 1/1/45 metric 4000
spb isis interface port 1/1/46 metric 4000
spb isis interface port 1/1/47 metric 10000
spb isis interface port 1/1/48 metric 4000
spb isis interface port 1/1/49A
spb isis interface port 1/1/54A
spb isis interface port 1/1/56A
spb isis admin-state enable
spb ipvpn bind vrf hyperv isid 20000 gateway 100.64.90.1 all-routes
The above command is the equivalent to “sho run …” in a Cisco, you are checking the configuration. Without any options, it will show the configuration in clear text. In the above case, it will show everything that regards SPB. Show configuration snapshot can be used with just about any keyword in the configuration, like:
show configuration snapshot interface
show configuration snapshot ip interface
show configuration snapshot ipv6 interface
show configuration snapshot ospf
show configuration snapshot bgp
And you can always use the question mark to see all options on every level.
With these seven commands, you can quickly get a very good grasp of the current state of your backbone topology. Now, we will take a look on how to operate services.