Split Horizon and Poison Reverse
Split Horizon
Split horizon ensures that a route learned by RIP on an interface is not sent to neighbors from the interface. This feature reduces bandwidth consumption and avoids routing loops.
Split horizon provides two models for different networks: interface-based split horizon and neighbor-based split horizon. Broadcast, P2P, and P2MP networks use interface-based split horizon, as shown in Figure 3-5.
RouterA sends routing information destined for 10.0.0.0/8 to RouterB. If split horizon is not configured, RouterB sends the route learned from RouterA back to RouterA. RouterA can learn two routes destined for 10.0.0.0/8: a direct route with hop count 0 and a route with the next hop RouterB and hop count 2.
However, only the direct route in the RIP routing table on RouterA is active. When the route from RouterA to network 10.0.0.0 is unreachable, RouterB does not receive the unreachable message immediately and still notifies RouterA that network 10.0.0.0/8 is reachable. Therefore, RouterA receives incorrect routing information that network 10.0.0.0/8 is reachable through RouterB, and RouterB considers that network 10.0.0.0/8 is reachable through RouterA. A routing loop is generated. With the split horizon feature, RouterB does not send the route destined for 10.0.0.0/8 back to RouterA. Routing loops are avoided.
On a Non-Broadcast Multiple Access (NBMA) network, an interface connects to multiple neighbors; therefore, split horizon is performed based on neighbors. Routes are advertised in unicast mode. The routes received by an interface are differentiated by neighbors. The route learned from a neighbor is not sent back through the same interface.
As shown in Figure 3-6, after split horizon is configured on an NBMA network, RouterA sends route 172.16.0.0/16 learned from RouterB to RouterC, but does not send it to RouterB.
Poison Reverse
Poison reverse ensures that RIP sets the cost of the route learned from an interface of a neighbor to 16 (unreachable) and then sends the route from the same interface back to the neighbor. This feature deletes useless routes from the routing table and avoids routing loops.
As shown in Figure 3-7, after receiving a route from RouterA, RouterB sends an unreachable message (with the route Cost being 16) to RouterA. RouterA then does not learn the route from RouterB. A routing loop is avoided.