Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Custom bootstrap DNS servers #94

Closed
ignoramous opened this issue Sep 17, 2020 · 13 comments
Closed

Custom bootstrap DNS servers #94

ignoramous opened this issue Sep 17, 2020 · 13 comments
Assignees

Comments

@ignoramous
Copy link
Collaborator

ignoramous commented Sep 17, 2020

Today, the DNS over HTTPS client resolves IPs for the DNS over HTTPS endpoint over OS / network supplied DNS resolvers which may or may not block resolution of the DNS over HTTPS endpoint.

To circumvent that, consider supplying custom DNS resolvers to the http.Client [0].

The environment can still block / rewrite all requests on port 53... so that still remains unmitigated.

[0] nextdns/run.go#L427.

@ignoramous ignoramous self-assigned this Sep 17, 2020
@ignoramous
Copy link
Collaborator Author

@ignoramous
Copy link
Collaborator Author

I mean, what intra does is better.

Having bootstrap servers might still help but not as much since, at the end of the day, it relies on plain old DNS without encryption.

@ignoramous
Copy link
Collaborator Author

Jigsaw-Code/Intra#256

@ignoramous
Copy link
Collaborator Author

BraveDNS resolver IPs:

104.26.6.92
172.67.70.173
104.26.7.92

@ignoramous
Copy link
Collaborator Author

Adguard's dnsproxy supports a variety of bootstraps and the impl pretty straight forward too: dnsproxy/upstream/upstream.go#L86.

@ilikenwf
Copy link

And for those of us who use a VPN with internal hostnames, it would be nice if we could fallback to the custom bootstrap so that we can resolve our internal lan hostnames, unless it would be easier to let us add our own extra encrypted resolvers.

@ignoramous
Copy link
Collaborator Author

ignoramous commented Nov 20, 2021

@ilikenwf

we can resolve our internal lan hostnames, unless it would be easier to let us add our own extra encrypted resolvers.

You mean, split-horizon DNS (for ex, .lan, .local, .internal etc) must be resolved by OS/Network provided DNS? If so, that's a combination of #368 and #355 ?

@ilikenwf
Copy link

I don't...remember, sorry, but that sounds right.

I'm using GrapheneOS, and with the power of Wireguard split tunneling, it seems that "auto" mode at the OS level is working well enough.

@ignoramous
Copy link
Collaborator Author

We've decided to limit bootstrap servers to Rethink (DoH), Cloudflare (DoH), Google (DoH), and System DNS (plain old DNS): #211

celzero/firestack@2430028 and 2adbb5d

@mvevitsis
Copy link

mvevitsis commented Jul 25, 2024

We've decided to limit bootstrap servers to Rethink (DoH), Cloudflare (DoH), Google (DoH), and System DNS (plain old DNS): #211

celzero/firestack@2430028 and 2adbb5d

Why?

I don't want any of these, I want tcp 443 directly to my DoH server like with dnscrypt-proxy.

Or are you saying that the DoH setting can take an IP instead of a URL?

But even in that case I would want to set the bootstrap to the loopback address or null to ensure it never uses the system DNS.

@ignoramous
Copy link
Collaborator Author

ignoramous commented Jul 25, 2024

I don't want any of these, I want tcp 443 directly to my DoH server like with dnscrypt-proxy.

Bootstrap servers are needed to connect to DoH upstreams and so they cannot be DoH upstreams themselves.

But even in that case I would want to set the bootstrap to the loopback address or null to ensure it never uses the system DNS.

Loopback address would send the DNS query back into Rethink, so that's useless as a bootstrapper.

Null routing will result in complete connectivity loss (in case DoH / DoT / ODoH are in-use) as Rethink would not be able to resolve and connect to any of those (DoH / DoT / ODoH) upstreams.

System DNS is the default bootstrapper (and it should be left as-is), but this can be changed to either Rehink or Google or Cloudflare.

@mvevitsis
Copy link

mvevitsis commented Jul 26, 2024

In dnscrypt-proxy you can add the IP address of your DoH server to the stamp and it will connect directly to the DoH server without any bootstrap.

I have done this and set the fallback (bootstrap) DNS to null.

I would like to do the same in rethink, however entering e.g. https://1.2.3.4 as the DoH server doesn't work, and there is no option to set the fallback manually (either to my DoH server's address, or to the loopback/nothing if the DoH setting page could accept an IP directly)

@ignoramous
Copy link
Collaborator Author

nothing if the DoH setting page could accept an IP directly)

Please track

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants