Перепрошуємо за відсутність перекладу. Ви побачите цю сторінку рідною мовою незабаром

AdGuard представляет первый в мире резолвер DNS-over-QUIC

AdGuard DNS — первый публичный резолвер, который использует новый протокол DNS-over-QUIC. Мы невероятно гордимся и рады, что добились такого и можем предоставить нашим пользователям возможность первыми опробовать его в деле. Сейчас мы расскажем вам, что это такое, какие у него есть плюсы и минусы, а главное, как его использовать.

Если вам нужно освежить свои знания о DNS и том, как его использовать для защиты персональных данных в интернете, прочитайте эту статью.

Что такое QUIC?

Чтобы разобраться в тонкостях DNS-over-QUIC, логично сначала понять, что такое QUIC. Так что давайте сделаем один шажок назад, чтобы затем сделать два шага вперёд.

QUIC — это относительно новый транспортный протокол. Проще говоря, он передаёт пакеты информации между серверами или между сервером и клиентом. Есть разные способы сделать это (другие протоколы), вы наверняка слышали о старом добром TCP, который в основном использовался в сети в последние десятилетия.

По сравнению с TCP, у QUIC выше скорость, надёжность и лучше шифрование. Помимо этого, он решает несколько важных проблем, масштабы которых не были очевидны во времена, когда разрабатывался старый стек протоколов.

Head-of-line blocking

Как упоминалось раньше, долгое время мы жили, используя TCP и другие протоколы, работающие поверх него — TLS, SSL, HTTP. Должно быть, эти аббревиатуры по меньшей мере кажутся вам знакомыми, и неудивительно: они существуют уже давно и прекрасно справляются со своей работой. Но есть одна загвоздка: они хорошо работают в практически идеальных условиях, то есть в сетях с высоким качеством связи. Стоит выйти из дома во внешний мир с его LTE и мобильными сетями в целом, как вы неизбежно наткнётесь на слабый сигнал, медленное соединение и что-либо ещё. И даже внедрение современных стандартов вроде 5G не спасёт от неприятностей — в городе вы запросто найдёте место с плохой связью, взять хотя бы лифты.

Годы с этой проблемой, и вот мы уже в стадии принятия, рассматриваем проблемы со связью как нечто естественное — сеть плохая, поэтому страницы загружаются медленно или не загружаются вообще. Но почему? Мы подходим к теме так называемой Head-of-line blocking. По протоколу TCP пакеты данных передаются порциями. Представьте, что ваш браузер отправляет несколько запросов, а сервер возвращает несколько ответов, скомпонованных вместе в определённом порядке. Стоит одному из них потеряться в пути из-за слабого соединения, и карточный домик рассыпается. Остальные пакеты не могут быть обработаны и остаются в очереди, ожидая, пока потерянный пакет будет отправлен вновь.

По протоколу TCP, если один пакет данных потерялся, остальные не могут быть обработаны

Благодаря особенностям реализации, в случае QUIC данные не остаются в очереди, а обрабатываются сразу по их получении. Если первый пакет данных потерялся из-за слабого сигнала, остальные, тем не менее, будут обработаны без задержки.

По протоколу QUIC другие пакеты данных могут быть обработаны, даже если первый потерялся по пути

Миграция соединения

Мы привыкли к тому, что каждое устройство в интернете однозначно определяется его IP-адресом, и это в каком-то смысле верно. Но представьте себе день обычного человека. Давайте даже возьмём меня в качестве примера. Каждое утро я покидаю комфортную зону дома (и его стабильный Wi-Fi) и еду на работу. Я спускаюсь на лифте, и мой телефон переключается с домашнего Wi-Fi на 4G. Его IP-адрес меняется, а все активные подключения разрываются. Я снова открываю браузер, и он вынужден заново устанавливать соединения с сайтом и моим DOH-сервером, работающем на AdGuard Home. Это занимает время, и я быстро теряю терпение. Затем я добираюсь до офиса, подключаюсь к Wi-Fi, и всё заново.

