@@ -27,9 +27,10 @@ listen_addrs = [
2727]
2828
2929
30- ## Upstream DNS server and port
30+ ## Upstream DNS server(s) and port(s)
31+ ## The server tries each address in order and fails over on timeout/error.
3132
32- upstream_addr = "127.0.0.1:553"
33+ upstream_addrs = [ "127.0.0.1:553"]
3334
3435
3536## File name to save the state to
@@ -95,7 +96,7 @@ client_ttl_holdon = 60
9596daemonize = false
9697
9798
98- ## Log file
99+ ## Log file, when running as a background process
99100
100101# log_file = "/tmp/encrypted-dns.log"
101102
@@ -138,6 +139,15 @@ group = "_encrypted-dns"
138139provider_name = "@PROVIDER_NAME@"
139140
140141
142+ ## Advertise a post-quantum certificate (PQDNSCrypt, X-Wing key exchange)
143+ ## alongside the classical one. Clients that understand it perform a hybrid
144+ ## ML-KEM-768 + X25519 key exchange; clients that don't keep using X25519.
145+ ## Because a PQ certificate is around 1.3 KB, certificate retrieval will
146+ ## usually happen over TCP once this is enabled.
147+
148+ pq_enabled = true
149+
150+
141151## Does the server support DNSSEC?
142152
143153dnssec = true
@@ -255,3 +265,22 @@ enabled = false
255265# Example: `query_meta = ["token:Y2oHkDJNHz"]`
256266
257267tokens = ["Y2oHkDJNHz", "G5zY3J5cHQtY", "C5zZWN1cmUuZG5z"]
268+
269+
270+ ################################
271+ # Rate limiting #
272+ ################################
273+
274+ [rate_limit]
275+
276+ # Enable per-client rate limiting
277+
278+ enabled = false
279+
280+ # Maximum queries per second per client IP
281+
282+ max_queries_per_second = 100
283+
284+ # Maximum number of client IPs to track (uses SIEVE cache for automatic eviction)
285+
286+ capacity = 10000
0 commit comments