Detailed look at EIGRP Neighbor Adjacency

Thank Bro Rene.
Do you have the book for CCNP R& S v2 which is plain and simple?
Also you site for labs gns3vault.com is not opening.

Hi Dani,

I do you can find them here:

Just checked and the site is up and running, my monitoring software also doesn’t report any downtime.

Rene

Rene I saw the book on amazon.com but it has published Paperback – August 28, 2013 while ccnp route v2 was out on December 2014

Hi Dani,

This is the latest version, it was updated a few months ago. I updated the PDF files for the print but Amazon always shows the original print date.

Rene

Hi Rene,

Thank you for the nice explanation.

I’ve a question in my mind. In order to fulfill the neighborship what are the parameters that need to matched at both the router ?

Can you please explain this

Thank you

BR
Taslim

 

Hi Taslim,

There are a couple of parameters that have to match:

  • Authentication
  • AS Number
  • K values
  • Subnet
You can also take a look at this post where I walk you through the most common issues with the EIGRP neigbor adjacency:

EIGRP Neighbor Adjacency Troubleshooting

Rene

Hi Rene,

What are the EIGRP Neighbor Parameters for building adjacency.

Regards,
Ajay

Hi Ajay,

You can find it in the answer right above your question. Authentication, AS number, K values and subnet are the required parameters that have to match on both ends.

Rene

Hello Rene,
Thanks for your explanation.
I just want to ask you, why you added the subnet mask for network 1.1.1.0 while you did not for network 192.168.12.0 as below:
Thanks in advance.

R1(config)#router eigrp 1
R1(config-router)#no auto-summary 
R1(config-router)#network 1.1.1.0 0.0.0.255
R1(config-router)#network 192.168.12.0
R1(config-router)#exit

Hi @wisamani,

If you don’t supply a wildcard then EIGRP will assume you want the whole network to be advertised. Here’s an example:

Router(config)#router eigrp 1
Router(config-router)#no auto-summary 
Router(config-router)#network 1.1.1.0

This is what is stored in the running config:

Router#show run | begin router eigrp
router eigrp 1
 network 1.0.0.0

1.1.1.0 falls under the class A 1.0.0.0/8 range so that’s what EIGRP adds to the running config. If you don’t want this, you have to add a wildcard:

Router(config)#router eigrp 1
Router(config-router)#no network 1.0.0.0
Router(config-router)#network 1.1.1.0 0.0.0.255

And you will get:

Router#show run | begin router eigrp
router eigrp 1
 network 1.1.1.0 0.0.0.255

Even without the wildcard, it would have worked but enabling EIGRP for all 1.x.x.x networks might not be what you want.

I didn’t have to do this for 192.168.12.0 since that’s a class C network. If I used a /25 - /30 subnet mask then I would have to add the correct subnet mask.

Hope this helps!

I got it. Thanks a lot Rene for your reply.

Hello Rene,

Your site is great and easy to understand.

In this topic i understand the part which you had mention if you don’t specify the wild card which command is stated below :

!
no auto- summary
router eigrp 1 network 1.1.1.0  **0.0.0.255**
!

then in result, you’ll find “network 1.0.0.0/8” in your show run.

However when i read about the topic on RIP - “How to configure RIP on cisco router”

In the statement
“You can see that R2 has learned about network 172.16.1.0 /24 and 172.16.2.0 /24. This is because R1 and R3 are advertising 172.16.1.0 /24 and 172.16.2.0 /24, not 172.16.0.0 anymore. R1 and R3 also have learned about each other’s networks.”

I am abit confused because i realize there is no wildcard added for the network command.

Is there a difference in concept for RIP and EIGRP regarding the network and wildcard command ?

I mean in another word, no auto-summary for RIP, why i see there is no wildcard 0.0.0.255 for 172.16.1.0/24 and 172.16.2.0/24 network ?

Thank you

Chan

Hello Qifeng

In EIGRP, if you don’t use the no auto-summary command, the router will assume a classful network address regardless of the wildcard mask you enter.

Once you enter the no auto-summary command, EIGRP will begin sending the wildcard mask information as well.

As for RIP, version 1 will send classful routing information. In order to send classless routing information, RIP must be configured to use Version 2 AND must include the no auto-summary command.

Now the difference between EIGRP and RIP is that when you configure the network command for RIP, you don’t input a wildcard mask. It won’t let you. Take a look at this output:

Router#
Router#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#router rip
Router(config-router)#version 2
Router(config-router)#network 172.16.0.0 ?
  <cr>
