qdm12 / gluetun

VPN client in a thin Docker container for multiple VPN providers, written in Go, and using OpenVPN or Wireguard, DNS over TLS, with a few proxy servers built-in.
https://hub.docker.com/r/qmcgaw/gluetun
MIT License
7.65k stars 358 forks source link

Feature request: Ability for split DNS w/o DoT nor DoH #1839

Open samip5 opened 1 year ago

samip5 commented 1 year ago

What's the feature 🧐

I want to be able to say that this specific domain needs to be resolved from Kubernetes DNS server and also set the routing so it can be reached.

Eg. coredns on 10.41.0.10 (default in Kubernetes that it's the .10 address).

Extra information and references

No response

qdm12 commented 1 year ago

That should be done with the new DNS server, see #137 let's keep this opened though

bjeanes commented 2 months ago

Another use case for my current situation...

I am binding a few LinuxServer.io services to a gluetun instance and using https://github.com/tailscale-dev/docker-mod to embed a Tailscale user-level connection and proxy the service's web UI with tailscale serve.

I can get routing to/from the Tailscale to work fine, including local traversal, by properly setting FIREWALL_OUTBOUND_SUBNETS. However, DNS resolution for other Tailscale hosts (which is desirable in my arrangement) doesn't work because 127.0.0.1:53 just forwards this upstream (i.e. Cloudflare, by default).

It would ideal to be able to influence the unbound config to do something like this:

        private-domain: "ts.net."

forward-zone:
        name: "ts.net."
        forward-addr: 100.100.100.100

I recognise you've got goals to radically change how DNS works in gluetun, but it has been several years on that front. Is there something we could do in the interim, such as an env var like:

DNS_SPLIT_UPSTREAMS=some-root.domain.net/1.2.3.4,ts.net/100.100.100.100

?

mstaffa commented 8 hours ago

Would like to bump this.

In Kubernetes in particular it would be helpful to be able to specify the cluster DNS resolver for instances where I want a container with gluetun to be able to resolve other services in the cluster.

I want a container in pod X to be able to connect to the service of pod Y by the service's name, not it's IP address.