Pinging local IPs isn't working with subnet router
I have a small tailscale network. I setup one of the nodes to be a subrouter. From outside the local network I can access devices that don't have tailscale installed, which is the goal of the subnet. My advertised route is 192.168.2.0/24 and I can reach devices (like sensors) from outside. I mean I can browse to their http://192.168.x.x address, which again, is the goal. However, I am surprised that I cannot ping the the devices using my local 192.168.x.x IPs, not even between them while I know they are sitting on the same local network. Pinging over tailscale works. It is not the end of the world, I reached my goal, but while I was checking and setting up I was confused by the fact that ping over 192.168.x.x doesn't work when the subnet router is enabled. Any ideas why this happens?
UPDATE: After some reading I found that it is a known issue. It's not only ping, that is affected. The workaround for it to work is to have the tailscale clients that are on the local network the --accept-routes flag set to false. This will allow clients and nonclients to talk over the local network. Clients from the outside should have the --accept-routes flag true and this will allow communication to the non-tailscale devices from the local network.
There is a long discussion here that discusses the issue.
UPDATE2: my subnet router is a AppleTV. After some more reading I figured that AppleTV doesn’t do the ping very well. Everything else works so I left it at that.