Fabric Path Architecture
Why fabric Path is needed
Cisco Fabric Path combines the best of traditional Layer 2 and Layer 3 technologies to provide new Control Plane as well as data plane. This Technology is mostly used in Data Center on Nexus Switches products like Nexus 7000 and Nexus 5500. Using Fabric Path overcomes these traditional issue which Network faces on day to day basis.
STP blocked port issue:
In Traditional L2 Switching domain, if any switches has more than one connection, it will be automatically blocked by STP to avoid L2 Loop in switching domain. Troubleshooting STP issue is also a nightmare as we have to find the redundant connection, Blocked Port issue, Duplicate MAC issue. Also if we have multiple connection we cannot use equal cost multipath in STP domain, due to STP blocked port feature.
STP Suboptimal Path Issue:
As we know that STP blocks the redundant links , due to which even though the source and destination is connected through direct link and if this link is blocked by STP then the traffic will move and reach to destination after crossing more hops.
VPC multiple Peer Switch issue:
Even though VPC may have solved the STP blocked port issue and also provided the best solution in Port-channel redundancy mode, but in VPC we can only have maximum 2 peer switch in domain. If we want to add more Peer switch in VPC domain to achieve equal cost multipath solution, VPC will not work here.
So all these issue discussed here can be resolved by using Fabric path and we can connect multiple switches and still achieve equal cost multipath solution without blocking any ports.
Apart from these issue, following are the benefits using Fabric Path in DC:
- Plug and play Solution, with least configuration and easy to manage
- Due to ECMP solution, helps in increasing the BW.
- Due to multiple switch connected and al connection is in forwarding state, it provide High available environment.
- No STP issue and troubleshooting
- Fabric path is scalable in nature
Fabric Path Architecture:
As soon as you configure the fabric path on switch, some process runs on supervisor engine while some process related to fabric path runs on I/O module. Below is the Fabric Path architecture on cisco Nexus 7000 Series switches.
Following is the process, Fabric Path uses to build its control plane with its component.
As soon as Fabric path is Configured, DRAP protocol called Dynamic Resource Allocation Protocol will allocate or negotiate the unique switch ID on each switch over which fabric path is running.
Cisco fabric Path ISIS which helps in sharing this Unique Switch ID to each fabric Path switch, and if any conflict is detected, DRAP will allocate a different value until no conflicts exists. Here you can also configure unique SID on each switch to avoid SID negotiation process.
Now Once Unique SID is allocated, IS-IS protocol uses this SID to determine the forwarding topology which describes the possible path through which any Switch can reach to another switch and keep this in table called U2RIB
Now once U2RIB is populated, Supervisor send this information to U2FIB and finally all routes to reach each switch ID is installed in Switch Table.
Supervisor will also learn the Layer 2 Information of Host machine connected to Network and will put this information to L2FM table called Layer 2 Forwarding Manager, which further stored in MAC table of each line card.
For Multicast traffic, IGMP process runs on supervisor which supports IGMP supports and builds multicast databases on M2RIB. From these databases best Multicast routes are further installed in M2FIB on each line cards.
So for unicast traffic , each line card or I/O module has two types of table called Switch Table and MAC table , which fabric path uses to forwards data traffic in fabric path domain.
Fabric Path Interfaces & Switches
There are two types of interfaces used in fabric path domain. These are as follows:
Core Port: Those interfaces which are part of fabric path domain and is called as core port. This Port is responsible for encapsulation of ethernet frame to fabric path frame. In this port no MAC address of host are learned. Those switch which only contains core ports are called as Spine Switch
Edge Port: Those port which are part of ethernet domain and is used to forwards ethernet frames only is called Edge Ports. On this port any classical ethernet switch or host can be connected and this port learn the MAC address. Those switch which are part of this edge port are called as edge switch. So the edge switch has one or more ports connected to fabric path domain and some ports are also connected to classical ethernet domain.
Below diagram states the concepts about both ports
Fabric Path Frame architecture:
Below diagram explains the architecture of Fabric path frame. All Ethernet frames are encapsulated by 16 Bytes long fabric path header while traversing inside Fabric Path domain.
The original Ethernet frame which also contains 801.1Q tag is encapsulated with 48 bit Outer DA and 48 bit Outer SA and 32 Bit FPTag.
These Outer DA and Outer SA has three fields inside it, which is mentioned as follows:
Switch ID: Outer SID of fabric Path switch, it can be source Switch ID or Destination Switch ID.
Sub Switch ID: This Id generally indicates the VPC+ Port-channel interface which can acts as source or destination. Cisco Fabric Path switches running vPC+ use this field to identify the specific vPC+ Port Channel on which traffic is to be forwarded. The sSID value is locally significant to each vPC+ switch pair. In the absence of vPC+, this field is set to 0
Port ID: It is the local port ID of VPC+ port channel physical interfaces on which any packet can be sources or destined. The value is locally significant to each switch.
Now in FPTag filed also has three sub fields lets discuss these also.
- Etype: This describe that the packet is not Ethernet packet and is fabric path packet.
- FT Tag: This indicated which multidestination will be used to forwards BUM traffic.
- TTL: It is used to avoid the Loop in fabric path domain, as any fabric path packet moves hopes by hopes it value decrements by 1 from 32 and when it reaches to 0 packet is dropped.