Split Horizon Explained with Examples

This tutorial explains the split-horizon feature in detail through examples. Learn what the split-horizon feature is and how it removes routing loops in the network.

What is the split-horizon?

Split-horizon is a feature that prevents a router from advertising a route back out the same interface where the router originally learned the route. Routing protocols use this feature along with other features to remove routing loops.

How does the split-horizon work?

Routers use routing protocols to learn new routes from neighboring routers and advertise learned routes to neighboring routers. Split-horizon feature tells the routing protocol to skip some routes when advertising a routing update from an active interface. These routes are the routes that the routing protocol learned from the same outgoing interface.

Let's take an example to understand how the split-horizon feature works practically.

Example network (the split-horizon feature is disabled)

The following image shows a simple network. In this network, two routers: router A and router B are connected through a serial cable. Networks 10.0.0.0/8 and 30.0.0.0/8 are connected to router A's F0/0 and router B's F0/0 interfaces, respectively. To connect routers on serial interfaces, the network 20.0.0.0/8 is used.

When this network starts, both routers learn directly connected networks and add them to their routing tables.

example network without split horizon feature

Now suppose, the administrator configures the RIP routing protocol on both routers. RIP routing protocol periodically broadcasts the entire routing table from all active interfaces as a routing update. When neighboring routers running the same RIP routing protocol listen to this broadcast, they learn the advertised routes. If any advertised route is not available in their routing tables or have a worse metric, then they add that advertised route to their routing tables.

To learn how the RIP routing protocol works in detail through examples, you can check the previous parts of this article. This tutorial is the fifth part of the article "How to configure RIP routing protocol explained with features and functions of the RIP protocol ". The previous parts of this article are the following.

How RIP Routing works

This tutorial is the first part of the article. This part explains how the RIP routing protocol uses broadcast messages to exchange network paths' information.

RIP Routing features and functions

This tutorial is the second part of the article. This part explains the concept of distance-vector routing and how the RIP routing protocol uses this concept.

RIP Tutorial – Basic operation of RIP Protocol

This tutorial is the third part of the article. This part explains RIP timers and differences between RIPv1 and RIPv2.

Routing Loops Explained with Examples

This tutorial is the fourth part of the article. This part explains routing loops and how they are formed in a distance-vector routing protocol running network.

By default, the RIP routing protocol broadcasts the entire routing table from all active interfaces. But if the split-horizon feature is enabled on any interface, then the RIP does not broadcast the routes which it learned from that interface.

To understand how the split-horizon feature affects routing updates, let's suppose that the split-horizon feature is disabled on serial interfaces of both routers.

Without split-horizon in effect, both routers broadcast their routing tables from their serial interfaces. Router A broadcasts networks: 10.0.0.0/8 and 20.0.0.0/8. Router B broadcasts networks: 20.0.0.0/8 and 30.0.0.0/8.

Both routers receive broadcast messages of each other and learn advertised routes. Router A learns about the networks: 20.0.0.0/8 (Metric1) and 30.0.0.0/8 (Metric1). Router B learns about the networks: 10.0.0.0/8 (Metric1) and 20.0.0.0/8 (Metric1).

Both routers ignore update about the network 20.0.0.0/8 (Metric1) as they already have a better route for the advertised route. But, they add the remaining route as that is not available in their routing tables.

The following image shows this process.

first routing update

On the next routing update, both routers broadcast their routing tables again.

Router A receives update about the networks: 30.0.0.0/8 (Metric1), 20.0.0.0/8 (Metric1), and 10.0.0.0/8 (Metric2). Router A ignores the update about the networks: 20.0.0.0/8 (Metric1), and 10.0.0.0/8 (Metric2) as it already has better routes for these networks. But, it updates the timer of the third network 30.0.0.0/8 (Metric1) as it has an equal metric.

Router B receives update about the networks: 10.0.0.0/8 (Metric1), 20.0.0.0/8 (Metric1), and 30.0.0.0/8 (Metric2). Router B ignores the update about the networks: 20.0.0.0/8 (Metric1), and 30.0.0.0/8 (Metric2) as it already has better routes for these networks. But, it updates the timer of the third network 10.0.0.0/8 (Metric1) as it has an equal metric.

