A client and proxy implementation of https://tools.ietf.org/html/draft-ietf-doh-dns-over-https-13
Project description
quart-doh
quart-doh is a simple DOH (DNS Over HTTPS) server. It resolves DNS query on HTTP.
Implementation
RFC 8484
Json implementation
Quick start
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
pipenv sync -d
pipenv run doh_server
Use with Firefox
in about:config edit::
network.trr.mode;3
network.trr.uri;https://127.0.0.1/dns-query
For the URI, add your URI for your reverse proxy serving your Quart app.
Firefox seems to only accept port 443.
Installation
Via Pip
pip install quart-doh
Then :
Generate a certificate and a private key :
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
doh-server --debug --cert [path]cert.pem --key [path]key.pem
doh-client --noverify
Via Docker
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
docker build -f Dockerfile -t quart-doh/doh-server .
docker run --rm -p 443:443 quart-doh/doh-server
Benchmark
Macbook Pro 2019 Processor 2,4 GHz Intel Core i5 Memory 8 GB 2133 MHz LPDDR3
apib -c 100 -d 60 @benchmark_get_url.txt
HTTP/1.1 Duration: 60.024 seconds Attempted requests: 15757 Successful requests: 15757 Non-200 results: 0 Connections opened: 100 Socket errors: 0 Throughput: 262.511 requests/second Average latency: 376.399 milliseconds Minimum latency: 103.082 milliseconds Maximum latency: 2846.580 milliseconds Latency std. dev: 456.340 milliseconds 50% latency: 202.483 milliseconds 90% latency: 862.423 milliseconds 98% latency: 2044.469 milliseconds 99% latency: 2409.697 milliseconds Client CPU average: 0% Client CPU max: 0% Client memory usage: 0% Total bytes sent: 2.25 megabytes Total bytes received: 5.08 megabytes Send bandwidth: 0.30 megabits / second Receive bandwidth: 0.68 megabits / second
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file quart-doh-0.1.0.tar.gz
.
File metadata
- Download URL: quart-doh-0.1.0.tar.gz
- Upload date:
- Size: 6.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cef0878737426a6a0a8f292fe51f06820a2ca447fd5b82bb58ac4fb78bf3e148 |
|
MD5 | a3e21715e6f0f008f5da04416eb2f131 |
|
BLAKE2b-256 | 896ae1e27910cf707c689d2587dd593817e1b29fb115bbe8ceed86a5f9f06ad7 |