cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1516
Views
36
Helpful
17
Replies

EIGRP internal packet next hop

schmidtjoe
Level 1
Level 1

Hello,

I am learning the EIGRP basics in GNS3 and have added loopback interfaces and interfaces gi0/0 into the EIGRP AS. During establishing adjacency, I notice that the EIGRP update packet sent by R2 has a

next-hop ip 0.0.0.0. 

Can someone explain why the

next-hop ip

is not set to the interface IP 10.10.10.2? 

The topology and update packet as follows:

topology.pngmulticast packet.png

 

1 Accepted Solution

Accepted Solutions

My friends,

Please allow me to join.

Since EIGRP is an internal gateway routing protocol, the next hop - whether implicit or explicit - must always be a directly reachable IP address - more precisely, an IP address that is on the directly connected network of the interface that receives the EIGRP advertisement. As opposed to BGP, it cannot be a remote IP address, otherwise it would lead into chicken-and-egg problems.

The consequence of this rule is that if router A advertises a network to router B over the common network connecting them both, the next hop can either be router A itself or some other router X on the same network as both routers A and B. This limits the practical use of the Next Hop field to situations where a router A needs to advertise a route across a common network to its neighbors for whom the next hop X is another router from the same common network. This in turn implies that the other router X must be unable to advertise that route to the other neighbors on the common network itself, otherwise it would just do it and wouldn't need to have router A do it on its behalf.

This is frequently seen in DMVPN Phase 2 between the hub and the spokes. All spokes have EIGRP adjacencies with the hub but not with each other. Here, the hub learns routes from each spoke and advertises them to the remaining spokes (provided the split horizon is disabled). If the hub keeps the Next Hop field set to 0.0.0.0, it will become the next hop for all spoke-to-spoke traffic. If, however, the hub is configured with "no next-hop-self" for the Tunnel interface, then for every route learned from a particular spoke, it will keep that spoke's Tunnel address in the Next Hop field when it advertises the route to the other spokes. This way, the spokes can build spoke-to-spoke tunnels and route traffic to each other directly, not through the hub. This is where the Next Hop field would be populated with non-zero values. (Just for the sake of completeness, DMVPN Phase 3 works differently.)

Another situation where EIGRP may advertise a non-zero Next Hop address is with redistributed routes from another routing protocol. Assume routers A, B and X on the same network. Routers A and B speak EIGRP while X and also A speak OSPF. If A redistributes routes learned via OSPF from X into EIGRP and advertises them to B, it can keep the Next Hop set to 0.0.0.0, but in that case, B will send the traffic to X through A although that is an unnecessary extra hop because B can send packets to X directly. If A is again configured with "no next-hop-self" on the interface toward X and B, it will advertise the redistributed routes with the Next Hop pointing to X. Router B then knows that it can route packets for those destinations through X directly.

The Next Hop is admittedly a feature that is not that frequently used - it makes sense only in specific scenarios.

Best regards,
Peter

 

 

View solution in original post

17 Replies 17

Hello,

 

The next hop of 0.0.0.0 means its a local route. So when R2 sends the 192.168.20.1/32 network it says "I am the next hop". It shows all 0s in the packet capture because the source is R2->R1. If you see the packet come in on R1 it would show R2 as the next hop and since it knows how to get to R2 in its routing table that's where it sends it.

 

So when R1 receives it, it will see that it came from R2 and it set the next hop to all 0s which was himself so R1 installs it in the RIB with R2 as the next hop.

 

Some routing protocols you can change the next-hop for traffic engineering and manipulation.

 

Hope that helps

 

-David

schmidtjoe
Level 1
Level 1

Hi David,

thanks for your detailed answer. I can close this case now

No problem.

Please make sure to make this post as solved to help others in the community if they are having the same issues.

That need check. 

Next hop must be router id not 0.0.0.0

@MHM Cisco World not quite. At least in EIGRp the OP shows the packet capture from the router originating the route which should be al 0s as its coming from itself. When its received on the other router it sees the all 0s and knows that it came from its directly connected neighbor. It will install it in the routing table with the neighbor IP as the next hop not the router ID as shown in my attachments. I attached a screenshot of a lab I ran.

