Macs can't see each other over an Ethernet cable. MacOS failing to set up 169.254 routing. Why? How do I fix? Violates RFC 3927? Hint: multi-homed?

Solution 1:

So I'm looking at the same connection a month later, but with both Macs in normally booted mode.

So now, the 169.254 routing is set up just by plugging the cable.

The other machine is visible in the IP and ARP routing tables.

The problem has gone away.

(I can reach the other machine with mDNS now as per @John Keates; ping [the other machine-name, now that I know it].local works. But I can't go back in time to see if it would have worked.)

Also, I realized I screwed up that route command (just corrected), so that could be causing some remaining weird things I don't understand. (I need to reboot this system!?):

Oh, and I just found out my Ca blood levels have been off, so some confusion it likely caused may have been a major cause of the (alleged) MacOS problem! Cringe. With work, I see it's become worth it to keep this question visible anyway.

Today, I see:

$ ifconfig | grep broad
inet 169.254.14.233 netmask 0xffff0000 broadcast 169.254.255.255
inet 192.168.141.99 netmask 0xffffff00 broadcast 192.168.141.255

and

$ ifconfig | grep broad
inet 169.254.174.186 netmask 0xffff0000 broadcast 169.254.255.255

which is as expected.

But this isn't:

$ ping 169.254.255.255
PING 169.254.255.255 (169.254.255.255): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3
ping: sendto: No route to host
Request timeout for icmp_seq 4
ping: sendto: Host is down
Request timeout for icmp_seq 5
  C-c C-c
--- 169.254.255.255 ping statistics ---
7 packets transmitted, 0 packets received, 100.0% packet loss

My understanding is that I should see ping responses both machines for which that is their broadcast address.

Pinging the other broadcast IP, 192.168.141.255, gets me ping responses from all the live interfaces with that broadcast IP address, as expected.