Subject: [Doh] Experimental implementation of DoH (draft -07) in dnss

From: Alberto Bertogli <[email-masked]>
Date: Wed, 18 Apr 2018 00:14:11 +0100

Hi!

I hope this is ok to post on this list.

I've added experimental DoH support to a DNS proxy that I wrote some 
time ago (which also does DNS over the HTTPS+JSON defined by 
dns.google.com).

It supports both server (DNS in, HTTPS out) and client (HTTPS in, DNS 
out) modes.

You can find it here: https://blitiri.com.ar/git/r/dnss/

DoH support is still experimental, so some of the documentation has not 
been fully updated yet. I expect to adjust it as new drafts appear. 
Cache-related headers are on the TODO list (but it is fully functional 
without them anyway).

Overall I found the draft very clear, and it was quite straightforward 
to implement (I hope I did not overlook anything major :)

Thanks a lot!
		Alberto

PS: In case you're curious, here are the two key changes:

Client mode (DNS in, DoH out) patch:
https://blitiri.com.ar/git/r/dnss/c/5cc895a891bade8fba30d611720f65652a1f6909/

Server mode (DoH in, DNS out) patch:
https://blitiri.com.ar/git/r/dnss/c/9c203de38b9e12f4dd94db10f7df8284a9091d83/

Also once Cloudflare supports the -07's new content type the daemon 
should be able to talk with it just fine (it was working ok with -05).