Disabling split horizon

By stretch | Monday, November 3, 2008 at 12:52 a.m. UTC

Distance vector routing protocols like RIP and EIGRP rely on a number of measures for loop avoidance. One of these is split horizon, which prevents a route from being readvertised out the interface on which it was received. For example, if a router learns about 192.168.0.0/16 from a neighbor on its Serial1/0 interface, it can't advertise that route back out Serial1/0. This helps mitigate routing loops while working to optimize communication between neighbors.

However, there are instances where split horizon is undesirable. One good example of such a scenario is a nonbroadcast multiaccess (NBMA) frame relay network lacking a full mesh. Such a topology is illustrated below:

topology.png

The point-to-multipoint frame relay network is comprised of two virtual circuits, one between R1 and R2 and one between R2 and R3. All three routers are addressed within the 10.0.0.0/24 subnet. EIGRP adjacencies are formed along the virtual circuits (R1 peers with R2 but not with R3):

R1# show ip eigrp neighbors
IP-EIGRP neighbors for process 1
H   Address                 Interface       Hold Uptime   SRTT   RTO  Q  Seq
                                        (sec)         (ms)       Cnt Num
0   10.0.0.2                Se1/0            153 02:26:57   16   200  0  11
R2# show ip eigrp neighbors
IP-EIGRP neighbors for process 1
H   Address                 Interface       Hold Uptime   SRTT   RTO  Q  Seq
                                        (sec)         (ms)       Cnt Num
1   10.0.0.3                Se1/0            134 02:27:00  527  3162  0  7
0   10.0.0.1                Se1/0            169 02:27:00  547  3282  0  7

Remember that the split horizon rule forbids R2 from relaying advertisements back out the interface on which they were received. As a result, R3 never receives advertisements from R1 and vice versa. Here we can verify R3 has no knowledge of R1's 192.168.1.0/24 network:

R3# show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
   D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
   N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
   E1 - OSPF external type 1, E2 - OSPF external type 2
   i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
   ia - IS-IS inter area, * - candidate default, U - per-user static route
   o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

10.0.0.0/24 is subnetted, 1 subnets
C       10.0.0.0 is directly connected, Serial1/0
D    192.168.2.0/24 [90/2195456] via 10.0.0.2, 02:29:48, Serial1/0
C    192.168.3.0/24 is directly connected, FastEthernet0/0

One solution to this predicament is to disable split horizon for EIGRP on R2. This is accomplished with the command no ip split-horizon eigrp <AS> under interface configuration.

R2(config)# interface s1/0
R2(config-if)# no ip split-horizon eigrp 1

This command will prompt EIGRP to immediately tear down and reestablish all its adjacencies on the interface, as evidenced by this log message on R2:

%DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 10.0.0.3 (Serial1/0) is resync: split
horizon changed

When the adjacencies are reformed, we can see that R2 is now relaying advertisements between R1 and R3:

R3# show ip route

10.0.0.0/24 is subnetted, 1 subnets
C       10.0.0.0 is directly connected, Serial1/0
D    192.168.1.0/24 [90/2707456] via 10.0.0.2, 00:02:39, Serial1/0
D    192.168.2.0/24 [90/2195456] via 10.0.0.2, 02:33:55, Serial1/0
C    192.168.3.0/24 is directly connected, FastEthernet0/0

Additionally, if we were running RIP instead of EIGRP, the command to disable split horizon is simply no ip split-horizon at the interface.

About the Author

Jeremy Stretch is a network engineer living in the Raleigh-Durham, North Carolina area. He is known for his blog and cheat sheets here at Packet Life. You can reach him by email or follow him on Twitter.

Posted in Routing

Comments


Chris (guest)
November 3, 2008 at 1:44 p.m. UTC

ip spit horizon is disabled by default on physical frame-relay physical interfaces. It is enabled by default on frame-relay subinterfaces.


Ivan Barreda (guest)
November 3, 2008 at 4:48 p.m. UTC

While you can do this in a NBMA network (like FRS) to allow connectivity this can also be solved another way.

You can enable SubInterfaces on all NBMA segments instead keeping split horizon enabled for nearly loop-free performance and still allowing full connectivity in an NBMA FRS.


Matthew White (guest)
November 3, 2008 at 6:56 p.m. UTC

This is also very useful in DMVPN deployments where you don't have a full EIGRP mesh.


Justin White (guest)
November 3, 2008 at 11:15 p.m. UTC

Chris, to be more specific, Split Horizon is disabled by default for RIP on interfaces with Frame Relay or SMDS encapsulation, but not for EIGRP, not for subinterfaces, and not for other encapsulation types.


Project (guest)
November 7, 2008 at 2:37 p.m. UTC

Why wouldn't you use sub-interfaces?


jalal (guest)
November 8, 2008 at 6:57 p.m. UTC

I am using subinterface in inter vlan routing as the same example just replace frame relay with vlan , have I Disabling split horizon


ezequiel (guest)
April 7, 2013 at 2:02 p.m. UTC

I think he has use a multipoint link because using point-to-point subinterfaces he needed to use one subred for every branch office added to the WAN link.

I think too, the frame-relay map sentences for R2 are missing. You have two DLCI for the same interface. I think the IARP can't work in that situation. Just maybe...

To the above question: no, the subinterfaces are taken like two real separate interafes. The split horizont rule does not aplly in that scenario.

PD: Sorry about my english. I speak Spanish.


A guest
June 29, 2015 at 4:58 a.m. UTC

Nice Article Jeremy !


Petr (guest)
December 23, 2015 at 12:23 a.m. UTC

I think with eigrp and disabled split-horizon it doesn´t work because if we try for instance ping from R1 to R3, R2 sends back to R1 icmp redirects to use new gw 10.0.0.3 and this is not in PVC. So, is there any solution without using subinterfaces? With RIP it works well, I´ve tried it, but with EIGRP not! Thanks for any answer.

Comments have closed for this article due to its age.