From R3 with interface IP of 10.1.1.3 and RID of 192.168.3.3

 

DavidRuess_2-1676077201393.png

 

 

On receiving router of R1

DavidRuess_0-1676077049862.png

On the packet capture FROM the 10.1.1.3 router it showed a next hop of 0.0.0.0 as expected.

 

check below my comment. 

Yes, you got the same results we all did. Like I said this is the function of EIGRP, its the same in the BGP table where next hop is 0.0.0.0 denoting "this router". You may be thinking of OSPF where the LSA Type 1 uses the RID for identification since OSPF routes to nodes and not networks like EIGRP.

 

Also the next hop cant be RID because the RID doesn't have to advertised into the network and therefore does NOT have to be reachable. So if its not advertised with a

network

command how will the neighbor know how to route to it?

Friend I read your Q, I must do lab for many cases
1- Case1 
EIGRP RID, RID IP is not advertise 
2-Case2 
EIGRP RID, RID IP is advertise 

so when I get result I will share here 

Screenshot (385).png

simple lab, 
I add to your topology R3 and advertise Lo=3.3.3.3 to R2 through R1 
and still R1 show that the next-hop is 0.0.0.0
Edit:- also I add static route to R3 and advertise this static into EIGRP and still R1 show next-hop 0.0.0.0

this need more check as I mention above. 
I will try do deep dive and check CCIE note for this note 
update soon 
MHM 

My friends,

Please allow me to join.

Since EIGRP is an internal gateway routing protocol, the next hop - whether implicit or explicit - must always be a directly reachable IP address - more precisely, an IP address that is on the directly connected network of the interface that receives the EIGRP advertisement. As opposed to BGP, it cannot be a remote IP address, otherwise it would lead into chicken-and-egg problems.

The consequence of this rule is that if router A advertises a network to router B over the common network connecting them both, the next hop can either be router A itself or some other router X on the same network as both routers A and B. This limits the practical use of the Next Hop field to situations where a router A needs to advertise a route across a common network to its neighbors for whom the next hop X is another router from the same common network. This in turn implies that the other router X must be unable to advertise that route to the other neighbors on the common network itself, otherwise it would just do it and wouldn't need to have router A do it on its behalf.

This is frequently seen in DMVPN Phase 2 between the hub and the spokes. All spokes have EIGRP adjacencies with the hub but not with each other. Here, the hub learns routes from each spoke and advertises them to the remaining spokes (provided the split horizon is disabled). If the hub keeps the Next Hop field set to 0.0.0.0, it will become the next hop for all spoke-to-spoke traffic. If, however, the hub is configured with "no next-hop-self" for the Tunnel interface, then for every route learned from a particular spoke, it will keep that spoke's Tunnel address in the Next Hop field when it advertises the route to the other spokes. This way, the spokes can build spoke-to-spoke tunnels and route traffic to each other directly, not through the hub. This is where the Next Hop field would be populated with non-zero values. (Just for the sake of completeness, DMVPN Phase 3 works differently.)

Another situation where EIGRP may advertise a non-zero Next Hop address is with redistributed routes from another routing protocol. Assume routers A, B and X on the same network. Routers A and B speak EIGRP while X and also A speak OSPF. If A redistributes routes learned via OSPF from X into EIGRP and advertises them to B, it can keep the Next Hop set to 0.0.0.0, but in that case, B will send the traffic to X through A although that is an unnecessary extra hop because B can send packets to X directly. If A is again configured with "no next-hop-self" on the interface toward X and B, it will advertise the redistributed routes with the Next Hop pointing to X. Router B then knows that it can route packets for those destinations through X directly.

The Next Hop is admittedly a feature that is not that frequently used - it makes sense only in specific scenarios.

Best regards,
Peter

 

 

Thanks a lot @Peter Paluch 

Hi @MHM Cisco World ,

With pleasure!

Best regards,
Peter

 

 

I always enjoy reading your responses. I learn a tremendous amount more with your detailed explanations. 

Very much appreciated.

David,

You are too kind. Thank you!

Best regards,
Peter

 

Review Cisco Networking for a $25 gift card