Detailed look at EIGRP Neighbor Adjacency

(Dani I) #5

Hi Rene,

On below config advertisement

John(config)#router eigrp 1
John(config-router)#no auto-summary 
John(config-router)#network 2.2.2.0 0.0.0.255
John(config-router)#network 192.168.12.0
John(config-router)#exit

if i add below config on it

John(config)#router eigrp 1
John(config-router)#passive-interface loopback 0

That means traffic for network 2.2.2.0/24 and 192.168.12.0 won’t pass on interface loop back 0 ?

(Rene Molenaar) #6

Hi Dani,

If you use the passive-interface command then it will no longer send EIGRP hello packets on that interface, that’s it. Here’s an example:

Rene

(Dani I) #7

Thank You very much Rene for a nice elaboration. kindly share also the detail on how redistribute and connected command work on EIGRP.

(Rene Molenaar) #8

You are welcome Dani. Here are two posts on EIGRP redistribution that should help:


Redistribute connected is used to redistribute directly connected networks in a routing protocol, it’s an alternative to the network command.

Rene

(Dani I) #9

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.

(Rene Molenaar) #10

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

(Dani I) #11

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

(Rene Molenaar) #12

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

(Mohammad Taslim M) #13

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

 

(Rene Molenaar) #14

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

(Ajay Krishna M) #15

Hi Rene,

What are the EIGRP Neighbor Parameters for building adjacency.

Regards,
Ajay

(Rene Molenaar) #16

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

(Wisam A) #17

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
(Rene Molenaar) #18

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!

(Wisam A) #19

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

(QIFENG C) #20

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

(Lazaros Agapides) #21

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

(QIFENG C) #22

That’s really helpful, thanks Laz!

1 Like
(Marcel H) #24

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

(Lazaros Agapides) #25

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