Router(config-router)#network 172.16.0.0 
Router(config-router)#

The only option it gives you after the network address is <cr>.

So in RIP, if you configure version 2 and no auto-summary, the router will use the subnet mask configured on the interface associated with the network. So for the example you used, if you have two interfaces with IP addresses 172.16.1.1/24 and 172.16.2.1/24 respectively and you configure those networks using RIP, it will use the subnet masks (/24) configured on the interfaces themselves.

I hope this has been helpful!

Laz

That’s really helpful, thanks Laz!

1 Like

Hi community,

I found out something interesting in cloudshark and I even saw this in my GNS3 Lab I did when I traced neighbor adjacency.


Seems like that the initial Update Packet is Unicasted to it’s Neighbor after receiving a Hello Packet but that Update at that time doesn’t contain any Network Information, only a Flag is set (Init Flag).

The receiver of this seems to Acknowledge this Unicast Update Packet but not with an ACK as i thought it actually will use a Update Packet with the same Flag and also no information about the network yet.

Now the most confusing point is that the actual “Full Update” with all Network Information is sent as Multicast to all EIGRP Listeners (224.0.0.10) with a new Sequence number but later on it is also sent again as Unicast.

The full trace is here:
https://www.cloudshark.org/captures/bdcc74327b71

Can someone explain this trace to me ?

Best regards,
Marcel

1 Like

Hello Marcel

It’s great to see that you’re looking at the operation of EIGRP in such detail, it helps to learn more about the protocol’s operation!

What EIGRP will do is it will initially send an empty update during the neighbor establishment phase. After hellos are exchanged, an empty update will be sent to verify unicast and multicast reachability between the neighbors before beginning to exchange routes.

This sequence is described in detail in RFC7868 which fully describes the neighbor adjacency procedure using UPDATE packets.

According to the RFC, Reliable Transport Protocol (RTP) is used to provide guaranteed, ordered delivery of EIGRP packets to all neighbors. It supports intermixed transmission of multicast and unicast packets. Now it states in the RFC that:

The UPDATE exchange sequence requires UPDATE packets sent to be delivered reliably. If the UPDATE or the ACK packet is lost on the network, the UPDATE packet will be retransmitted. The initial packet is always multicast and subsequent retransmissions are unicast addressed. The acknowledgments sent are always unicast addressed.

You can find the above text specifically at the following location.

So there are cases where an update will indeed be sent via unicast, as is the case in the particular packet capture you shared.

I hope this has been helpful!

Laz

1 Like

Hi,

When I used below to advertise only 1.1.1.1/32 loopback it’s still advertising 1.1.1.0/24 to R2. Why? And how can I advertise /32 only?

//int loo0
//ip address 1.1.1.1 255.255.255.0
Router(config)#router eigrp 1
Router(config-router)#network 1.1.1.1 0.0.0.0

Hello Murat

Remember that the network command indicates to the router which connected SUBNETS will be advertised, not which range of addresses will be advertised. If the network of a connected interface falls within the range of IP addresses stated by the network command, then the subnet of the interface is advertised.

In your case, since you have configured the interface as 1.1.1.1 255.255.255.0, the subnet that will be advertised is 1.1.1.0/24. If you want only 1.1.1.1/32 to be advertised, then you should configure the IP address of the loopback interface with the command ip address 1.1.1.1 255.25.255.255. The router will then advertise the subnet of the interface, which is confined to a single address.

I hope this has been helpful!

Laz

Hi,

you stated ’ If the network of a connected interface falls within the range of IP addresses stated by the network command’ but here oppositely the range of IP addresses stated by the network command (1.1.1.1/32) falls within the network of a connected interface(1.1.1.0/24). So, is is the same with which you mention?

regards,

Hello Murat

According to Cisco, the network command for EIGRP works as follows:

When the network command is configured for an EIGRP routing process, the router matches one or more local interfaces. The network command matches only local interfaces that are configured with addresses that are within the same subnet as the address that has been configured with the network command.

So even if you have stated within the network command that you want to include network 1.1.1.1 0.0.0.0, this IP address/subnet mask combination, when compared with the network assigned to the loopback of 1.1.1.0/24, and it will match, even though the whole network doesn’t fit into the range configured with the network command. It matches 1.1.1.1/32 with the 1.1.1.0/24 network on the interface.

The above statement from Cisco was obtained from this Cisco Documentation.

I hope this has been helpful!

Laz