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

nixos/kresd: support DNS-over-HTTPS #67829

Closed
wants to merge 1 commit into from
Closed

Conversation

andir
Copy link
Member

@andir andir commented Aug 31, 2019

Motivation for this change

This adds the missing DNS-over-HTTPS support to our module.

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.
Notify maintainers

cc @vcunat

@andir
Copy link
Member Author

andir commented Aug 31, 2019

While this is interesting for experimentation I think we shouldn't add it after all... Closing this but leaving the branch in case we ever want to have it for yet unknown reasons.

@andir andir closed this Aug 31, 2019
@vcunat
Copy link
Member

vcunat commented Aug 31, 2019

On a quick glance this doesn't seem bad, except it's missing the extraFeatures override, without which the module won't load AFAIK.

BTW, why do you think it would be better not to add the support? (with default off) Trying not to encourage this protocol? I'm not really happy with DoH myself, so in the end I hesitated and haven't added a similar change so far.

@andir
Copy link
Member Author

andir commented Sep 3, 2019

I do not see much point in DoH after looking at it more closely. The point I dislike most is probably the whole protocol stack that is involved and doesn't make it any easier to implement / debug / run / …. From a resolver perspective DoT provides (probably) all the benefits with less stuff in between. For consumers it is probably fine (if they are happy with HTTP2 & json).

I guess I am also influenced by the upstreams (so probably at least partially you) documentation discouraging it.

If things change around DoH we could still easily add the option. If someone needs it today they might just add that one socket unit themselves.

I think adding the webmgmt socket option to the module would probably be of more value.

@vcunat
Copy link
Member

vcunat commented Sep 3, 2019

OK, I see. I had been thinking about adding a generic config scheme where you can uniformly use any kind (ATM there's dns, dot, doh and webmgmt), though maybe it would be nice to have some similarity with nixos configs for other servers.

Nitpick: DoH as standardized uses old DNS wire-format inside, and kresd does not support this JSON (currently).

IIRC the only protocol "benefit" significantly discussed now is that DoH is more difficult to block... though there's a strife on whether that's actually good, and you'd get much of that effect by serving DoT on port 443 (simple config change). A practical benefit is that some clients only support DoH, notably Firefox and Chrom*... which is basically the main reason there's a support in kresd, to decrease the push to use one of a handful of huge DNS providers. (Though I'm very much in favor of system-wide and not per-app DNS.)

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

Successfully merging this pull request may close these issues.

None yet

2 participants