Tag Archives: EIGRP And Split Horizon

EIGRP Dual Queries, SIA, and Stub Routers

EIGRP is a major subject of the CCNA exam, and Cisco goes into even more detail with EIGRP on your CCNP exams. Part of that detail is the purpose and configuration of EIGRP stub routers.

A problem with EIGRP comes in when a successor is lost and there is no feasible successor. DUAL doesn’t give up that easily, though. DUAL will mark the route as Active, indicating that the route is being calculated and cannot be used to route data, and will send out a Query message.

A DUAL Query is basically one neighbor asking another, “Hey, do you know how to get to this network I just lost my route to?” If that neighbor has a route, the query will be answered with that route; if the neighbor doesn’t have such a route, that neighbor will ask its neighbors. The process continues until a downstream router replies with the desired route, or the EIGRP downstream routers run out of neighbors to ask.

It’s a good idea to limit the scope of your DUAL queries, otherwise routes may go into Stuck In Active state during this reconfiguration. Route summarization helps to limit queries, as does configuration of EIGRP stub routers.

While EIGRP does not have the stub area options that OSPF does, EIGRP does allow a router to be configured as stub. This is commonly done with a hub-and-spoke configuration where the spoke routers do not have the resources to keep a full routing table. Since the spoke’s next hop will always be the hub, all the spoke really needs is a default route. For this reason, the only neighbor an EIGRP stub router can have is the hub router. (Obviously, the hub would never be configured as stub.)

Configuring EIGRP stub routers also combats the SIA problem. EIGRP stub routers are not queried for routes when the hub does not have a feasible successor for a successor route that has gone down.

By default, EIGRP stub routers advertise information about two types of routes back to the hub – directly connected networks and summary routes. To change this default, use the eigrp stub command followed by the types of routes you want the stub to advertise back to the hub. (The eigrp stub command run by itself configures the router as stub.)

EIGRP is a major topic for your CCNA and CCNP studies, and one basic skill you’ll need to pass your Cisco certification exams is to identify situations where you need to enable or disable split horizon. EIGRP commands tend to be a little different than those used with other protocols, so let’s take a look at how EIGRP and split horizon interoperate.

R1 is our hub router, with R2 and R3 as the spokes. There are no subinterfaces, and each router is advertising a single loopback network using its router number for each octet. R1 will see both R2 and R3′s loopback network, but the spokes will not have a route to the other spoke’s loopback. “show ip route eigrp” verifies this.

R1#show ip route eigrp

2.0.0.0/32 is subnetted, 1 subnets

D 2.2.2.2 [90/2297856] via 172.12.123.2, 00:03:29, Serial0

3.0.0.0/32 is subnetted, 1 subnets

D 3.3.3.3 [90/2297856] via 172.12.123.3, 00:03:29, Serial0

R2#show ip route eigrp

1.0.0.0/32 is subnetted, 1 subnets

D 1.1.1.1 [90/2297856] via 172.12.123.1, 00:05:20, Serial0

R3#show ip route eigrp

1.0.0.0/32 is subnetted, 1 subnets

D 1.1.1.1 [90/2297856] via 172.12.123.1, 00:07:54, Serial0

EIGRP runs split horizon by default, making it impossible for R1 to forward an advertisement to R2 regarding R3′s loopback. Likewise, R1 cannot advertise R2′s loopback address to R3. We could configure two subinterfaces on R1 to resolve this issue, but here we’re going to disable split horizon instead.

R1(config)#int serial0

R1(config-if)#no ip split-horizon ?

eigrp Enhanced Interior Gateway Routing Protocol (EIGRP)

R1(config-if)#no ip split-horizon eigrp ?

<1-65535> Autonomous system number

R1(config-if)#no ip split-horizon eigrp 100

04:10:02: %DUAL-5-NBRCHANGE: IP-EIGRP 100: Neighbor 172.12.123.2 (Serial0) is down: split horizon changed

04:10:02: %DUAL-5-NBRCHANGE: IP-EIGRP 100: Neighbor 172.12.123.3 (Serial0) is down: split horizon changed

04:10:25: %DUAL-5-NBRCHANGE: IP-EIGRP 100: Neighbor 172.12.123.2 (Serial0) is up: new adjacency

04:10:37: %DUAL-5-NBRCHANGE: IP-EIGRP 100: Neighbor 172.12.123.3 (Serial0) is up: new adjacency

Note that disabling split horizon resulted in the EIGRP adjacencies being torn down. They came back up 20 – 35 seconds after being torn down according to the timestamps, but that’s a good detail to keep in mind!

The routing tables of each spoke should now show the loopback network configured on the remote spoke.

