Как у вас был опыт работы с DoH? (Я имею в виду версии до 7.12, поскольку в этой версии появились сообщения о проблемах.) Я провёл немало тестов с ним на версиях 7.11.*, и больше всего меня раздражало, что казалось, он устраивает все эти танцы с подключением буквально ради одного DNS-запроса. То есть устанавливается TCP-соединение, происходит обмен ключами для TLS и всё такое, потом, кажется, отправляется один DNS-запрос по HTTPS (конечно, точно определить это я не могу, потому что трафик зашифрован), и сразу же соединение закрывается (пакеты FIN/ACK и т.п.). Причём это происходило не в каком-то искусственном тесте с одним запросом, а при обычном заходе на сайты, когда одновременно надо разрешить кучу DNS-имен. Ничего необычного.
Из-за этого я сталкивался с некоторыми неудобствами и даже реальными проблемами. Под «неудобствами» я имею в виду снижение общей «сетевой эффективности» и увеличение задержек при DNS-запросах, а под «проблемами» — то, что некоторые DNS-провайдеры с поддержкой DoH (например, Google) очень часто просто не отвечали на мои (довольно частые) TCP SYN-пакеты в большинстве DNS-запросов. У Cloudflare такие «отбрасывания» TCP SYN почти не встречались. Тут могу только предполагать, что Google мог меня ограничивать по скорости (и я их понимаю — если бы я был DNS-провайдером с DoH, то тоже ограничивал бы клиентов, которые открывают новое соединение под каждый запрос, вместо того чтобы использовать уже установленные). Но, чтобы было ясно, это только мои предположения, основанные на анализе перехваченных пакетов. Поведение Google и Cloudflare я подтвердить не могу. Может, моё соединение тоже выбрасывает пакеты мой провайдер (хотя это выглядело бы странно), но и доказательств этому у меня нет.
Разве нельзя использовать уже установленное соединение хотя бы в течение нескольких секунд для последующих DNS-запросов? Это безумие — подумать, что DNS-запрос превратился из обмена двумя UDP-пакетами в обмен более чем дюжиной пакетов по TCP.
У вас такое тоже бывает?
P.S.: Да, я наблюдал это поведение как с параметрами DNS/DoH по умолчанию, так и после их корректной (насколько я понимаю) настройки. Все описанные проблемы возникали при отсутствии каких-либо ошибок или предупреждений о лимитах соединений, запросов и т.п.
P.S. 2: И да, я понимаю, что это не так просто, и разработка такого решения — задача непростая. Помимо сложности кода, нужно учитывать воздействие на использование памяти на самых разных устройствах. Но было бы здорово хотя бы услышать что-то вроде: «Мы это изучаем», «Мы в курсе и думаем, что можно сделать» или «Мы уже работаем над решением».
Из-за этого я сталкивался с некоторыми неудобствами и даже реальными проблемами. Под «неудобствами» я имею в виду снижение общей «сетевой эффективности» и увеличение задержек при DNS-запросах, а под «проблемами» — то, что некоторые DNS-провайдеры с поддержкой DoH (например, Google) очень часто просто не отвечали на мои (довольно частые) TCP SYN-пакеты в большинстве DNS-запросов. У Cloudflare такие «отбрасывания» TCP SYN почти не встречались. Тут могу только предполагать, что Google мог меня ограничивать по скорости (и я их понимаю — если бы я был DNS-провайдером с DoH, то тоже ограничивал бы клиентов, которые открывают новое соединение под каждый запрос, вместо того чтобы использовать уже установленные). Но, чтобы было ясно, это только мои предположения, основанные на анализе перехваченных пакетов. Поведение Google и Cloudflare я подтвердить не могу. Может, моё соединение тоже выбрасывает пакеты мой провайдер (хотя это выглядело бы странно), но и доказательств этому у меня нет.
Разве нельзя использовать уже установленное соединение хотя бы в течение нескольких секунд для последующих DNS-запросов? Это безумие — подумать, что DNS-запрос превратился из обмена двумя UDP-пакетами в обмен более чем дюжиной пакетов по TCP.
У вас такое тоже бывает?
P.S.: Да, я наблюдал это поведение как с параметрами DNS/DoH по умолчанию, так и после их корректной (насколько я понимаю) настройки. Все описанные проблемы возникали при отсутствии каких-либо ошибок или предупреждений о лимитах соединений, запросов и т.п.
P.S. 2: И да, я понимаю, что это не так просто, и разработка такого решения — задача непростая. Помимо сложности кода, нужно учитывать воздействие на использование памяти на самых разных устройствах. Но было бы здорово хотя бы услышать что-то вроде: «Мы это изучаем», «Мы в курсе и думаем, что можно сделать» или «Мы уже работаем над решением».
