VPN using local DHCP and dns

Quick Question, can someone direct me to a VPN that makes it it look like the connected device is on the local network?

I am currently using tailscale and while it works fine, when going to my intranet home page, it does not find the DNS in my pihole. I have to type in the ip address manually. Then of course nothing it points to works.

I would like something, than once connected would assume that then VPN is literally plugged into a switch on network.

Opening ports etc, is not really an issue.
Thanks

Tailscale has that functionality built in

Really? Could you point me to somewhere on how to set that up. At the moment I can see everything via IP addresses, but have been unable to get any sort of DNS talking to my pihole. Can’t ping or go to internal urls at all. Ip address yes, but not the URL’s

I am using Cloudflare with a wildcard for my domain, and then the pihole has the internal ones that point to the reverse proxy manager. These just won’t work with tailscale, I think it checks outside of my network even though I specifically tell it to use the pihole DNS.

Read through this

yeah, I had already read through that and could not get it working properly with my current DNS setup… was very frustrating, that’s why I am asking my original question.

So you are setting a DNS server in the Tailscale config that is on your local network but it isn’t resolving anything that is local? The other thing you can try is having the DNS server be part of the Tailscale network so that you can point to it through Tailscale directly.

Unfortunately with VPN configs there is a lot of little gotchas with routing rules and such in your network. Tailscale is generally the easiest to set up so idk if switching to a different type of vpn would really help you. What router/software are you using?

Its been a real pain and lots of messing around to get it working with no luck so far.

This is my infrastructure layout

Everything is working fine, nother from the IOT zone can ping or see rest of network, Servers and Lan communicate with no problem. Everything is going via the PiHole DNS and filtering.

With Tailscale: I can get into the network with no issues. I can ping stuff and go to things (via ip) with no issues. BUT trying to use any FQDN’s that rely on the pihole DNS just doesn’t work. I have set the tailscale to use 192.168.10.10 as its DNS server, and still no joy. Reading their documentation it almost seems like I need to assign each server and service a new FQDN with new “tailscale” ip address, which imho would be nightmarish to maintain. I fiddle a lot adding/removing/changing things around. Its why I started using a reverse proxy for internal stuff as well and a “Homepage” pointing to things via FQDN’s and not IP addresses.

Either I am missing something obvious or I have a major flaw in my understanding of stuff. I have even tried turning it off and on again lol

EDIT: Forgot to add. I know tailscale gives you a static ip for each device connected, so I did take this into account in the “allowed” part of the reverse proxy.

In the Tailscale admin console, in the DNS tab, there’s “Global Nameservers” and a toggle to “override local DNS”.

If you type in your orange pi/pihole DNS IP, and enable the toggle, all client DNS queries will be issued to pi hole.

You don’t really need to make each lightbulb into a Tailscale node.

This was one of the first things I tried, but according to the proxy error logs, the connection is still trying to come from outside and not internal. Its as if it is ignoring the internal DNS completely and going out to cloudflare to get the IP address.

On the surface the entire thing seems simple, but I just cannot get it working in practice. I have added all the tailscale “static” ips to the internal allowed list of the proxy, but It is still making the connection from outside.

EDIT: Also, for some reason, phone is showing DNS as 100.100.100.100 which is their magic dns thing which I do not have on… yes as I was trying to get it working I did try it, but it is currently off