You are on page 1of 6

Null 0 stops routing loops, how and why are

explained here.
This always confused me when i started learning Cisco, this explanation below by a guy
called David Bombal explains it very clearly, thought i would share it with you.

  Why does EIGRP create a null 0 interface?


When EIGRP automatically summarizes routes, or when an administrator manually creates a summary, EIGRP will
automatically create a route to null 0. Why?

The reason is to stop routing loops. But how and why?

I am going to use the following diagram to illustrate a potential issue:

EIGRP has been configured on both R1 and R2.

R1 has a default route to R2;


R2 also has a default route configured towards the Internet:

The following routes are to the left of R1 and are being advertised to R2 through EIGRP:
10.1.8.0/24
10.1.9.0/24
10.1.10.0/24
10.1.11.0/24

Here is a view of the routing tables:

R1: Notice that R1 has a default route to R2 (D* 0.0.0.0 with next hop of 10.1.1.2 below):
R2: Notice that R2 is learning about 10.1.8.0, 10.1.9.0 and other routes through EIGRP:

If a summary route were configured on R1 as follows, a potential loop could be formed if the null 0 route were not
added to R1 automatically:

R1>enable
R1#conf t
R1(config)#int FastEthernet 0/0
R1(config-if)#ip summary-address eigrp 100 10.1.8.0 255.255.248.0
R2 will thus not see specific networks 10.1.8.0/24 - 10.1.11.0/24, but only the summary of 10.1.8.0/21.

When R2 pings 10.1.12.1 for example, this will form part of the summary 10.1.8.0/21, even though the network doesn't
exist in our diagram.

R2 will forward traffic to R1 for 10.1.12.1 and R1 will forward the traffic back to R2, because of the default route.
The traffic will thus bounce between R1 and R2 until the TTL has expired - thus causing a routing loop:

A routing loop is formed:

This will continue until the TTL has decremented down to 0 when the packet will be dropped.

Null 0:

EIGRP automatically creates the Null 0 route. This ensures that a routing loop doesn't occur.

This is because traffic that is sent to R1 from R2 (for network 10.1.12.1,) will match the route to Null 0 on R1. The traffic
will be black holed.

It's important to realize that traffic to the more specific networks that do exist (10.1.8.0/24 - 10.1.11.0/24) will be routed
normally because a more specific entry exists in the routing table.

 
To prove this, we can do the following:

1) Notice R2 only knows about the summary route, not the specific routes:

Pings to 10.1.8.1 are successful, but not to 10.1.12.1:

The traceroute command shows us that R2 is sending traffic to R1 when pinging 10.1.12.1:
On R1, we can run the command debug ip packet to see what is happening. This command could generate a lot of
output, so I have restricted it to icmp only:

In the debug, you can see that the RIB (routing table) is forwarding packets for 10.1.12.1 to null 0:

Loops are thus prevented.

This does not just apply to EIGRP. Other routing protocols like OSPF and ISIS will also create routes to Null 0 to
prevent loops.

You might also like