On 25/10/16(Tue) 03:27, Doug Moss wrote:
> On Wednesday, January 20, 2016 1:37 PM, Martin Pieuchot <[email protected]> 
> wrote:
> >If you're referring to my reply, I was interested in the behavior in a
> >-current kernel, what will be 5.9 soon.  A lot of changes happened
> >since 5.8.
> >
> >It would be nice if you could also post the output of "route -n show -inet"
> 
> >with such kernel.
> 
> I have brought up this issue before, but I think I have narrowed down the 
> possible causes/scenario,
> and I have my machine up to date with the current release.
> 
> I think my question is:
> on my openbsd 6.0 amd64 machine, where I already have an accurate ARP entry 
> that has been manually
> set as permanent, when the sshd daemon receives a connection, why does that 
> machine broadcast
> an ARP 'who-has' for the IP address of the SSH client machine?

Good question.  Could you rebuild arp(8) with the diff attached and show
me the output of "arp -an" after triggering the 'who-has'?  I'd like to
know if some code path set the expiration timer of your permanent entry.

Index: arp.c
===================================================================
RCS file: /cvs/src/usr.sbin/arp/arp.c,v
retrieving revision 1.76
diff -u -p -r1.76 arp.c
--- arp.c       27 Aug 2016 04:15:52 -0000      1.76
+++ arp.c       4 Nov 2016 10:03:34 -0000
@@ -556,7 +556,7 @@ print_entry(struct sockaddr_dl *sdl, str
 
        if (rtm->rtm_flags & (RTF_PERMANENT_ARP|RTF_LOCAL))
                printf(" %-10.10s", "permanent");
-       else if (rtm->rtm_rmx.rmx_expire == 0)
+       if (rtm->rtm_rmx.rmx_expire == 0)
                printf(" %-10.10s", "static");
        else if (rtm->rtm_rmx.rmx_expire > now.tv_sec)
                printf(" %-10.10s",

Reply via email to