Клиент не может разрешить мой ответ сервера DoH
Я делаю собственный сервер DoH, который должен по-другому разрешать некоторые TLD. Я использую NodeJS для его реализации. Для большинства доменов он просто проксирует их в DoH Google, и это работает. Но когда я пытаюсь разрешить некоторые пользовательские домены, например
mydomain.customtld
Я хочу указать на
bafybeie5nqv6kd3qnfjupgvz34woh3oksc3iau6abmyajn7qvtf6d2ho34.ipfs.dweb.link
Я сам попытался сформировать ответ DNS, и это не удалось. Итак, я прибег к разрешению упомянутой ссылки (т.е. bafybeie5nqv6kd3qnfjupgvz34woh3oksc3iau6abmyajn7qvtf6d2ho34.ipfs.dweb.link) через Google DoH или какой-либо другой сервер DoH и перенаправил ее клиенту в качестве ответа.
Итак, я сделал следующее:
- Я использую библиотеку dohjs nodejs
- Я разрешаю указанную ссылку следующим образом:
const doh = require('dohjs'); const resolver = new doh.DohResolver('https://dns.google/dns-query'); let dnsAnswer = await resolver.query(`bafybeie5nqv6kd3qnfjupgvz34woh3oksc3iau6abmyajn7qvtf6d2ho34.ipfs.dweb.link`, 'A');
И получаю такой ответ:
{
id: 0,
type: 'response',
flags: 384,
flag_qr: true,
opcode: 'QUERY',
flag_aa: false,
flag_tc: false,
flag_rd: true,
flag_ra: true,
flag_z: false,
flag_ad: false,
flag_cd: false,
rcode: 'NOERROR',
questions: [
{
name: 'bafybeie5nqv6kd3qnfjupgvz34woh3oksc3iau6abmyajn7qvtf6d2ho34.ipfs.dweb.link',
type: 'A',
class: 'IN'
}
],
answers: [
{
name: 'bafybeie5nqv6kd3qnfjupgvz34woh3oksc3iau6abmyajn7qvtf6d2ho34.ipfs.dweb.link',
type: 'A',
ttl: 59,
class: 'IN',
flush: false,
data: '209.94.90.1'
}
],
authorities: [],
additionals: []
}
Это похоже на действительный пакет DNS, но после его кодирования и пересылки клиенту (в данном случае Chrome) он не может его разрешить.
Единственное, о чем я мог подумать, это то, что в ответе отсутствуют дополнительные элементы, но я не уверен ... Конкретная ошибка, которую я получаю, - это DNS_PROBE_FINISHED_NXDOMAIN.
Итак, как я мог это решить?
1 ответ
Итак, как оказалось, мой ответный пакет DNS был действителен. Проблема заключалась в том, что URL-адрес в строке URL-адреса браузера не совпадал с URL-адресом, возвращаемым в разделах вопросов и ответов DNS-пакета, и это представляет проблему для браузера. Вероятно, это связано с безопасностью, но когда я изменил имя в разделах ответов и вопросов, мой DNS-пакет был принят браузером. Вопрос определенно неправильный и несоответствующий, но я сохраню его, так как этот ответ может помочь кому-то с той же проблемой при написании пользовательского DoH для использования браузерами.
Приветствую и спасибо за полезные комментарии, которые в конечном итоге помогли мне понять, что с пакетом все в порядке и что проблема была где-то в другом месте.