19.07.2013 Views

Debugging EIGRP-1 The topology used is - The Cisco Learning ...

Debugging EIGRP-1 The topology used is - The Cisco Learning ...

Debugging EIGRP-1 The topology used is - The Cisco Learning ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Debugging</strong> <strong>EIGRP</strong>-1<br />

<strong>The</strong> <strong>topology</strong> <strong>used</strong> <strong>is</strong>:<br />

R1 <strong>is</strong> adjacent to R2 and R3.<br />

When the eigrp process <strong>is</strong> cleared, the neighborship builds-


<strong>The</strong> first snippet of the debug on R3 shows<br />

00:10:03.131: <strong>EIGRP</strong>: Received UPDATE on FastEthernet0/0 nbr 10.1.13.1update has flag 0x1, seq<br />

13/0 , -- th<strong>is</strong> means the update was initial update, and R3 didn’t know any Router R1 up until now.<br />

Seq 13/0 <strong>is</strong> the update packet seq no <strong>is</strong> 13, and it <strong>is</strong> not sending any ACK with it- just because R1<br />

hasn’t received any packet yet from R3.<br />

00:10:03.135: <strong>EIGRP</strong>: Received Sequence TLV from 10.1.13.1:- just because R1 hasn’t received the<br />

acknowledgement of its earlier packet, it sends a hello packet with TLV type SEQ (oxooo3), (snip<br />

below)<br />

And R3 sees its own ip address, and next 2 line in (snip above ) shows that. Clear CR mode, - means<br />

don’t entertain the multicast packet with the seq no mentioned, in Hello packet with TLV SEQ field<br />

set.<br />

Packet capture<br />

When ever a Reliable multicast packet <strong>is</strong> sent on an interface a multicast flow timer <strong>is</strong> started<br />

for it, and if ACk for th<strong>is</strong> reliable packet <strong>is</strong> not received within the multicast flow-timer, router<br />

generates a special hello, with fields like shown above, and th<strong>is</strong> hello <strong>is</strong> a multicast. But th<strong>is</strong><br />

includes neighbor IP address, as shown in the packet capture (10.1.13.3). <strong>The</strong> other routers upon<br />

receiving th<strong>is</strong> hello packet, see the ip address field, and when they don’t find their own ip in th<strong>is</strong><br />

field, they transition to Conditional Receive mode (CR). Th<strong>is</strong> packet also indicates the seq, no


that the next multicast update will have. Conditional receive just means that the router in that<br />

mode should receive and process the multicast packet.<br />

<strong>The</strong> router mentioned in th<strong>is</strong> hell TLS SEQ, ignores the multicast packet with the seq no<br />

mentioned in the hello,(here 14.) because it <strong>is</strong> not following the the update process sequence.<br />

And any other router don’t want others to suffer because of one/few less responsive router/s,<br />

so they keep running/sending the update packets with reliable multicast packets in the sequence<br />

and tells the less responsive router to hold on ,and try out the special treatment (unicasts). After<br />

that the router running not that good, catches up with others and start dealing with multicasts.<br />

(repeat)Here th<strong>is</strong> happens because, the router R1 can’t let the (router R3- 10.1.13.3) to stay<br />

behind in the update process. <strong>The</strong>re-fore it generates a unicast packet, and sends to 10.1.13.3,<br />

expecting R3 to catch up nicely.<br />

Router, in CR mode comes out of it, as soon as they see the multcast packet with seq no<br />

mentioned in the Hello packet with TLV SEQ set,that always precedes the multicast.<br />

Th<strong>is</strong> <strong>is</strong> the Reliable Multicast packet for which the special hello was sent. <strong>The</strong> Seq no of the packet<br />

<strong>is</strong> same -14.<br />

It didn’t get acked by R3.<br />

R3 finally receives that (out of order for it-self) multicast update. And it d<strong>is</strong>cards it.<br />

Mar 1 00:10:03.139: <strong>EIGRP</strong>: Received UPDATE on FastEthernet0/0 nbr 10.1.13.1<br />

Mar 1 00:10:03.139: AS 1, Flags 0xA, Seq 14/0 idbQ 0/0 iidbQ un/rely 0/1 peerQ un/rely 0/0, not<br />

in CR-mode, packet d<strong>is</strong>carded<br />

Th<strong>is</strong> <strong>is</strong> the same packet we are talking about, flag <strong>is</strong> 0xA, the Seq <strong>is</strong> 14.


Earlier What happened at R1 :<br />

R1 sent a Multicast Update with Seq 13, and that was not acknowledged by R3 within the Multicast<br />

Flow timer. Hence a Unicast was sent,<br />

00:10:05.811: <strong>EIGRP</strong>: Requeued unicast on FastEthernet0/1<br />

00:10:05.819: <strong>EIGRP</strong>: Sending UPDATE on FastEthernet0/1 nbr 10.1.13.3<br />

00:10:05.819: AS 1, Flags 0x1, Seq 13/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ un<br />

- 00:10:05.827: <strong>EIGRP</strong>: Building Sequence TLV, <strong>EIGRP</strong>, and next three line in the cli snip<br />

Next <strong>is</strong> R1 receives ACK for its uncast packet Seq no 13.<br />

ACKS are UNICAST:


<strong>EIGRP</strong>: Received UPDATE on FastEthernet0/1 nbr 10.1.13.3<br />

Mar 1 00:10:05.947: AS 1, Flags 0x1, Seq 5/13 idbQ 1/0 iidbQ un/rely 0/0<br />

peerQ un/rely 0/2<br />

<strong>The</strong> earlier outstanding seq no 13 <strong>is</strong> acknowledged, and it’s the initial update packet from R3, (flag<br />

0x1) with seq 5. Now the R1 will acknowledge th<strong>is</strong> packet with ack 5. And thing goes onlike th<strong>is</strong>,<br />