R2#show ip route eigrp

1.0.0.0/32 is subnetted, 1 subnets

D 1.1.1.1 [90/2297856] via 172.12.123.1, 00:00:02, Serial0

3.0.0.0/32 is subnetted, 1 subnets

D 3.3.3.3 [90/2809856] via 172.12.123.1, 00:00:02, Serial0

R3#show ip route eigrp

1.0.0.0/32 is subnetted, 1 subnets

D 1.1.1.1 [90/2297856] via 172.12.123.1, 00:00:02, Serial0

2.0.0.0/32 is subnetted, 1 subnets

D 2.2.2.2 [90/2809856] via 172.12.123.1, 00:00:02, Serial0

Be careful when disabling split horizon. In this scenario, R1 can and will advertise routes out Serial0 that were learned about on that interface in the first place, and that’s not always desirable. Split horizon is enabled by default for a reason, so be careful when disabling it!

CCNP – BSCI (EIGRP And Split Horizon)

EIGRP is a major topic for your CCNA and CCNP studies, and one basic skill you’ll need to pass your Cisco certification exams is to identify situations where you need to enable or disable split horizon. EIGRP commands tend to be a little different than those used with other protocols, so let’s take a look at how EIGRP and split horizon interoperate.

R1 is our hub router, with R2 and R3 as the spokes. There are no subinterfaces, and each router is advertising a single loopback network using its router number for each octet. R1 will see both R2 and R3′s loopback network, but the spokes will not have a route to the other spoke’s loopback. “show ip route eigrp” verifies this.

R1#show ip route eigrp

2.0.0.0/32 is subnetted, 1 subnets

D 2.2.2.2 [90/2297856] via 172.12.123.2, 00:03:29, Serial0

3.0.0.0/32 is subnetted, 1 subnets

D 3.3.3.3 [90/2297856] via 172.12.123.3, 00:03:29, Serial0

R2#show ip route eigrp

1.0.0.0/32 is subnetted, 1 subnets

D 1.1.1.1 [90/2297856] via 172.12.123.1, 00:05:20, Serial0

R3#show ip route eigrp

1.0.0.0/32 is subnetted, 1 subnets

D 1.1.1.1 [90/2297856] via 172.12.123.1, 00:07:54, Serial0

EIGRP runs split horizon by default, making it impossible for R1 to forward an advertisement to R2 regarding R3′s loopback. Likewise, R1 cannot advertise R2′s loopback address to R3. We could configure two subinterfaces on R1 to resolve this issue, but here we’re going to disable split horizon instead.

R1(config)#int serial0

R1(config-if)#no ip split-horizon ?

eigrp Enhanced Interior Gateway Routing Protocol (EIGRP)

R1(config-if)#no ip split-horizon eigrp ?

<1-65535> Autonomous system number

R1(config-if)#no ip split-horizon eigrp 100

04:10:02: %DUAL-5-NBRCHANGE: IP-EIGRP 100: Neighbor 172.12.123.2 (Serial0) is down: split horizon changed

04:10:02: %DUAL-5-NBRCHANGE: IP-EIGRP 100: Neighbor 172.12.123.3 (Serial0) is down: split horizon changed

04:10:25: %DUAL-5-NBRCHANGE: IP-EIGRP 100: Neighbor 172.12.123.2 (Serial0) is up: new adjacency

04:10:37: %DUAL-5-NBRCHANGE: IP-EIGRP 100: Neighbor 172.12.123.3 (Serial0) is up: new adjacency

Note that disabling split horizon resulted in the EIGRP adjacencies being torn down. They came back up 20 – 35 seconds after being torn down according to the timestamps, but that’s a good detail to keep in mind!

The routing tables of each spoke should now show the loopback network configured on the remote spoke.

R2#show ip route eigrp

1.0.0.0/32 is subnetted, 1 subnets

D 1.1.1.1 [90/2297856] via 172.12.123.1, 00:00:02, Serial0

3.0.0.0/32 is subnetted, 1 subnets

D 3.3.3.3 [90/2809856] via 172.12.123.1, 00:00:02, Serial0

R3#show ip route eigrp

1.0.0.0/32 is subnetted, 1 subnets

D 1.1.1.1 [90/2297856] via 172.12.123.1, 00:00:02, Serial0

2.0.0.0/32 is subnetted, 1 subnets

D 2.2.2.2 [90/2809856] via 172.12.123.1, 00:00:02, Serial0

Be careful when disabling split horizon. In this scenario, R1 can and will advertise routes out Serial0 that were learned about on that interface in the first place, and that’s not always desirable. Split horizon is enabled by default for a reason, so be careful when disabling it!