Een HTTP-proxy kan een aanvraag naar een DNS-over-HTTPS-dienst dragen. Voor de JSON-interface van Google Public DNS kan een expliciete query er zo uitzien:

curl --fail --proxy http://proxy.example.net:8080 --noproxy "" \
  --get --data-urlencode "name=example.net" \
  --data-urlencode "type=A" \
  https://dns.google/resolve

De proxy draagt de HTTPS-verbinding naar dns.google. De HTTP-proxylijst is één plek om een kandidaat voor deze openbare query te kiezen, waar toegang via openbare proxies is toegestaan. De resolver van Google beantwoordt de parameter name. Dit is geen verzoek aan de proxy om zijn eigen DNS-cache terug te geven, en ook geen wijziging van de DNS-configuratie die andere toepassingen gebruiken.

Lees de Status in de JSON en de teruggegeven records, niet alleen de HTTP-status. Een succesvol afgeleverd HTTP-antwoord kan een DNS-fout beschrijven. Wijzig type naar het benodigde record, bijvoorbeeld AAAA of MX; één A-query is geen volledige inventaris van elk recordtype.

Het JSON-formaat van dit eindpunt is een gedocumenteerde Google-API. Standaard DoH-clients in wire-formaat gebruiken in plaats daarvan DNS-berichten en application/dns-message. Een gewone nslookup-aanroep krijgt geen van beide HTTP-interfaces louter omdat HTTPS_PROXY is ingesteld.

Gerelateerde artikelen