QUIC разработан с учётом всего этого. Когда он используется, ваш телефон беспрепятственно будет переключаться с одного IP-адреса на другой — это называется connection migration («миграция соединения»). Всё устроено более сложно, и на самом деле QUIC позволяет соединениям пережить изменения конечных адресов, а не только IP-адресов (порт тоже меняется).

DNS-over-QUIC

DNS-over-QUIC — это DNS-протокол, который пользуется преимуществами транспортного протокола QUIC и использует его, чтобы передавать DNS-запросы. Сейчас DoQ находится в стадии черновика стандарта, но это не мешает нам экспериментировать с ним и пробовать его использовать.

Почему не DNS-over-HTTPS

Тут сложнее: в будущем DNS-over-HTTPS также получит поддержку QUIC за счёт использования протокола HTTP/3, построенного как раз на нём. Так что вопрос имеет смысл, и правда, зачем?

Есть сразу несколько причин, но все они сводятся к одному факту: HTTP — не транспортный протокол. Он предназначен для разных целей, но в теории может использоваться и как транспортный протокол. С точки зрения приватности, HTTP-протокол только привносит дополнительные риски для передачи DNS-запросов:

  • HTTP cookies
  • Другие HTTP-заголовки (Authentication, User-Agent, Accept-Language)
  • Больше возможностей fingerprinting для злоумышленников
  • Трекинг, использующий ETag

Каждая из этих проблем может и должна быть учтена на уровне DNS-over-HTTPS клиента, но не забывайте, что клиентов теперь — великое множество. Это и браузеры, и операционные системы, и сторонний софт. Практически невозможно найти клиентское решение для каждого.

AdGuard DNS-over-QUIC

Мы рады первыми из публичных DNS-резолверов реализовать текущую спецификацию DNS-over-QUIC в наших DNS-серверах. Предлагаем вам первыми её протестировать! Самый простой способ это сделать — использовать одно из наших приложений, где DoQ уже поддерживается: AdGuard для Android или AdGuard для iOS.

Как включить DoQ в AdGuard для Android

  • Откройте приложение, а затем боковое меню
  • Перейдите в Настройки > DNS-фильтрация и включите её
  • Выберите любой из DNS-серверов AdGuard из списка доступных серверов
  • В разделе Тип сервера выберите DNS-over-QUIC (экспериментальный)

Как включить DoQ в AdGuard для iOS

  • Откройте приложение, а затем вкладку Защита
  • Включите DNS-защиту и откройте её меню
  • В разделе DNS-сервер выберите любой из доступных DNS-серверов AdGuard
  • Выберите DNS-over-QUIC (экспериментальный) из доступных протоколов

Хотите большего?

Пожалуйста! Вот подборка ссылок, которые пригодятся, если вы хотите по полной использовать все возможности DoQ, а также обладаете определёнными техническими навыками:

  • dnslookup — простая утилита для выполнения DNS-запросов. Поддерживает все популярные протоколы: DoH, DoT, DoQ, DNSCrypt.

  • AdGuard Home — хотите свой собственный DoQ-сервер? Не проблема! AdGuard Home получил поддержку DoQ в последнем релизе. Если ваш AdGuard Home работает как публичный сервер, вы можете настроить в нём шифрование.

  • dnsproxy — AdGuard Home для вас слишком тяжёлый и вам нужен простой forwarder? Используйте dnsproxy — простой DNS-прокси с поддержкой DoH, DoT, DoQ и DNSCrypt.

  • DnsLibs — хотите встроить DoQ в ваше приложение? Возьмите на заметку эту библиотеку на C++, которую мы используем в продуктах AdGuard.

Lena Ter-Mikaelyan on AdGuard DNS AdGuard News
15 грудня 2020 р.
Завантажуючи коментарі, ви погоджуєтеся умови та правила
Натисніть на кнопку, на яку вказує стрілка, щоб почати установку програми. Спасибі за вибір AdGuard! Виберіть "Відкрити", натисніть "OK" і дочекайтеся завантаження файлу. У вікні, що відкрилося, перетягніть значок AdGuard в теку "Додатка". Спасибі за вибір AdGuard! Виберіть "Відкрити", натисніть "OK" і дочекайтеся завантаження файлу. У вікні, що відкрилося, натисніть "Встановити". Спасибі за вибір AdGuard!