On Mon, Mar 06, 2017 at 03:39:16PM +0100, Martin Pieuchot wrote:
| On 06/03/17(Mon) 15:18, Paul de Weerd wrote:
| > Hi Martin,
| > [...] 
| > i.e. the machine is asking for the address of the default gateway, and
| > the default gateway is responding just fine, but the answer is
| > ignored.
| 
| Sadly this information without the output of 'ndp -an' at the time, or
| before/after, you're running the ping is useless.

Mea culpa, I had that in my previous mail.  The ndp output doesn't
change while pinging / tcpdumping; not at the frequency with which I
was trying this.

| We're trying to understand why the states of the software are not being
| correctly updated when packets are being sent and/or received.  Printing
| tcpdump(8) output only give us the packets point of view, printing
| netstat(8) and ndp(8) outputs give us the states point of view.  We
| need both :)

ndp -an showed an expired entry, also after deletion.  It wasn't until
after I deleted the same entry many times (took about 20 runs on that
other machine) before things starting working again.  It was basically
the same behavior as what I described in my previous mail: delete the
entry with ndp -d, and it immediately returns as an expired entry.
Running ping didn't change the output of ndp.  Deleting the entry did
not (seem to) delete it, checking immediately after showed it as still
expired.

Here's what I was (repeatedly) doing while pinging:

[weerd@drop] $ ndp -an | grep fe80::260; doas ndp -d 
fe80::260:e0ff:fe52:f96%iwn0; ndp -an | grep fe80::260 
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 3
fe80::260:e0ff:fe52:f96%iwn0 (fe80::260:e0ff:fe52:f96%iwn0) deleted
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R

The only change is the number '3' (number of NS probes the node has
sent during the current state, according to ndp(8)) getting dropped
after deletion.  It's back shortly after though.  And then, at some
point (~20 deletions), the 'expired' changes to a couple of seconds of
expiry time and things start working again.

It seems that deleting the ndp entry while things are working fine,
greatly increases my chances of hitting this.  After deleting a couple
more times I got this state:

fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 11s       I R

which then turned into the 

fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 3

and the non-working situation again.


This is the output of while sleep .1; do ndp -an | grep ^fe80::2; done

fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 3
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 3
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 3
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 3
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 1s        I R 1
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 1s        I R 1
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 1s        I R 1
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 1
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 1
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 1
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 1
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 1
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 1
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 1s        I R 2
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 1s        I R 2
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 2
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 2
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 2
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 2
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 2
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 2
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 1s        I R 3
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 1s        I R 3
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 3
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 3
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 3
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 3

When you see the 3 go to ' ', I delete the entry.  I see 3 neighbor
solicitations (including replies) and the situation is as it was
before. Repeatedly deleting a couple of times finally results in:

fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 3
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 3
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 3
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 3
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 1s        I R 1
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 1s        I R 1
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 1s        I R 1
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 1
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 1
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 1
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 1
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 1
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 1
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 1s        I R 2
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 1s        I R 2
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 2
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 2
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 2
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R 2
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 expired   I R
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 15s       R R
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 15s       I R
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 14s       I R
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 14s       I R
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 14s       I R
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 14s       I R
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 14s       I R
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 14s       I R
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 15s       R R
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 15s       R R
fe80::260:e0ff:fe52:f96%iwn0         00:60:e0:52:0f:96    iwn0 14s       R R

And things are pinging again.  Leaving this running, I see the state
going back to 'expired' quite often, but everything keeps working.
Then deleting the ndp entry again a couple of times, things break.

Delete a few more times, things start working again.  Rinse, lather,
repeat :)

As these are machines I have at home (and they run softraid FDE), I
can't reboot into a new kernel easily to try your diff.  But now that
I have a way of reproducting this issue, I'll be sure to try tonight
and report back.

Thanks!

Cheers,

Paul

-- 
>++++++++[<++++++++++>-]<+++++++.>+++[<------>-]<.>+++[<+
+++++++++++>-]<.>++[<------------>-]<+.--------------.[-]
                 http://www.weirdnet.nl/                 

Reply via email to