-
-
Notifications
You must be signed in to change notification settings - Fork 570
Description
Scenario and configuration
I have set up Technitium on a server as a conditional forwarder. essentially, some requests need to be forwarded through different DNS's.
I am using zones with conditional forwarders to forward certain domains to a DoH proxy server that I Own. Say https://my-proxy.doh.com
So in Technitium there is a zone for googlevideo.com which has a FWD Record for *, set to use dns-over-Https with no DNSSEC resolved by https://my-proxy.doh.com/dns-query
The server is configured to allow recursive queries from any host.
The server is configured to bypass QPM restrictions for MY computers IP address.
The server is configured to NOT use QNAME Minimization.
The server is configured to NOT cache failures (Cache Failure TTL = 0)
The server is configured to use https://my-proxy.doh.com as the forwarder for everything else (from Settings > Forwarders & proxy) (this is just for testing, in reality this will be a normal DNS-over-UDP address for default recursive resolution)
Technitium Version: v14.2
Running on Ubuntu 24, with network managed by netplan.
The Issue
When i try resolving somethingsomething.googlevideos.com using Technitium (on 127.0.0.1:53) i get an error:
dig a.googlevideos.com
; <<>> DiG 9.18.39-0ubuntu.0.22.04.2-Ubuntu <<>> a.googlevideos.com
;; ...
...
;; OPT PSEUDOSECTION
; EDNS: version: 0, flags:; udp: 1232
; EDE: 22 (No Reachable Authority): (No response from name servers for a.googlevideos.com. A IN)
;; QUESTION SECTION:
...
This tells me that the server is receiving the DNS query, and forwarding it over HTTPS to https://my-proxy.doh.com, but that DoH server is not responding.
Here is some additional information:
I use the DNS Client tab from the web panel to resolve an address:
{
"Metadata": {
"NameServer": "homeserver (127.0.0.1)",
"Protocol": "Udp",
"DatagramSize": "88 bytes",
"RoundTripTime": "1.91 ms"
},
"EDNS": {
"UdpPayloadSize": 1232,
"ExtendedRCODE": "ServerFailure",
"Version": 0,
"Flags": "None",
"Options": [
{
"Code": "EXTENDED_DNS_ERROR",
"Length": "20 bytes",
"Data": {
"InfoCode": "Other",
"ExtraText": "Resolver exception"
}
}
]
},
"DnsClientExtendedErrors": [
{
"InfoCode": "NoReachableAuthority",
"ExtraText": "homeserver (127.0.0.1) returned RCODE=ServerFailure for rr3---sn-qxau5-btqd.googlevideo.com. A IN"
}
],
"Identifier": 56739,
"IsResponse": true,
"OPCODE": "StandardQuery",
"AuthoritativeAnswer": false,
"Truncation": false,
"RecursionDesired": true,
"RecursionAvailable": true,
"Z": 0,
"AuthenticData": false,
"CheckingDisabled": false,
"RCODE": "ServerFailure",
"QDCOUNT": 1,
"ANCOUNT": 0,
"NSCOUNT": 0,
"ARCOUNT": 1,
"Question": [
{
"Name": "rr3---sn-qxau5-btqd.googlevideo.com",
"Type": "A",
"Class": "IN"
}
],
"Answer": [],
"Authority": [],
"Additional": [
{
"Name": "",
"Type": "OPT",
"Class": "1232",
"TTL": "0 (0s)",
"RDLENGTH": "24 bytes",
"RDATA": {
"Options": [
{
"Code": "EXTENDED_DNS_ERROR",
"Length": "20 bytes",
"Data": {
"InfoCode": "Other",
"ExtraText": "Resolver exception"
}
}
]
},
"DnssecStatus": "Disabled"
}
]
}and when i view the Server Logs this is what I see:
[2025-11-25 XX:XX:XX UTC] DNS Server failed to resolve the request 'rr3---sn-qxau5-btqd.googlevideo.com. A IN' using forwarders: https://my-proxy.doh.com/dns-query.
DnsServerCore.Dns.DnsServerException: All name servers failed to answer the request 'rr3---sn-qxau5-btqd.googlevideo.com. A IN'. Received last response with RCODE=Refused from: unknown
at DnsServerCore.Dns.DnsServer.RecursiveResolverBackgroundTaskAsync(DnsQuestionRecord question, NetworkAddress eDnsClientSubnet, Boolean advancedForwardingClientSubnet, IReadOnlyList`1 conditionalForwarders, Boolean dnssecValidation, Boolean cachePrefetchOperation, Boolean cacheRefreshOperation, Boolean skipDnsAppAuthoritativeRequestHandlers, TaskCompletionSource`1 taskCompletionSource) in Z:\Technitium\Projects\DnsServer\DnsServerCore\Dns\DnsServer.cs:line 4503
However this is the catch, the issue does NOT seem to lie with https://my-proxy.doh.com, because when i test it manually:
curl https://my-proxy.doh.com/dns-query?dns=5SYBAAABAAAAAAAAE3JyMy0tLXNuLXF4YXU1LWJ0cWQLZ29vZ2xldmlkZW8DY29tAAABAAE | base64
5SaBgAABAAIAAAAAE3JyMy0tLXNuLXF4YXU1LWJ0cWQLZ29vZ2xldmlkZW8DY29tAAABAAHADAAFAAEAAAcIABQDcnIzDXNuLXF4YXU1LWJ0cWTAIMBBAAEAAQAABwgABD7U/g4=I DO get a response, which is decoded to:
id 58662
opcode QUERY
rcode NOERROR
flags QR RD RA
;QUESTION
rr3---sn-qxau5-btqd.googlevideo.com. IN A
;ANSWER
rr3---sn-qxau5-btqd.googlevideo.com. 1352 IN CNAME rr3.sn-qxau5-btqd.googlevideo.com.
rr3.sn-qxau5-btqd.googlevideo.com. 1352 IN A 62.212.254.14
;AUTHORITY
;ADDITIONAL
So when i manually craft a DoH query and send it over to https://my-proxy.doh.com I get a perfectly fine response.
Same thing happens when i set https://my-proxy.doh.com as the DoH endpoint in firefox directly, everything works fine.
But somehow when technitium attemps to resolve this address from the same endpoint, it fails. I have Tweaked all settings i could think of and nothing seems to fix this, Another weird thing is that this is not the case for all domain names, it only seems to happen for this specific zone. every other domain that is supposed to be resolved through DoH, has been configured in the exact same way and they work just fine.
These two facts lead me to believe that this must be an internal issue with Technitium's DoH forwarder subsystem.
I'll be happy to provide any additional information if necessary.