I was working on my CCIE BGP lab the other day using Cisco IOU.
While I was at it I had to advertise Loopback interfaces using Rip ver 2 so that I could create IBGP full mesh using the loopback. but it turns out, RIP was not working in my lab.
This was the network topology I was working on.
Testing the IP connectivity
After configured the IP’s I tested its connectivity using ping, and made sure it was working fine.
R-1#ping 10.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds: .!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 5/5/5 ms R-1#ping 10.1.1.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.2, timeout is 2 seconds: .!!!! Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/3 ms R-1#ping 10.1.1.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.3, timeout is 2 seconds: .!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/5 ms R-1#ping 10.1.1.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.4, timeout is 2 seconds: .!!!! Success rate is 80 percent (4/5), round-trip min/avg/max = 2/3/5 ms R-1#
Then I configured RIP version 2 with full confidence, did the RIP started to work?
Nope! its, not working still.
Rip routes not in the routing table
Rip routes not in the routing table, Rip routes are not being learned by any of the routers. What could be the cause?
At that moment I thought to myself, I knew how to configure Rip routing protocol but now RIP not working at all.
removed the rip config and configured back again but with no luck.
See the Rip configuration and IP route output from R-1, RIP routes not in the routing table, meaning RIP is not working.
R-1#sh run | s rip router rip version 2 network 1.0.0.0 network 10.0.0.0 R-1#sh ip route rip | b Gateway Gateway of last resort is not set R-1#
Turned on Debug IP Rip
I was frustrated, I couldn’t figure out what’s going on and wasted so much of time. I even thought of changing the whole topology again with different IOU or IOS.
But I couldn’t give up, I turned on “debug IP rip’’ and I was able to see that Rip is sending its update to its multicast address 224.0.0.9, but not receiving anything back from its neighbor.
R-1#debug ip rip RIP protocol debugging is on R-1# *Mar 22 19:15:08.532: RIP: sending v2 update to 224.0.0.9 via Ethernet0/0 (10.1.1.1) *Mar 22 19:15:08.532: RIP: build update entries *Mar 22 19:15:08.532: 1.0.0.0/8 via 0.0.0.0, metric 1, tag 0 *Mar 22 19:15:08.701: RIP: sending v2 update to 224.0.0.9 via Loopback0 (1.1.1.1) *Mar 22 19:15:08.701: RIP: build update entries *Mar 22 19:15:08.701: 10.0.0.0/8 via 0.0.0.0, metric 1, tag 0 *Mar 22 19:15:08.701: RIP: ignored v2 packet from 1.1.1.1 (sourced from one of our addresses) R-1#
And The Root Cause!
<div align="center"> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- Square --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-4166387982052588" data-ad-slot="9758868542" data-ad-format="auto"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </script></div>
Finally, I found the root cause why RIP is not working, it was due to the IOU switch which had IGMP snooping enabled by default on the interfaces connected to the routers.
Selected interfaces that are connected to the routers.
Let’s check the Switch interfaces connected to the Router.
Switch#sh cdp ne | b Device Device ID Capability Platform Port ID R-4 Eth 0/2 164 R B Linux Uni Eth 0/0 R-3 Eth 0/1 126 R B Linux Uni Eth 0/0 R-2 Eth 0/3 137 R B Linux Uni Eth 0/0 R-1 Eth 0/0 141 R B Linux Uni Eth 0/0
Disabling IGMP snooping on IOU switch
Switch#conf t Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#int rang e0/0-3 Switch(config-if-range)#no ip igmp snooping Switch(config)#exit
Disabled IGMP snooping, Right after I made the changes I could see on the R-1 where I had enabled IP debug, started to throw so many debug output.
R-1#*Mar 22 19:19:07.786: RIP: received v2 update from 10.1.1.4 on Ethernet0/0 *Mar 22 19:19:07.786: 4.0.0.0/8 via 0.0.0.0 in 1 hops R-1# *Mar 22 19:19:09.789: RIP: sending v2 flash update to 224.0.0.9 via Ethernet0/0 (10.1.1.1) *Mar 22 19:19:09.789: RIP: build flash update entries - suppressing null update *Mar 22 19:19:09.789: RIP: sending v2 flash update to 224.0.0.9 via Loopback0 (1.1.1.1) *Mar 22 19:19:09.789: RIP: build flash update entries *Mar 22 19:19:09.789: 4.0.0.0/8 via 0.0.0.0, metric 2, tag 0 *Mar 22 19:19:09.789: RIP: ignored v2 packet from 1.1.1.1 (sourced from one of our addresses) R-1# *Mar 22 19:19:15.067: RIP: received v2 update from 10.1.1.2 on Ethernet0/0 *Mar 22 19:19:15.067: 2.0.0.0/8 via 0.0.0.0 in 1 hops R-1# *Mar 22 19:19:17.073: RIP: sending v2 flash update to 224.0.0.9 via Ethernet0/0 (10.1.1.1) *Mar 22 19:19:17.073: RIP: build flash update entries - suppressing null update *Mar 22 19:19:17.073: RIP: sending v2 flash update to 224.0.0.9 via Loopback0 (1.1.1.1) *Mar 22 19:19:17.073: RIP: build flash update entries *Mar 22 19:19:17.073: 2.0.0.0/8 via 0.0.0.0, metric 2, tag 0 *Mar 22 19:19:17.073: RIP: ignored v2 packet from 1.1.1.1 (sourced from one of our addresses) R-1# *Mar 22 19:19:19.449: RIP: received v2 update from 10.1.1.3 on Ethernet0/0 *Mar 22 19:19:19.449: 3.0.0.0/8 via 0.0.0.0 in 1 hops *Mar 22 19:19:19.520: RIP: sending v2 update to 224.0.0.9 via Ethernet0/0 (10.1.1.1) *Mar 22 19:19:19.520: RIP: build update entries *Mar 22 19:19:19.520: 1.0.0.0/8 via 0.0.0.0, metric 1, tag 0 *Mar 22 19:19:20.145: RIP: sending v2 update to 224.0.0.9 via Loopback0 (1.1.1.1) *Mar 22 19:19:20.145: RIP: build update entries *Mar 22 19:19:20.145: 2.0.0.0/8 via 0.0.0.0, metric 2, tag 0 *Mar 22 19:19:20.145: 3.0.0.0/8 via 0.0.0.0, metric 2, tag 0 *Mar 22 19:19:20.145: 4.0.0.0/8 via 0.0.0.0, metric 2, tag 0 R-1#
I checked the IP route rip and hurray!! RIP is working now.
Final verification.
To make sure the IGMP snooping is the root cause, I decided to test the lab again, I enabled the IGMP snooping config on IOU switch connected to one of the routers.
Switch(config)#int Eth 0/0 Switch(config-if)#ip igmp snooping Switch(config)#exit Switch#
cleared the rip route.
R-1#clear ip route *
See, no RIP routes, it is still not receiving updates from its neighbor.
R-1#sh ip route rip | b Gateway Gateway of last resort is not set R-1#
Reverted the change and it was all back to normal.
R-1#sh ip route rip | b Gateway Gateway of last resort is not set R 2.0.0.0/8 [120/1] via 10.1.1.2, 00:00:25, Ethernet0/0 R 3.0.0.0/8 [120/1] via 10.1.1.3, 00:00:21, Ethernet0/0 R 4.0.0.0/8 [120/1] via 10.1.1.4, 00:00:08, Ethernet0/0 R-1#
This is one of the bugs that we have in cisco IOU.
Conclusion
If you are planning for CCIE I would recommend you to use either CSR1000v or Cisco vIOS on gns3. Otherwise, you will end up wasting more time when things don’t work.
IOU isn’t recommended even though I use it at times but it has got a lot of bugs. but there are some stable versions out there though.
Note: This issue I noticed only for RIP in IOU. When I configured OSPF it was working fine irrespective of IGMP snooping was on.