cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
4388
Views
5
Helpful
3
Replies

EIGRP Init Flag

l-nelson
Level 1
Level 1

I have check numerous places and have to different answers. What EIGRP packets have the Init Flag?

1 Accepted Solution

Accepted Solutions

To expand: There are two basic purposes for the init flag. First, it's a part of the three way handshake that eigrp uses when building an adjacency. I don't actually think this is "officially" documented anyplace outside Cisco, but it will be covered in an upcoming book (an update on Advanced IP Network Design), and we discuss it in the networkers slides a bit (a couple of slides). The basic idea is this:

-- Router B comes up on a wire.

-- Router A receives Router B's hello, and places it in "pending" state. This is a not completely formed adjacency; as long as B is in this state, A won't send any routing information to it.

-- Router A sends an empty unicast update with the init bit set.

-- Router B receives this update with the init bit set, and places Router A in the "pending" state.

-- Router B now transmits an empty update with the init bit set, unicast, to A. This empty update also contains the acknowledgement for Router A's init update (that this ack is piggybacked is an integral part of the three way handshake process).

-- Router A, on receiving this init update, places Router B in the "neighbor" state, and sends an acknowledgement for the init update from Router B.

-- Router B receives this ack, and places A in "neighbor" state.

The two routers can now exchange routing information, knowing they have full two way connectivity between them.

The second use of the init bit is more esoteric. Suppose you have Routers A and B, running along fine, for many hours. Router A reloads, but comes back up before Router B's hold timer has expired. When Router B sees A's hellos, it will assume that A just missed a couple, and everything is fine. But everything isn't fine--A just lost all of its routing information! How can A signal this state, and as B to resynchronize?

A can send an empty update, with the init bit set. This causes Router B to place A in the "pending" state, and wipe out all the information it's learned from A (unless, of course, graceful restart is configured/etc).

Russ.W

View solution in original post

3 Replies 3

ERIK LAWAETZ
Level 1
Level 1

According til Ivan Pepelnjak's book "EIGRP Network Design Solutions" the Init flag is set in the initial update packet when to neighbors discover each other and start their initial topology table exchange.

To expand: There are two basic purposes for the init flag. First, it's a part of the three way handshake that eigrp uses when building an adjacency. I don't actually think this is "officially" documented anyplace outside Cisco, but it will be covered in an upcoming book (an update on Advanced IP Network Design), and we discuss it in the networkers slides a bit (a couple of slides). The basic idea is this:

-- Router B comes up on a wire.

-- Router A receives Router B's hello, and places it in "pending" state. This is a not completely formed adjacency; as long as B is in this state, A won't send any routing information to it.

-- Router A sends an empty unicast update with the init bit set.

-- Router B receives this update with the init bit set, and places Router A in the "pending" state.

-- Router B now transmits an empty update with the init bit set, unicast, to A. This empty update also contains the acknowledgement for Router A's init update (that this ack is piggybacked is an integral part of the three way handshake process).

-- Router A, on receiving this init update, places Router B in the "neighbor" state, and sends an acknowledgement for the init update from Router B.

-- Router B receives this ack, and places A in "neighbor" state.

The two routers can now exchange routing information, knowing they have full two way connectivity between them.

The second use of the init bit is more esoteric. Suppose you have Routers A and B, running along fine, for many hours. Router A reloads, but comes back up before Router B's hold timer has expired. When Router B sees A's hellos, it will assume that A just missed a couple, and everything is fine. But everything isn't fine--A just lost all of its routing information! How can A signal this state, and as B to resynchronize?

A can send an empty update, with the init bit set. This causes Router B to place A in the "pending" state, and wipe out all the information it's learned from A (unless, of course, graceful restart is configured/etc).

Russ.W

Thanks Russ, For the wonderful explanation. I have one small doubt in this process. As you stated, A and B are forming neighborship after the null update has acknowledged. I Have gone through the wireshark logs, in that Both routers has sending topology table via Hello Packet,prior to null update exchange. so how the topology information is processed before the neighborship formation.

 

eigrp hello.PNG

 

topology details.PNG

Consider the below details.

 

Router A : 10.2.2.1

Router B : 10.2.2.2

 

seq 895 : router A is up and running, sending multicast  Hello to all

seq 897 : Router B came up and sent a Multicast Hello all

Note: Till now it is a normal Hello with 74 Bytes

 

seq 898 : Router A received the Hello from Router B, so now sending the Tricky Multicast Hello with topology details(Peer topology id list(TID)) (length is 84 Bytes now)

seq 901 : Router B received the Hello from Router A, so now sending the Tricky Multicast Hello with topology details(Peer topology id list(TID)) (length is 84 Bytes now)

 

seq 902,903, 904 : exchanging null Update with init flag set, as you said..

 

 

 

 

Thanks,

Udhay