Fabric Path Traffic Flow
Packet Flow in FabricPath
In order to send traffic in fabric path domain, Once Network administrator has configured the Fabric Path correctly, Switch table and other table like Multi destination tree will already be created.
In previous section we have given idea about how switch table will be created now we will learn how Multidestination tree along with MAC table will be populated and then how data traffic will flow between source and destination.
Following are the table types which will be used for following types of table.
- For Broadcast, unknown unicast, and Multicast: Multidestination tree, MAC table is used.
- For Unicast traffic (data traffic): Switch table and MAC Table is used.
Now we will see how multidestination tree is created to handle broadcast, unknown unicast, and Multicast traffic.
For broadcast (ARP Request), unknown unicast (ARP Reply in fabric path only), and multicast, multidestination trees are created. In fabric path domain two multidestination trees are created for which two root switch to be defined. Root Switch can be define or elected by following method.
- Root Priority: 8 bit value between 0 and 255 (default value is 64)
- System ID: 48 bit composed of VDC MAC address
- Switch ID: 12 Bit unique SID.
In this domain, one switch become root for multidestination Tree 1 by using values. Higher values will be used for Root Switch Negotiation. Once a switch becomes root for Multidestination Tree 1 then second root switch will be negotiated by using these values among other switches. So by this we have two root switch one root switch for Multidestination Tree 1 and second root switch for Multidestination Tree 2.
By root-Priority command you can also define manual Priority of any switch.
Once Root Switch is defined, Root Switches will create multidestination Tree (Tree-1 and Tree-2) based on shortest path to reach to all other switches in fabric path domain.
Below diagram can explain what we have read above:
Out of above switch two root Switches S100 for Tree-1 and S400 for Tree-2 is defined. Now S100 and S400 will create its respective Multidestination based on shortest path to reach other switches.
Before Going to How data traffic flows and how ARP request and ARP reply works, Lets understand how MAC address learning occurs in Fabric Path domain.
Fabric Path Conversational MAC Learning:
In this there is a rule defined in MAC address learning in fabric Path domain which states that only Cisco fabric Path edge switch will populate the MAC table and use MAC address table to forward frames, whereas Core switches will not learn the MAC address and frame forwarding with in fabric is based on the outer destination address of Fabric path header.
When MAC table is populated in Fabric Path, there will be two types of entry, local and remote.
- Local MAC address entry: Any MAC address of host which is directly connected to switch.
- Remote MAC address entry: Any MAC address which is connected on different fabric Path enabled switches and is learned after bi-direction communication has been established.
In order to learn the MAC address as remote address there is rule, for unicast frames received switch will learn the Source MAC address as remote MAC address entry only if the destination MAC address matches an already learned local MAC address entry. Switch learns remote MAC addresses only if the remote device is having a bidirectional conversation with a locally connected device; unknown unicast frames being flooded in the Cisco Fabric Path network do not necessarily trigger learning on edge switches.
MAC address learning on Mixed VDC has different procedure, we will discuss here, let’s suppose you have switch which have M1 line card and has connectivity to L3 Outside network and also has F1 module connected to Fabric path domain. So in this scenario the MAC addresses of any hosts behind a particular Cisco Fabric Path core port are learned as remote MAC address entries on the forwarding engine ASIC controlling that core port.
Cisco fabric Path Packet Forwarding:
Here we will discuss two two host communicates with each other in fabric Path domain. Let suppose Host A and Host B in same VLAN 10 wants to communicated with each other, Host A connected to Switch ID S10 and Host B is connected to Switch S30 Switch.
ARP Request Procedure
- When Host A initiates the ping to Host B, host A will search for MAC address of host B in its ARP table, which it will not find. So Host A will creates the ARP request with Source MAC A and Destination Mac FFFF and will send to switch to which it is connected to.
- Once ARP packet is received, S10 will learn the MAC address of Host A as local MAC address in its MAC table on port to which it is connected to.
- Upon receiving switch S10 will see for this ARP request which is broadcast packet, it will look for Multidestination Tree table and by default will select Multidestination tree-1 and will find that it can forward that ARP packet to following port E1/1, E1/2, E1/3, E1/4. Now S10 will encapsulates the packet to fabric Path packet with Outer DA is set to FF and FTag is 1 and SA is 10.0.2 which is Switch ID of S10.
- Now As this encapsulated ARP packet reaches to S100 , it sees that it is broadcast packet and it will consult for its Multidestination tree and select the Tree-1 and send the ARP packet to E1/2 and E1/3 ports without learning any MAC address.
- When ARP packet reaches to S30, S30 will consult the Multidestination Tree and select the Tree-1 and forwards the packet to E1/2, E1/3, E1/4 and also it has host connected to this VLAN, then S40 will decaptulate the packet and forwards the original Ethernet frame to Host B and will not Learn the MAC A in its MAC table due to Conversational MAC address learning rule.
- In this way ARP request will be sent from Host A to Host B by fabric Path domain switches.
- Also in between the other switches will also receive this broadcast frame , will follow their same Multidestination Tree and will forwards the packet according to that and ultimately will drop as Host B is not connected to any another switch.
Unicast ARP Response:
Once ARP request is received by Host B, It will process and creates the ARP reply and will send the ARP reply to S30. S30 in turn the mac address of Host B in its mac table as local and will reach for destination mac address details, where it will be a miss.
- Now S30 will treat this ARP reply as unknown unicast packet as it has not learned the MAC of Host A while ARP request processing due to conversational learning rule. Now S30 will consult the Multidestination tree and select the Tree-1 to send this ARP Reply packet.
- Now S30 will encapsulate the ethernet ARP reply to with following information with Outer DA is fabric Path reserved Multicast MAC address (01:0F: FF: C1:01:C0), with SA is 30.0.2 and FTag 1. Once Encapsulation is done it will forward the packet to Tree-1 members E1/1, E1/2, E1/3, and E1/4.
- Now As ARP Reply is received by S100, it will consult the Multidestination Tree and select the Tree-1 and forwards the ARP Reply to all of it member like Eth1/2, E1/1 as S100 has no entry of Host A.
- Once ARP Reply reaches to S10, S10 will it will look for Multidestination tree and Select the Tree-1 which has only one member E1/1 through which it has received the ARP response, it will not forwards to any other member as it has only one Port on Tree-1.
S10 will learn the host B Mac address B in its MAC address table as remote (30.0.2) due to bi-directional communication of conversational MAC address learning feature. Now the decapsulated ethernet frame is forwarded to E1/5 as S10 find this MAC A connected to Eth1/5 on its MAC address table while Layer-2 lookup.
Now Host A will send the unicast data to Host B with SMAC is MAC A and DEST MAC is MAC B. This Ethernet frame reached to S10 , where S10 will check the MAC address table and will find that MAC B is connected to S30 ( 30.0.2).
- S10 will encapsulate the Ethernet Frame to fabric path frame with Outer DA is 30.0.2 and Outer SA is 10.0.2 with FTag is 1. And now will look for Switch table to reach to S30. It will find that to reach S30 it has multipath interface like E1/1, E1/2, E1/3, and E1/4.
- Now S10 will do Hashing and based on Hash result it will select the interface like E1/4 and forward this frame to S400, where S400 will also consult the Switch table and send the data traffic to S30.
- As soon as S30 received the packet it will also check the Switch table where it find that destination ID 30.0.2 is local to switch and then it will decapsulate this fabric Path frame and learns the Source Host A MAC address “A” in its MAC address table with SID 10.0.2 remote and forwards the ethernet packet to Host B.
This is how Host A will be able to send packet to Host B. Same procedure Host B will take to send the reply packet to Host A.