CEF (Cisco Express Forwarding)

Hi Laz ,

In this article Rene mentioned that in Tcam we fed and store high level information like
Routing table info
ACL and QoS etc.
At the same time in forum question that Tcam and fib may and may not be available in data plane

Noted point -In both Tcam and fib we want longest match ( Not exact match ) for fast forwarding to reach a specific destination
If both perform routing lookup information den why u consider both at same as its function is same .Is it something like cef come play in case of fib not Tcam .kindly confirm why u use Tcam and fib at same time which is not necessary as per your point of view .

Case 2-

Sir I have a multiple route to reach a specific destination or prefix if some how two or more routes are through eigrp .How they do load balancing and what decided the longest match to reach that prefix .

**Kindly share a example **

What is present in rib and fib table in below ?

Destined network is in same subnet /25 with different next hop address in which two of route are through eigrp and one is ospf.

Destined network is in different subnet /24/25/26 with different next hop address in which two of route are through eigrp and one is ospf

For above scenerio .

What is present in rib ,fib and adjacent table ?

What path they choose to destined a packet in above two case or sceneio ?

Rgds
Shivam Chaudhary

Hello Shivam

You must understand the terms used in context. Just like I described before:

CAM and TCAM are types of hardware memory that can be found (depending on the platform) in both switches (L2/L3) and routers. The terms CAM and CAM table are sometimes used interchangeably to refer to the MAC address table that only switches have, but you must detect that based on the context.

Some routers have CAM and TCAM to contain the FIB, routing table, and other information (access lists, QoS), for faster processing but again, that depends on the platform.

I hope this has been helpful!

Laz

3 Likes

Hello Nandakumar

The FIB can be said to essentially reflect the routing table with all the recursive lookups resolved. A lookup in the FIB results in a pointer to an adjacency entry in the CEF adjacency table, which itself is an egress interface alone (for point to point connections) or an egress interface/next hope IP address combination. In both cases, this means that in the FIB/CEF adjacency table combination, each prefix corresponds directly with an exit interface.

Remember that the purpose of CEF and having these tables exist in hardware is speed. Having already resolved a particular prefix to an interface makes the routing process much faster by eliminating the need for recursive lookups for every route lookup.

I hope this has been helpful!

Laz

4 Likes

Hi Rene /laz,

Question 1:-

Would you please confirm that they built adjacency table for all routes which are present in Fib table or they make entry only for longest match /26 ?

router# show ip route
….
D 192.168.32.0/26 [90/25789217] via 10.1.1.1
 R 192.168.32.0/24 [120/4] via 10.1.1.2
 O 192.168.32.0/19 [110/229840] via 10.1.1.3

Question 2

How can we achieve load-balancing if cef is enable and these are routes present in fib table

router# show ip route
….
D 192.168.32.0/24 [90/4] via 10.1.1.1
R 192.168.32.0/24 [90/4] via 10.1.1.2
O 192.168.32.0/24 [90/4] via 10.1.1.3

Perform Load balancing -

What Route choose for forwarding decision in fib table to destined a packet (192.168.32.3) ? Will it built adjacency table for all routes or make adjacency table only for load balancing routes ?

Question 3

CEF SUPPORT EQUAL COST AND UNEQUEAL LOAD BALACING( Longest match ,AD is same and want both routes take participate in forwarding decision as both have metric different ) .IF YES THEN WHAT THEY LEARN IN ADJACENCY TABLE

Question 4

HOW CEF SUPPORT EQUAL COST LOADBALACING ?

Regards
Shivam Chaudhary

Hello Shivam

Take a look at this post:

I hope this has been helpful!

Laz

1 Like

Hi Laz ,

It’s clear .Thanku very much

I was mentioned and share two question irrespect to this .Woul u please share the response .I think u did not read my previous post.

Rgds
Shivam Chaudhary

1 Like

Hello Shivam

Please be patient. We are responding to all users’ queries in the order in which they have been made. We will do our best to respond as soon as possible.

Thanks!

Laz

1 Like

Hello Shivam

You must understand that TCAM is hardware memory. It is simply a container, a method of storing data. The FIB is a table of data, it is a data structure that is contained within TCAM. You cannot compare the two. The lookup only occurs in the FIB.

In order to see how EIGRP functions as far as load balancing goes, take a look at these lessons:

In order to fully understand how these features function and work together, I suggest you take a detailed look at the following lessons. All of these questions can be answered from the content found within them:

I hope this has been helpful!

Laz

2 Likes

Hello Shivam

CEF will follow whatever routing rules would be used in a normal routing table. If you have a routing table like the one you show here, it is always the shortest prefix that will be used for routing. But, all three will be included in CEF. I created this in the lab where R1 learned the 192.168.32.0/24 prefix from EIGRP with a next hop of 10.10.10.2 and the 192.168.32.0/25 prefix from OSPF with a next hop of 20.20.20.2. The resulting entries in CEF are as follows:

