On Wednesday, January 20, 2016 1:37 PM, Martin Pieuchot <m...@openbsd.org> 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? This was sparked by seeing entries in my /var/log/messages like: Oct 22 23:50:00 www /bsd: arp: attempt to overwrite permanent entry for 70.20.25.26 by fa:c0:01:75:98:cd on em0 The details are, as best I can summarize: network diagram: -------- ---------- | |----192.168.1.x --ISP 70.20.25.1----|switch | | | |SG200-18| router | | home LAN | |----70.20.25.26 / 192.168.1.1----|switch| | | -------- | |----70.20.25.28 | | | |----70.20.25.29 | | | |----70.20.25.30 ---------- OBSD 6.0 amd64 release ethernet IDs: fa:c0:01:75:98:cd 70.20.25.1 FIOS gateway 00:25:90:0A:69:B6 70.20.25.26 my router - external 00:25:90:0A:69:B7 192.168.1.1 my router - internal 00:25:90:EA:52:9C 70.20.25.30 00:30:48:DC:1E:35 70.20.25.28 00:30:48:DC:75:DF 70.20.25.29 I have wanted to leave nothing to chance regarding IP to ethernet ID mapping so, on 70.20.25.30 rc.local has: arp -F -s 70.20.25.26 00:25:90:0a:69:b6 permanent arp -F -s 70.20.25.28 00:30:48:dc:1e:35 permanent arp -F -s 70.20.25.29 00:30:48:dc:75:df permanent on 70.20.25.30 # route -n show -inet Routing tables Internet: Destination Gateway Flags Refs Use Mtu Prio Iface default 70.20.25.1 UGS 4 16498 - 8 em0 224/4 127.0.0.1 URS 0 0 32768 8 lo0 70.20.25/24 70.20.25.30 UC 1 47033 - 4 em0 70.20.25.1 fa:c0:01:75:98:cd UHLc 1 24835 - 4 em0 70.20.25.26 00:25:90:0a:69:b6 UHLS3 1 657 - L 8 em0 70.20.25.28 00:30:48:dc:1e:35 UHLS3 0 590 - 8 em0 70.20.25.29 00:30:48:dc:75:df UHLS3 0 592 - 8 em0 70.20.25.30 00:25:90:ea:52:9c UHLl 0 7904 - 1 em0 70.20.25.255 70.20.25.30 UHb 0 0 - 1 em0 127/8 127.0.0.1 UGRS 0 0 32768 8 lo0 127.0.0.1 127.0.0.1 UHl 1 393 32768 1 lo0 When I initiate an SSH client connection from 70.20.25.26 to 70.20.25.30: at 22 Oct 23:50, ssh from 70.20.25.26 to www.<redacted>.org (70.20.25.30) #ssh user1@www.<redacted>.org Then, having logged into 70.20.25.30 /var/log/authlog shows: Oct 22 23:50:04 www sshd[5107]: Accepted password for user1 from 70.20.25.26 port 8477 ssh2 /var/log/messages shows: Oct 22 23:50:00 www /bsd: arp: attempt to overwrite permanent entry for 70.20.25.26 by fa:c0:01:75:98:cd on em0 tcpdump log of arp traffic shows: Oct 22 23:50:00.885770 00:25:90:ea:52:9c ff:ff:ff:ff:ff:ff 0806 42: arp who-has 70.20.25.26 tell 70.20.25.30 Oct 22 23:50:00.885893 00:25:90:0a:69:b6 00:25:90:ea:52:9c 0806 60: arp reply 70.20.25.26 is-at 00:25:90:0a:69:b6 Oct 22 23:50:00.886738 fa:c0:01:75:98:cd 00:25:90:ea:52:9c 0806 60: arp reply 70.20.25.26 is-at fa:c0:01:75:98:cd This looks to me like 00:25:90:ea:52:9c (which is 70.20.25.30) is broadcasting an arp 'who-has' requesting the ethernet ID for 70.20.25.26 (SSH client) Apropriately, 00:25:90:0a:69:b6 replies, but the FIOS gateway fa:c0:01:75:98:cd also replies, and tries to pretend it is 70.20.25.26 My question is, why? I have put the ethernet/IP address in as permanent in the arp table, the routing table shows it is there. So why, when I open an SSH connection, is the 70.20.25.30 machine asking for the ethernet address of the client machine? If I didn't have the rc.local arp commands, there might have been the situation where the FIOS gateway interposes itself. I should point out that this is not exactly reproducible - this is after several weeks of running the machine, and I looked for this problem in the first several weeks. Packages installed include: slapd (and its dependency saslauthd), then postfix, dovecot, and acme-client (my domain name - I put it as <redacted> , not because people can't figure it out, but because I don't want Google to index it and make it trivial to associate with this problem/?vulnerability - I hope that doesn't cause a problem)