We will be using a simple topology to understand the concept :
We made loopbacks each on R1& R2 and configure default static-routing with next hop interfaces on R2.
Configuration is like this :
Configuring Default-routes on R1:
Now we did traceroute from R1 to Loopback 126.96.36.199 on R2 :
Take a look … it is sending one packet from 188.8.131.52/24 network and other from
And this is what R1 shows but whats happening behind the scenes on R2 ?
Enabling Debug ip packet on R2 will help to know the sources of packets .
So, this is interesting ….
For one packet source is 184.108.40.206 ( interface S0/0)
And for another 220.127.116.11 (interface S0/1) and the process take place like this and packets are sended from each serial interface of R1 alternatively .
But here’s the catch ….
With traceroute load-balancing is working fine but when I tried with PING to 18.104.22.168
And as usual #debug ip packets was enabled on R2 . Things are not in favour now 🙁
They are only using same route to send and receive packets .
And at the same time on R1
Note: Routed packets via FIB …
I saw it is following only 22.214.171.124/24 network to send packets . No load balancing .
Look at the above picture carefully ,
When R1 is sending packet s=126.96.36.199 , d=188.8.131.52, routed through RIB.
And When R2 is sending Acknowledgement reply for this packet when s=184.108.40.206 and d=220.127.116.11, routed via FIB.
Mummble …. Now whats that CEF, FIB, RIB ??
RIB – routing information base
FIB – forwarding information base
CEF– Cisco Express Forwarding
Once CEF is enabled, it will form the FIB table with the help of Routing table. Now router no longer looks on RIB and FIB acts as replacement for RIB.
CEF also generates adjacency table which pre-maps all of the next hop ip as well as MAC address so as we configure Static routing, CEF add routes to FIB (forwarding information base) and send the packets through the interface which is added first into the table and the static route we have configured first will be added first and will be used to send packets .
Since, here 18.104.22.168/24 is stored first as well as configured first for static route so it will be using 22.214.171.124/24
At the same moment and it will not check the routing table when sending packets to another router/network from then on unless there is change in the routing table and will forward all the packets based on CEF table only.
CEF is ON by default on the routers.
Now, try to debug after Disabling CEF on R1
We are successful to load-balance equally from R1-R2 by disabling CEF. J
NOTE: Routed via RIB not FIB i.e. No longer using FIB table created by CEF.
Now, why?? Why ?? traceroute is able to do load-balancing without disabling CEF ?
Better to find out through practical approach
CEF is enable (by default)
Enable #debug ip packet and
Traceroute to 126.96.36.199
Note : sending broad/multicast .
Now, why it was choosing 188.8.131.52/24 not 184.108.40.206/24 network when we are sending packets through PING ??
Thank you for reading .