Windows access webserver running on RPI3 link local



I have been struggling with getting Windows to resolve Bonjour name when RaspberryPi 3 (RPI3) is connected directly (link local) to a PC over Ethernet. What I notice is the following:

  • When the RPI3 is connected to a router (w/ DHCP) either through Ethernet or Wi-Fi, the Pi will get both a IPv4 address and IPv6 address.
  • When RPI3 is connected directly to PC auto-ip is used for both MacOS and Windows. Both MacOS and Windows will assign themselves an auto-ip address for both IPv4 and IPv6. However, the Pi will only assign itself a IPv6 address. I can do ping -6 using Bonjour name and detect the Pi. Unfortunately, this Bonjour address fails in the browser on Windows and browser support for link local IPv6 addresses seems incomplete.

I have a webserver running on the RPI3 and I would like to be able to access it when plugged directly into a PC.
What is the recommended way to do this?

Prior to using resin, I would essentially enable resolving using netbios name. This required installing samba and winbind on the Pi, and then adding ‘wins’ into /etc/nsswitch.conf between ‘files’ and ‘dns’. Then I could access on Mac/Linux using bonjour name (e.g. http://abcdefhg.local) or Windows using netbios name (http://abcdefgh/)
Could this be added to ResinOS or done within a Docker container?

The other option I see is for the Pi to simply assign itself an auto ip for IPv4 when link local not just IPv6.