192.168.32.0/24      10.10.10.2           GigabitEthernet0/2
192.168.32.0/25      20.20.20.2           GigabitEthernet0/1

The same routing rules apply.

[quote=“shivam0367, post:129, topic:1148”]

For questions 2, 3, and 4 that have to do with load balancing (all cases have equal cost load balancing), take a look at this Cisco documentation that explains how CEF performs load balancing regardless of the routing protocol used:

I hope this has been helpful!

Laz

1 Like

Hi Laz

First of all a big thank u to understand this conceptual topic .

I had one more doubt as go through with cisco documentry of troubleshooting routing loops with cef.
Sir if serial link between R2 and R4 ( consider both case up and down) and configure floating static route with next hop address 192.168.12.1on R1.At that time .

What changes in Arp entry ?

Would u please tell us what change in arp ,fib and adjacent table on R2 if configure floating static route with and without next hop address .

Kindly share with diagram I want to relate fib and adjacency table with and without next hop adress and what change come if R2 and R4 serial link is back .

Regards
Shivam Chaudhary

Hello Shivam

So let’s say we have this topology:


And we configure in R2, a floating static default route to 192.168.12.1 with a higher AD. So under normal circumstances, default route traffic will be sent to R4, but if R4 fails, the floating static route will kick in and R2 will send traffic to R1.

What changes in the ARP table? As soon as the serial link fails, R2 will remove it from the routing table, and insert the floating static route. This means that the next packet that arrives is forwarded using the floating static route. R2 sees that the next hop IP is 192.168.12.1. It looks it up in the ARP table. If it is there, it encapsulated the packet. If it is not, it sends out an ARP request, asking for the MAC address, and when it gets the information, it populates the ARP table, and encapsualtes that packet.

This takes place when the first packet passes through. After this, the FIB and ADJ table are also updated with this new information so that all subsequent packets will be routed in the data plane.

I hope this has been helpful!

Laz

2 Likes

Does all the Broadcast & Multicast traffic, even in CEF switchs is handle by Control Plane ?
Or CEF enabled routers handle this differently.

Hello Syed

According to the following two documents, CEF does not support IP multicast traffic, nor broadcast traffic. Such traffic is either fast switched or process switched.


I hope this has been helpful!

Laz

1 Like

I’m unable to understand CEF glean. Please help me

Hello Vijay

A glean adjacency is used for directly connected routes. It’s used to tell the router that it should check the ARP table since it can reach the device directly. You can find out more about this and other types of adjacencies at the following lesson:

You may also find some useful information in this forum thread as well:

I hope this has been helpful!

Laz

1 Like

Hi,
“The multilayer switch will use the information from tables that are built by the (control plane) to build hardware tables. It will use the routing table to build the FIB (Forwarding Information Base) and the ARP table to build the adjacency table. This is the fastest switching method because we now have all the layer 2 and 3 information required to forward IP packets in hardware.”
you said all layer 2 infos are here
Now where is the mac address table in FIB ?
Thanks

Hello Sims

The Layer 2 information is not found in the FIB, but is found in the ARP table where the IP to MAC address correspondence is created. The ARP table is used to build the adjacency table. Therefore, layer 2 information is also included in hardware.

I hope this has been helpful!

Laz

Still i am not clear difference between Fast switching and (CEF) Cisco Express Forwarding.
Both store forwarding decision is cached in hardware.
Not sure what do you mean by “Forwarding table created in hardware beforehand”
What i understand from this line is before creating table in hardware it has to learn right?

Hello Rahul

Fast switching involves the creation of a cache in hardware that is created by an initial packet sent to a particular destination. Destination addresses are stored in this high-speed cache. As stated explicitly in this Cisco documentation:

When packets are fast switched, the first packet is copied to packet memory and the destination network or host is found in the fast-switching cache. The frame is rewritten and sent to the outgoing interface that services the destination. Subsequent packets for the same destination use the same switching path. The interface processor computes the CRC.

Conversely, when CEF is used, the information which is stored in a cache in the case of fast switching is split up over several data structures. Specifically the FIB and the Adjacency table. Found within this Cisco documentation, we have the following explanation:

Because there is a one-to-one correlation between FIB entries and routing table entries, the FIB contains all known routes and eliminates the need for route cache maintenance that is associated with switching paths such as fast switching and optimum switching.

Similarly, CEF uses the Adjacency table to maintain Layer 2 information (such as MAC addresses) eliminating the need for time-consuming and resource-consuming ARP lookups and related processing.

I hope this has been helpful!

Laz

HI,

Another question…can linux-based-firewall( i.e Pfsense ) deployed on a generic server, have the same speed capability of a cisco router?

So, can CEF feature can be configured on software?

Thanks