Both routers repeat the same process on all further routing updates.

The following image shows this process.

third routing without split horizon

As long as the physical topology of this network does not change, this network work fines even the split-horizon feature is disabled. Physical changes are very common on networks. They can occur at any time on any network.

If the split-horizon feature is disabled, a physical change may cause a routing loop. Let's understand this fact through our example.

Suppose, the connection between the network 10.0.0.0/8 and router A fails. Router A immediately detects this change and removes the route of the network 10.0.0.0/8 from its routing table.

To make this example easier to understand, I mentioned that the router removes the unreachable route immediately. Technically, the router does not remove the unreachable route immediately. Instead of removing an unreachable route, the router makes its metric to unreachable or infinite. In the next part of this article, I will explain this feature in detail through examples. For this tutorial and example, you can assume that the router removes the unreachable route immediately.

On the next routing update, router A does not advertise the network 10.0.0.0/8 as this route has been removed from its routing table. But, router B advertises a route for the network 10.0.0.0/8 as router B still contains the old route information.

Router A receives the routing update of router B and thinks that the router B knows another route for the network 10.0.0.0/8. Router A adds the advertised route to its routing table and advertises it back to router B on the next routing update but the router B ignores this update as it already a has better path for the network 10.0.0.0/8.

The following image shows this process step by step.

routing loop without split horizon

At this moment, even the network 10.0.0.0/8 is down, still, router A thinks that the router B has a path for the network 10.0.0.0/8 while the router B thinks that the router A has a path for the network 10.0.0.0/8.

This situation is known as the routing loop. In this situation, if any one router from both routers receives a packet for the destination network 10.0.0.0/8, it will forward that packet to another router and another router will forward that packet back to the first router. The packet will cycle between both routers endlessly.

The following image shows this situation.

routing without split horizon

This network is stuck in a routing loop because the split-horizon feature was disabled. If the split-horizon feature is enabled, this routing loop can be avoided.

To understand how the split-horizon feature prevents routing loops, let's take the above example again.

Example network (the split-horizon feature is enabled)

If the split-horizon feature is enabled, it subtracts routes from routing updates. Which routes? The routes which are available on the same interface. For example, if a network 1.0.0.0/8 is available on the F0/0 interface of the router, the split-horizon feature subtracts this network (1.0.0.0/8) from all routing updates that are sent out from the interface F0/0.

In our example, when routers send their first routing update out from their interface S0/0/0, they skip routing information about the network 20.0.0.0/8 as this network is available on their S0/0/0 interface.

The following image shows how routers send their first routing update when the split-horizon feature is enabled.

first routing update with split horizon feature

After the first routing update, both routers learn about remote networks. Router A learns about the network 30.0.0.0/8 and router B learns about the network 10.0.0.0/8. Both routers add the learned network to their routing tables.

Although routers add these routes to their routing tables, still they do not advertise these routes in the next routing updates that they send from the interface S0/0/0.

The following image shows this process.

second routing update with split horizon feature

Now suppose the connection between the network 10.0.0.0/8 and the router A breaks. Router A detects this change and removes the entry that is associated with this network from the routing table. Since the entry of this route has been removed from the routing table, the routing protocol that broadcast routes from the routing table cannot advertise this route.

Router B still contains old route information about the network 10.0.0.0/8. But, due to the split-horizon feature, it can't advertise this information back to router A.

The following image shows this process.

split horizon feature removes routing loops

iIn this manner, the split-horizon feature not only reduces the size of routing updates but also removes routing loops from the network.

In some circumstances, routers ignore this feature and send routing updates about the networks that are learned on the same interface. In the next part of this article, we will understand those circumstances in detail.

That's all for this article. If you like this article, please don't forget to share it with friends through your favorite social networking site.

ComputerNetworkingNotes CCNA Study Guide Split Horizon Explained with Examples