in this post we work on our understading of the operation of RIP and how split horizon rule work
lab setup
In our setup, R1 and R2 routers are in RIP domain and exchange information about loopback 0 and 1 networks. R1 is participating also to a static routing domain and advertises loopback 88 and 99 networks to RIP
Router network command
Router RIP command “network 0.0.0.0” configured that routers level hints routers to add all ip enabled interfaces to the update list and include their “subnets” into this update. The show ip protocols show that rip is active with information about participating interaces and what version of RIP is being used (in our case RIPv2 that supports VLSM is into play); no summarization is on; the process (routing) handles up to 4 equal path to the same destination; administrative distance is set to default 120 and the process already learnt R2 as RIP router (gateway)…
I add a static route to network 88.88.88.88/32 using the outgoing interface (R1 lo0) instead of the next hop or intermediate address
The static route is valid in the default routing table (RIB)
And also present in rip database as “connected” shown using the command: show ip rip database
We check also that the new added route is sent to all RIP enabled interfaces except Lo0
The update is sent to all interfaces except the one the route was configured with (we check that 88.88.88.88 route is not present in the list of routes sent to Loopback0). The router already knows the route is behind lo0. There’s then no need to re advertise it back via this interface. Let’s check deactivate the split horizon on this lo0 interface and run another debug ip rip
Now the route 88.88.88.88/32 is sent to all the interfaces including the previously missing one including the interface the route was configured with (or routing information received, hinted, from it). The debug shows now that the route is in the list of routes sent to Loopback0.
Now I add another route but that points to a next hop address (tried a local address and it’s not working, accepted by the configuration parser) configured on L1 facing interface in network 1.2.1.0.
The route to 99.99.99.99/32 is valid and in the default routing table. We can check this by running a show ip route static command.
But the route is no more in the rip routing table as it’s shown in the next output of show ip rip databse at R1 level. In the same database 1.2.1.1 is marked as possbily down!
And the route is not included in any routing updates. To build its update list, networks that are in this list, the router checks its rip routing table. All the information is sent over an interface (a RIP enabled) except the information received on this interface by default using the split-horizon rule…
The subnet 99.99.99.99 is considered behind the nexthop 1.2.1.254 not attached to it
Instead the subnet 88.88.88.88 is considered as directly connected because no next hop information has been provided. Only the interface for output was given.
The network command has enabled rip udpate sending and receiving on the lo0 interface but added into the update list all the directly connected networks attached to this interface and not only the primary address subnet of this interface (1.1.1.1/32)
Let’s confirm this by first adding a new directly attached network 77.77.77.77/32 to lo0
The new route is added the update list and sent over all the rip enabled interfaces.
Let’s change the rip router configuration network command to include only the physical and loopback interfaces. The new configuration shows that now routing is done only for subnets matching those network: 1.0.0.0 and 12.0.0.0 instead of any (0.0.0.0). To precise that update are sent only on those subnets.
Nothing has changed (which is normal), the router still advertises all the attached networks through the rip enabled interfaces. These routes could be connected or static configured with the outgoing interface (instead of the nexthop).
We use redistribution (that is advertising routes of a different routing domain: static in our case, to RIP domain) to get the 99.99.99.99/32 route into rip domain from static routing domain.
In the rip database we confirm that the redistributed static route is being redistibued in RIP database locally (0.0.0.0) with a nexthop pointing to Loopback1 network.
The route is marked as “redistributed” and sent to all interfaces except lo1 because of split horizon rule that is preventing udpates back on the interface they were received on by default
as conclusion
in this lab we’ve checked another important fact (instead of RIP updates) about split-horizon operating in handling different way of doing static routing (using output interface, nexthop, direct and intermediate) and redistribution into RIP. Evenif RIP enabled on the interface we get routes redistributed from updates are not sent back to it.