until the process <strong>is</strong> complete and -----neighborship comes up.<br />

------------------------------------------------------------<br />

You’ll be seeing in debugs, the router sending multicast updates, with CR (conditional receive) flag<br />

set-ie. 0x2 (or 0xA, depends) and Still stuck on to a single seq no that <strong>is</strong> lower than the earlier.<br />

Like—<br />

<strong>The</strong>re <strong>is</strong> seq no 16, with intial flag set i.e 0x1, then, seq no 17, with CR Flag bit set. Th<strong>is</strong> <strong>is</strong> because,<br />

there can be more than one neighbor on a segment. But, it will not increase if there <strong>is</strong>n’t any extra<br />

neighbor, it has to receive ACK for those Reliable multicasts.<br />

RTO here <strong>is</strong> Retransm<strong>is</strong>sion time out, the time in ms between successive unicast updates. ( usually <strong>is</strong><br />

6 times srtt and a max value <strong>is</strong> 200 ms –if I remember right.)


Now when I add a network on R3.<br />

<strong>The</strong>re won’t be any flags set, here. As the neighbor ship <strong>is</strong> healthy at the moment.<br />

16:27.275: <strong>EIGRP</strong>: Received UPDATE on FastEthernet0/1 nbr 10.1.13.3<br />

16:27.279: AS 1, Flags 0x0, Seq 9/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0<br />

16:27.279: <strong>EIGRP</strong>: Enqueueing ACK on FastEthernet0/1 nbr 10.1.13.3<br />

16:27.283: Ack seq 9 iidbQ un/rely 0/0 peerQ un/rely 1/0<br />

16:27.283: IP-<strong>EIGRP</strong>(Default-IP-Routing-Table:1): Processing incoming UPDATE packet<br />

6:27.287: IP-<strong>EIGRP</strong>(Default-IP-Routing-Table:1): Int 3.0.0.0/8 M 409600 - 256000 153600<br />

SM 128256 - 256 128000<br />

6:27.287: IP-<strong>EIGRP</strong>(Default-IP-Routing-Table:1): route installed for 3.0.0.0 ()<br />

6:27.291: <strong>EIGRP</strong>: Sending ACK on FastEthernet0/1 nbr 10.1.13.3<br />

6:27.291: AS 1, Flags 0x0, Seq 0/9 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 1/0<br />

6:27.303: <strong>EIGRP</strong>: Enqueueing UPDATE on FastEthernet0/0 iidbQ un/rely 0/1 serno 3-3<br />

6:27.303: <strong>EIGRP</strong>: Enqueueing UPDATE on FastEthernet0/1 iidbQ un/rely 0/1 serno 3-3<br />

6:27.307: IP-<strong>EIGRP</strong>(Default-IP-Routing-Table:1): Int 3.0.0.0/8 metric 409600 - 256000<br />

153600<br />

6:27.311: <strong>EIGRP</strong>: Enqueueing UPDATE on FastEthernet0/0 nbr 10.1.12.2 iidbQ un/rely 0/0<br />

peerQ un/rely 0/0 serno 3-3<br />

6:27.311: <strong>EIGRP</strong>: Sending UPDATE on FastEthernet0/0<br />

6:27.311: AS 1, Flags 0x0, Seq 19/0 idbQ 0/0 iidbQ un/rely 0/0 serno 3-3<br />

6:27.315: IP-<strong>EIGRP</strong>(Default-IP-Routing-Table:1): Int 3.0.0.0/8 metric 409600 - 256000<br />

153600<br />

6:27.315: <strong>EIGRP</strong>: Enqueueing UPDATE on FastEthernet0/1 nbr 10.1.13.3 iidbQ un/rely 0/0<br />

peerQ un/rely 0/0 serno 3-3<br />

6:27.319: <strong>EIGRP</strong>: Sending UPDATE on FastEthernet0/1<br />

6:27.319: AS 1, Flags 0x0, Seq 20/0 idbQ 0/0 iidbQ un/rely 0/0 serno 3-3<br />

6:27.367: <strong>EIGRP</strong>: Received ACK on FastEthernet0/1 nbr 10.1.13.3<br />

6:27.371: AS 1, Flags 0x0, Seq 0/20 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/1<br />

16:27.371: <strong>EIGRP</strong>: Received ACK on FastEthernet0/0 nbr 10.1.12.2<br />

16:27.375: AS 1, Flags 0x0, Seq 0/19 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/1<br />

R1 receives the route in update with SEQ no 9 , flags are not set, none of CR and initial, flags are<br />

set. R1 then acks back SEQ no 9, to R3. And it sends the update to R2 and R3 with SEq no 19 and<br />

20 respectively. But with diff metrics.<br />

R2 receives the update-


16:25.903: IP-<strong>EIGRP</strong>(Default-IP-Routing-Table:1): Processing incoming UPDATE packet<br />

16:25.907: IP-<strong>EIGRP</strong>(Default-IP-Routing-Table:1): Int 3.0.0.0/8 M 435200 - 256000 179200 SM<br />

409600 - 256000 153600<br />

M <strong>is</strong> total metric (FD) here. SM <strong>is</strong> advert<strong>is</strong>ed metric(RD).<br />

And at R3:<br />

16:24.547: IP-<strong>EIGRP</strong>(Default-IP-Routing-Table:1): Processing incoming UPDATE packet<br />

16:24.547: IP-<strong>EIGRP</strong>(Default-IP-Routing-Table:1): Int 3.0.0.0/8 M 4294967295 - 256000<br />

4294967295 SM 4294967295 - 256000 4294967295<br />

<strong>The</strong> po<strong>is</strong>on route <strong>is</strong> d<strong>is</strong>carded by R3.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!