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

Extended options/configuration for DoH and DoT #20

Open
Turnerj opened this issue Aug 6, 2022 · 0 comments
Open

Extended options/configuration for DoH and DoT #20

Turnerj opened this issue Aug 6, 2022 · 0 comments
Labels
enhancement New feature or request

Comments

@Turnerj
Copy link
Member

Turnerj commented Aug 6, 2022

This issue has two parts with the general theme being extended options/configuration support.


Currently the path is hard coded to "/dns-query". While this works for Google, Cloudflare and is mentioned in the DNS-over-HTTPS RFC, not all DoH servers may use that. As long as they correspond to POST requests still, the HTTPS resolver should still be able to communicate with them if the path was set to what they use.

Current thought is a custom static method to create an instance of NameServer with options for HTTPS resolvers:

NameServer.CreateHttps(IPEndPoint, HttpsResolverOptions);

Examples of DoH servers that don't as raised to me via email (I do not know nor endorse these, they purely serve as an example of alternative DoH paths in the wild):

https://doh.applied-privacy.net/query
https://doh.cleanbrowsing.org/doh/security-filter
https://doh.cleanbrowsing.org/doh/adult-filter

Currently DNS-over-TLS doesn't allow you to easily specify the DNS host name for the resolver in terms of validating the certificate. Similar to the above with HTTPS options, a more functional way to modify options for a TLS connection would be nicer than creating a custom resolver manually.

Related #19


For the case of general nested resolving, both of these could be extended to have an async variant that allows resolving of a DNS server which would create the NameServer instance. This would need to create a one-off DNS client to somewhere to resolve it and will need to be provided a name server to connect to.

For example, something like this:

NameServer.CreateHttpsAsync(Uri httpsDnsServer, NameServer resolvedVia, HttpsResolverOptions); 
@Turnerj Turnerj added the enhancement New feature or request label Aug 6, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant