FabricPath
- enhanced L2 license
- Clos, IS-IS
- data plane learning
- does not transport BPDU (including TCN), 802.1Q tags
- STP BID for FP: c84c.75fa.6000 – static ≡ single switch for STP
- FP is always STP root
- edge have same priority
- edge have RootGuard on all ports, otherwise STP loop via FP
- edge ports – trunks
- incompatible with VXLAN
(config)# install feature-set fabricpath
(config)# feature-set fabricpath
(config)# fabricpath switch-id <ID>
(config)# fabricpath domain default
(config-fabricpath-isis)# topology <N>
; 16 default
(config-fabricpath-isis-topo)# maximum-path <N>
(config-fabricpath-isis-topo)# member vlan <RANGE>
; disabled by default, allow VLAN to FP
(config-vlan)# mode fabricpath
; FP encapsulation
(config-if)# switchport mode fabricpath
# show fabricpath route
# show fabricpath isis interface brief
FabricPath frame
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ODA |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
| OSA |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0x8903 | Ftag | TTL |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination MAC |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
| Source MAC |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0x8100 |Prio |D| VLAN ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ethertype | \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ /
\ Data \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CRC (new) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
ODA/OSA: outer destination/source address
Ftag: forwarding graph (unique)
ODA/OSA format
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved |1|I| Rsvd | Switch ID | Sub Switch ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local Port ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
I: individual/group address
Switch ID: FP switching, unique
Sub Switch ID: o or vPC+
Local port ID: locally significant, src/dst port – reduced MAC lookups
Ftag
- unicast traffic: Ftag = 0 (FP topology)
- BUM traffic: multidestination tree
- ingress switch load-balances traffic over Ftag trees
- core switches replicate traffic to all ports in a tree, except ingress port
- topology separation – reduce BUM scope
Dynamic resource allocation protocol (DRAP)
- assigns switch ID:
- random
- if new switch chooses existing ID – rerun random on new switch
- switch with lower switch ID retains switch ID, another switch selects new value
- system ID = MAC
- assign Ftag
- 2 trees
- root election
- highest priority
- higher MAC (VDC MAC)
- switch ID is higher
- data plane forwarding is prohibited before switch ID negotiation
; 64 default, multidestination tree priority
(config-fabricpath-isis-topo)# root-priority <N>
Data plane
- ingress switch
- MAC lookup → switch ID → FP next-hop
- FP encapsulation
- TTL = 32
- MAC learning on frame src
- core switch
- switch ID lookup → FP next-hop
- TTL decrement
- forwarding is based on ODA
- no MAC learning
- egress switch
- verifies ODA = own switch ID
- LID or MAC lookup
- conversational MAC learning: learn src MAC if dst MAC is already known
- bcast refreshes only existing entries, does not create new entries (e.g., gratuitous ARP)
- mcast triggers learning: forwarding with FHRP enabled in segment
vPC+
- solves MAC flapping: MAC in known from different switch IDs due to load-balancing
- emulated switch ID for vPC peers in transmitted frames with user traffic
- emulated switch ID is reachable via both vPC peers in IS-IS
(config-vpc-domain)# fabricpath switch-id <ID>