Beagleplay / Bullseye network setup question

Hi all,
I find network setup to be especially difficult on the newer Play machine running Bullseye. For a while I’ve had development setup to use a Wifi connection. I configured the network using ./wpa_supplicant/wpa_supplicant-wlan0.conf. Surely I used a wired network to configure the wifi password, and then I developed for a while and stopped thinking about network configuration. I noticed nothing unusual. My project could connect to the internet, using a address it resolved using DNS.

I went to install my project on site, where I would use a wired network. I found that while I could connect to the machine, and it advertised its name using mDNS (so that I could find it), it could not resolve DNS names. I did some research and found the topic on Bullseye resolv.conf which explained the problem. The WiFi connection would somehow modify the resolv.conf when it was functioning, but the wired network had no DNS service.

I followed the instructions there, specifically this step seemed to work for me:

echo 'make_resolv_conf() { :; }' > /etc/dhcp/dhclient-enter-hooks.d/leave_my_resolv_conf_alone
chmod 755 /etc/dhcp/dhclient-enter-hooks.d/leave_my_resolv_conf_alone

and that worked! Now I can resolve DNS names over the wired network. However, when I unplug the ethernet and return to using WiFi – the connection is still working, but with the above fix for DNS something else is broken. Now I can connect to the machine (over WiFi) and I can resolve external DNS names, but I cannot establish a route to the external network.

I’m pretty lost. These are my IP routes:

$ ip ro 
default via dev br0 linkdown 
default via dev wlan0 proto dhcp src metric 1024 dev docker0 proto kernel scope link src linkdown dev wlan0 proto kernel scope link src dev br0 proto kernel scope link src linkdown dev wlan0 proto dhcp scope link src metric 1024 dev SoftAp0 proto kernel scope link src 

and this is my resolv.conf

# This file is managed by man:systemd-resolved(8). Do not edit.
# This is a dynamic resolv.conf file for connecting local clients directly to
# all known uplink DNS servers. This file lists all configured search domains.
# Third party programs should typically not access this file directly, but only
# through the symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a
# different way, replace this symlink by a static file or a different symlink.
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.

search .

and this is my /etc/network/interfaces.d/bridge

auto eth0
allow-hotplug eth0

auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual

auto br0
iface br0 inet dhcp
bridge_ports eth0 wlan0

configuration. I’m not sure what else might be involved. Thanks for any help!

What image are you using?