Проблема с doh-прокси: как поддерживать одно HTTPS-соединение без периодических повторных подключений?

У меня возникла проблема с прокси-сервером doh из https://github.com/facebookarchive/doh-proxy , который обеспечивает функциональность DNS-over-HTTPS. Фактически, я использую его функцию «doh-stub», которая использует службу, которая прослушивает DNS-запросы и пересылает их на сервер DoH. В моей тестовой среде сервер DoH моделируется с помощью DNSDist. Поэтому, когда DNS-запрос отправляется в службу doh-proxy «doh-stub», он пересылается с использованием DoH на мой сервер. Когда служба запускается, я передаю самозаверяющий сертификат в качестве аргумента для инициации HTTPS-соединения.

Моя конкретная проблема заключается в том, что инструмент doh-proxy устанавливает первоначальное соединение HTTPS. Затем, примерно через 1000 секунд, он устанавливает новое соединение HTTPS, и весь трафик предыдущего соединения теперь переходит в новое соединение HTTPS. Но мне бы хотелось, чтобы он поддерживал одно соединение, не создавая новое и не перекладывая на него трафик.

Вывод журнала сообщает мне, что после 998 потоков устанавливается новое соединение. К сожалению, я не знаю, почему возникла эта новая связь.

Журнал инструмента doh-proxy, когда он инициирует новое соединение после 998 потоков.

Вот соответствующие детали моей настройки:

  • Операционные системы машин, использующих инструмент doh-proxy: Debian 11/Windows 10.
  • Версия doh-proxy: 0.0.9 (устанавливается с помощью pip с Python 3.5)

Знаете ли вы, есть ли способ настроить одно HTTPS-соединение? Знаете ли вы, как изменить код, чтобы добиться этого?

Любые рекомендации или идеи будут с благодарностью приняты. Заранее спасибо!

1 ответ

Инструмент «doh-proxy» отвечает за настройку нового соединения благодаря библиотеке Priority (https://github.com/python-hyper/priority), используемой для управления потоками HTTP/2, которая прошла проверку безопасности. патч, касающийся уязвимости, позволяющей злоумышленникам использовать библиотеку для совершения DoS-атак [1]. В результате в версии Priority 1.2.0 максимальное количество потоков, которые можно вставить в дерево, по умолчанию установлено равным 1000. Однако это может настроить пользователь.

Итак, чтобы поддерживать одно HTTPS-соединение с помощью инструмента «doh-proxy», решением является увеличение максимального количества потоков, разрешенных библиотекой Priority. Это означало бы ручное изменение параметра и наличие собственной версии библиотеки.

Другие вопросы по тегам