Jump to content
  • 2

Настройка DoT/DoH


KorDen

Question

Хотелось бы понять логику работы DoT/DoH и взаимодействие с name-server.

Пробуем прописать, при включенном opkg dns-override и полном отсутствии ydns/adguard/...:

(config)> dns-proxy tls upstream 1.1.1.1 sni cloudflare-dns.com
Dns::Secure::ManagerDot: DNS-over-TLS name server "1.1.1.1" is disregarded while Internet Filter is active.

Т.е. как я понимаю, для резолва запросов самим роутером (RPC) DoT/DoH использовать нельзя, они будут ходить напрямую? (использовать name-server только для необходимых резолвов для DoH, и затем переходить полностью на DoH/DoT)

Как можно диагностировать работу DoT/DoH?

Link to comment
Share on other sites

Recommended Posts

  • 1

Пример оптимальной настройки, с учетом использования DoT \ DoH серверов таких компаний, как Adguard, Google, Cloudflare, Quad9 + с форматами DNS JSON & DNSM.

Настройка в Command Line Interface, CLI:

dns-proxy
tls upstream 8.8.8.8 sni dns.google
tls upstream 8.8.4.4 sni dns.google
tls upstream 1.1.1.1 sni cloudflare-dns.com
tls upstream 1.0.0.1 sni cloudflare-dns.com
tls upstream 9.9.9.9 sni dns.quad9.net
tls upstream 94.140.14.14 sni dns.adguard.com
tls upstream 94.140.15.15 sni dns.adguard.com
https upstream https://dns.google/dns-query dnsm
exit
system configuration save
show dns-proxy

# ndnproxy statistics file

Total incoming requests: 133
Proxy requests sent:     134
Cache hits ratio:        0.113 (15)
Memory usage:            31.29K

DNS Servers

                      Ip   Port  R.Sent  A.Rcvd  NX.Rcvd  Med.Resp  Avg.Resp  Rank  
               127.0.0.1  40500       2       0        2      22ms      21ms     1  
               127.0.0.1  40501       2       0        2      36ms      36ms     1  
               127.0.0.1  40502       2       0        0       0ms       0ms     4  
               127.0.0.1  40503       2       0        0       0ms       0ms     2  
               127.0.0.1  40504       2       0        0       0ms       0ms     1  
               127.0.0.1  40505       2       0        0       0ms       0ms     4  
               127.0.0.1  40506       2       0        0       0ms       0ms     1  
               127.0.0.1  40508       3       1        2     350ms     310ms     3  
               127.0.0.1  40509     117     115        2      21ms      21ms    10

image.png

Среднее время отклика med. avg. response time конечно скачет, может достигать выше 1000 ms, но в целом отклик хороший, практически у всех адресов.

Также написана статья в базе знаний по настройке, с описанием и примерами - Протоколы DNS over TLS и DNS over HTTPS для шифрования DNS-запросов, которая дополняется информацией.

Проверка работоспособности шифрования - ТОЛЬКО для адресов от Cloudflare:

https://www.cloudflare.com/ssl/encrypted-sni/

image.png

https://1.1.1.1/help

image.png

https://adguard.com/ru/test.html

image.png


Настройка фильтрации рекламы, трекеров, вредоносных сайтов с подробной аналитикой от https://nextdns.io/ через протокол DNS over TLS.

Настройка в Command Line Interface, CLI:

!
dns-proxy
    tls upstream 45.90.28.0 853 sni xxx.dns1.nextdns.io
    tls upstream 45.90.30.0 853 sni xxx.dns2.nextdns.io
# ndnproxy statistics file

Total incoming requests: 613
Proxy requests sent:     493
Cache hits ratio:        0.225 (138)
Memory usage:            33.91K

DNS Servers

                      Ip   Port  R.Sent  A.Rcvd  NX.Rcvd  Med.Resp  Avg.Resp  Rank  
               127.0.0.1  40516      25      12        8     119ms     449ms     3  
               127.0.0.1  40517     468     453        8      89ms      94ms     4  

               proxy-tls: 
               server-tls: 
                      address: 45.90.28.0
                         port: 853
                          sni: xxx.dns1.nextdns.io
                         spki: 
                    interface: 

               server-tls: 
                      address: 45.90.30.0
                         port: 853
                          sni: xxx.dns2.nextdns.io
                         spki: 
                    interface: 

       proxy-tls-filters: 
             proxy-https: 
     proxy-https-filters: 


где xxx - Ваш ID профиля nextdns.

Настройка в WebUI:

image.png

Проверка доступности https://my.nextdns.io/configuration/xxx/setup:

image.png


Корректная фильтрация контента зависит от выбранных Вами готовых профилей в https://my.nextdns.io/configuration/xxx/lists.

Мой лист:

EasyList
Malware Domain Blocklist by RiskAnalytics
Ransomware Tracker
AdGuard Simplified Domain Names filter
hpHosts (ATS / Ads & trackers)
hpHosts (EMD / Malware)
pornhosts
Sinfonietta (Porn)
RU AdList
CoinBlockerLists (browser)

Проверка фильтрации https://checkadblock.ru/:

image.png

 

Edited by enpa
информация
  • Thanks 5
  • Upvote 2
Link to comment
Share on other sites

  • 2

Да, важный момент.

На устройствах с 7628 DoH работает не через http/2, а через http/1.1 keepalive. Это связано с большим размером библиотеки nghttp2, места для которой не хватает. Нагрузка на CPU от DoH тоже заметно выше, чем от DoT, потому на 7628 DoH стоит рассмотривать в основном лишь как last resort - когда другое не работает или заблокировано провайдером.

Потому на 7628 рекомендуется в основном DoT.

  • Thanks 1
Link to comment
Share on other sites

  • 2
1 час назад, Dima Babanakov сказал:

Может я и ошибаюсь, но похоже не хватает автоматической переадресации всех DNS запросов через DoT/DoH. на случай отслеживания 53 порта провайдерами и подмены. 

Оно есть еще со времен 2.06. Но работает только для Интернет-фильтров.

К счастью, adguard полностью поддерживает doh/dot. Потому

- ставите doh/dot компоненты

- ставите adguard

- включаете его

- profit!

Все само работает по dot/doh без настроек, с заворотом всех DNS-запросов принудительно на роутер.

  • Thanks 2
  • Upvote 1
Link to comment
Share on other sites

  • 2
1 час назад, ankar84 сказал:

@Le ecureuil кстати, а если я хочу использовать интернет-фильтр AdGuard DNS но только по DoT, то есть без DoH, возможно ли это?

И получится ли у меня это, если у меня будет установлен компоненты AdGuard DNS + DoT, но не установлен DoH? Или они всегда должны быть установлены оба, чтобы интернет-фильтр AdGuard DNS работал не в plain text, а в зашифрованном виде?

Да, достаточно просто удалить компонент doh.

  • Thanks 2
Link to comment
Share on other sites

  • 2

Попробуйте проверить отпечаток такой командой:

echo | openssl s_client -connect ip:port 2>/dev/null | openssl x509 -pubkey -noout | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64

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

Link to comment
Share on other sites

  • 1

Отключены сервера от провайдера, добавлен

dns-proxy
    tls upstream 1.1.1.1 853 sni cloudflare-dns.com

работает как клиенты так и с самого роутера. Весит сервис через который все это и идет "nutdns", так же при "ping aaaaa.ru" c самого роутера запросы уходили на 1.1.1.1:853 и простых запросов на 53 порт не было.

В догонку

[I] Jun 14 13:11:58 ndm: AdguardDns::Client: AdGuard DNS disabled.
[I] Jun 14 13:11:58 ndm: SkyDns::Client: SkyDNS disabled.
[I] Jun 14 13:11:58 ndm: YandexDns::Client: Yandex.DNS disabled.
[I] Jun 14 13:11:58 ndm: Core::ConfigurationSaver: saving configuration...
[I] Jun 14 13:11:58 ndm: Dns::Secure::ManagerDot: DNS-over-TLS name servers cleared.
[I] Jun 14 13:11:58 ndm: Dns::Secure::ManagerDot: DNS-over-TLS name server 1.1.1.1:853 added.
[I] Jun 14 13:11:58 ndm: Dns::Secure::ManagerDot: DNS-over-TLS name server 8.8.8.8:853 added.
[I] Jun 14 13:11:58 ndm: Dns::Secure::ManagerDoh: DNS-over-HTTPS name servers cleared.
[I] Jun 14 13:11:58 ndm: Core::ConfigurationSaver: saving configuration...
[I] Jun 14 13:12:01 ndm: Core::ConfigurationSaver: configuration saved.

dns_server = 127.0.0.1:40500 .
dns_server = 127.0.0.1:40501 .
...
set-profile-ip 127.0.0.1 0
set-profile-ip ::1 0
dns_tcp_port = 53
dns_udp_port = 53


DNS Servers

                      Ip   Port  R.Sent  A.Rcvd  NX.Rcvd  Med.Resp  Avg.Resp  Rank  
               127.0.0.1  40500       4       1        3      65ms     262ms     3  
               127.0.0.1  40501     432     428        1      39ms      39ms     6  

 

По скорости работы как то не понятно и так же если судить по

[2019-06-12 19:59:37] [NOTICE] dnscrypt-proxy 2.0.23
[2019-06-12 19:59:37] [NOTICE] Now listening to 127.0.0.2:65053 [UDP]
[2019-06-12 19:59:37] [NOTICE] Now listening to 127.0.0.2:65053 [TCP]
[2019-06-12 19:59:41] [NOTICE] [cloudflare] OK (DoH) - rtt: 50ms
[2019-06-12 19:59:41] [NOTICE] [cpunks-ru] OK (DNSCrypt) - rtt: 27ms
[2019-06-12 19:59:41] [NOTICE] [yandex] OK (DNSCrypt) - rtt: 26ms
[2019-06-12 19:59:41] [NOTICE] Server with the lowest initial latency: yandex (rtt: 26ms)
[2019-06-12 19:59:41] [NOTICE] dnscrypt-proxy is ready - live servers: 3
[2019-06-14 11:53:19] [NOTICE] [charis] OK (DNSCrypt) - rtt: 56ms
[2019-06-14 11:53:20] [NOTICE] Server with the lowest initial latency: cpunks-ru (rtt: 26ms)

 

Edited by vasek00
Link to comment
Share on other sites

  • 1
1 час назад, KorDen сказал:

Хотелось бы понять логику работы DoT/DoH и взаимодействие с name-server.

Пробуем прописать, при включенном opkg dns-override и полном отсутствии ydns/adguard/...:


(config)> dns-proxy tls upstream 1.1.1.1 sni cloudflare-dns.com
Dns::Secure::ManagerDot: DNS-over-TLS name server "1.1.1.1" is disregarded while Internet Filter is active.

Т.е. как я понимаю, для резолва запросов самим роутером (RPC) DoT/DoH использовать нельзя, они будут ходить напрямую? (использовать name-server только для необходимых резолвов для DoH, и затем переходить полностью на DoH/DoT)

Как можно диагностировать работу DoT/DoH?

opkg dns-override отключает встроенный dns proxy, который остается только для системных нужд. Это ожидаемое поведение.

Диагностировать просто - если нет сообщения о "disregarded", настроен хоть один dot/doh upstream, и работает DNS - значит все работает нормально. При включении хотя бы одного апстрима dot/doh обычный plaintext DNS полностью отключается.

  • Upvote 1
Link to comment
Share on other sites

  • 1
51 минуту назад, vasek00 сказал:

Med.Resp/Avg.Resp - серьезный хххms у вас, вопрос только по каким серверам

Новосибирск, далеко до всего, вот и задержки.

Link to comment
Share on other sites

  • 1
1 час назад, ankar84 сказал:

Как получаете такой вывод? Какой командой?

У меня dns-proxy ничего не дает, а как будто входит в новый контекст.

А more temp:ndnproxymain.stat выдает чуть по другому

  Показать содержимое

Кстати, старый добрый https://www.dnsleaktest.com/ может помочь при тестировании DoT/DoH серверов.

Правильная команда выглядит так:

> show dns-proxy

Она же покажет и proxy в ip policy сразу.

  • Upvote 1
Link to comment
Share on other sites

  • 1

Может я и ошибаюсь, но похоже не хватает автоматической переадресации всех DNS запросов через DoT/DoH. на случай отслеживания 53 порта провайдерами и подмены. 

Link to comment
Share on other sites

  • 1

DoH на 7628 работает нормально, отличия между http/2 и http/1.1 на самом деле не так значительны, как может показаться. Разница при суровой нагрузке в pipeline только, и то процентов на 20-30.

Вообще на мой взгляд незаслуженно забываете про крутые и недорогие устройства DSL и DUO. DSL за 3,5 тысячи на мой взгляд хуже 1910 только в части WiFi. Все остальное там даже лучше, чем на 7621S. Это отличная замена для любого устройства на 7628, если нужны именно сетевые фичи без сильного акцента на WiFi.

Не обращайте внимания, что это DSL, просто не пользуйтесь этим куском. Зато там есть аппаратный IPsec и процессор мощнее, чем MT7621S. И ОЗУ и flash много.

Фактически, это прямой наследник Keenetic II на Big Endian и с DSL, но еще мощнее и со всеми новыми фичами.

  • Thanks 1
Link to comment
Share on other sites

  • 1
В 14.06.2019 в 13:10, KorDen сказал:

Хотелось бы понять логику работы DoT/DoH и взаимодействие с name-server.

Пробуем прописать, при включенном opkg dns-override и полном отсутствии ydns/adguard/...:


(config)> dns-proxy tls upstream 1.1.1.1 sni cloudflare-dns.com
Dns::Secure::ManagerDot: DNS-over-TLS name server "1.1.1.1" is disregarded while Internet Filter is active.

Т.е. как я понимаю, для резолва запросов самим роутером (RPC) DoT/DoH использовать нельзя, они будут ходить напрямую? (использовать name-server только для необходимых резолвов для DoH, и затем переходить полностью на DoH/DoT)

Как можно диагностировать работу DoT/DoH?

Исправлено в 3.1A4. При этом сообщение в диагностике остается, но для себя роутер использует DoT/DoH (плюс если включен adguard, и некоторым хостам задан профиль "Без фильтрации", то они пойдут по DoT/DoH, заданным руками для всей системы.

  • Thanks 2
Link to comment
Share on other sites

  • 1
8 минут назад, keenet07 сказал:

DOH почему-то вообще отказывался работать при запрещённых исходящих для роутера на 80 порт. Разве он не по 443 сразу работает?

libcurl скорее всего пытался по ocsp сертификат проверить.

  • Thanks 1
Link to comment
Share on other sites

  • 1
41 минуту назад, keenet07 сказал:

Какой приоритет использования DNS серверов, если настроен и DOT и DOH. Что будет использоваться по факту? Или лучше зачищать альтернативный вариант?

 

И ещё, будет ли автоматически использоваться прописанный классический DNS, в случае временной недоступности серверов по DOH и DOT? 

Приоритет будет у того, кто быстрее отвечает. Обычный DNS использоваться не будет.

  • Thanks 3
Link to comment
Share on other sites

  • 1
26 минут назад, keenet07 сказал:

Заметил что при работе DOH роутер открывает большое количество отдельных соединений на  свой DNS сервер. Это нормально? На каждый запрос отдельное соединение как при работе обычного DNS? Я думал будет работать внутри установленного HTTPS соединения.

При настроенном DOT соединение висело одно. (в Активных соединениях)

Да, там несколько соединений + http2 multiplexing.

  • Thanks 1
  • Upvote 1
Link to comment
Share on other sites

  • 1
16 минут назад, keenet07 сказал:

Всё понятно. Сложная конструкция при работе через DOH получается. Для меня преимущества пока не очевидны. Останусь пока на DOT.

Хотя работа через DOT  у меня почему-то в два раз медленнее чем через DOH (через тот же CloudFlare)

Можно и то, и другое одновременно включить, а роутер сам выберет самое быстрое/доступное и будет работать через него.

  • Thanks 2
Link to comment
Share on other sites

  • 1
3 часа назад, valeramalko сказал:

kn-1010

3.3 Alpha 1.1

установлены компоненты dot/doh, включен интернет-фильтр Adguard, другие dns  в роутере не прописаны

в лог пишется много таких сообщений, нужно ли  с этим что-то делать и на что это влияет?


Sep  8 19:51:49 Keenetic_Giga https-dns-proxy: DNS lookup failed: DNS query cancelled
Sep  8 19:51:49 Keenetic_Giga https-dns-proxy: DNS lookup failed: DNS query cancelled
Sep  8 19:51:54 Keenetic_Giga https-dns-proxy: DNS lookup failed: DNS query cancelled
Sep  8 19:51:54 Keenetic_Giga https-dns-proxy: DNS lookup failed: DNS query cancelled
Sep  8 19:51:54 Keenetic_Giga https-dns-proxy: DNS lookup failed: DNS query cancelled

 

Нет, это чисто для разработчиков информация. Если у вас все работает нормально, игнорируйте.

Link to comment
Share on other sites

  • 1

В меню Диагностика - Активные соединения найдите ваш интерфейс выхода в интернет и там должны быть коннекты на 8.8.8.8 (или другой гугловский ip) порт 443. Никаких соединений на 53 порт.

Edited by keenet07
Link to comment
Share on other sites

  • 1
17 часов назад, Doctor сказал:

Куда копать?

Копать в техподдержку или попросить помощи тут у @Le ecureuil или @enpa.

Я попробовал у себя связку доменное имя + нестандартный порт для HTTPS на сервере dns.seby.io - Vultr (https://doh.seby.io:8443/dns-query), и она также не взлетела. Для работы DoH используется, судя по всему, этот прокси, а я так и не смог понять умеет ли он в что-то отличное от :443.

  • Thanks 1
Link to comment
Share on other sites

  • 0
42 минуты назад, vasek00 сказал:

Отключены сервера от провайдера

Похоже не надо специально отключать, при включении DoT/DoH он сам отрубает все остальные прописанные и полученные обычные name-server

Link to comment
Share on other sites

  • 0
1 час назад, vasek00 сказал:

Отключены сервера от провайдера, добавлен


dns-proxy
    tls upstream 1.1.1.1 853 sni cloudflare-dns.com

работает как клиенты так и с самого роутера. Весит сервис через который все это и идет "nutdns", так же при "ping aaaaa.ru" c самого роутера запросы уходили на 1.1.1.1:853 и простых запросов на 53 порт не было.

В догонку


[I] Jun 14 13:11:58 ndm: AdguardDns::Client: AdGuard DNS disabled.
[I] Jun 14 13:11:58 ndm: SkyDns::Client: SkyDNS disabled.
[I] Jun 14 13:11:58 ndm: YandexDns::Client: Yandex.DNS disabled.
[I] Jun 14 13:11:58 ndm: Core::ConfigurationSaver: saving configuration...
[I] Jun 14 13:11:58 ndm: Dns::Secure::ManagerDot: DNS-over-TLS name servers cleared.
[I] Jun 14 13:11:58 ndm: Dns::Secure::ManagerDot: DNS-over-TLS name server 1.1.1.1:853 added.
[I] Jun 14 13:11:58 ndm: Dns::Secure::ManagerDot: DNS-over-TLS name server 8.8.8.8:853 added.
[I] Jun 14 13:11:58 ndm: Dns::Secure::ManagerDoh: DNS-over-HTTPS name servers cleared.
[I] Jun 14 13:11:58 ndm: Core::ConfigurationSaver: saving configuration...
[I] Jun 14 13:12:01 ndm: Core::ConfigurationSaver: configuration saved.

dns_server = 127.0.0.1:40500 .
dns_server = 127.0.0.1:40501 .
...
set-profile-ip 127.0.0.1 0
set-profile-ip ::1 0
dns_tcp_port = 53
dns_udp_port = 53


DNS Servers

                      Ip   Port  R.Sent  A.Rcvd  NX.Rcvd  Med.Resp  Avg.Resp  Rank  
               127.0.0.1  40500       4       1        3      65ms     262ms     3  
               127.0.0.1  40501     432     428        1      39ms      39ms     6  

 

По скорости работы как то не понятно и так же если судить по


[2019-06-12 19:59:37] [NOTICE] dnscrypt-proxy 2.0.23
[2019-06-12 19:59:37] [NOTICE] Now listening to 127.0.0.2:65053 [UDP]
[2019-06-12 19:59:37] [NOTICE] Now listening to 127.0.0.2:65053 [TCP]
[2019-06-12 19:59:41] [NOTICE] [cloudflare] OK (DoH) - rtt: 50ms
[2019-06-12 19:59:41] [NOTICE] [cpunks-ru] OK (DNSCrypt) - rtt: 27ms
[2019-06-12 19:59:41] [NOTICE] [yandex] OK (DNSCrypt) - rtt: 26ms
[2019-06-12 19:59:41] [NOTICE] Server with the lowest initial latency: yandex (rtt: 26ms)
[2019-06-12 19:59:41] [NOTICE] dnscrypt-proxy is ready - live servers: 3
[2019-06-14 11:53:19] [NOTICE] [charis] OK (DNSCrypt) - rtt: 56ms
[2019-06-14 11:53:20] [NOTICE] Server with the lowest initial latency: cpunks-ru (rtt: 26ms)

 

По скорости работы - последние три столбца показывают среднюю, медианную задержку и рейтинг сервера. Согласно им и работает все.

Link to comment
Share on other sites

  • 0
42 минуты назад, Le ecureuil сказал:

В связи с реализацией DoT и DoH dnscrypt уходит на свалку истории.

Маленький вопрос, в dnscrypt можно было блокировать IP по списку, как быть с данным функционалом тогда?

Link to comment
Share on other sites

  • 0
5 минут назад, cool сказал:

А как правильно вернуться с DoT/DoH обратно к провайдерским DNS(включить обратно обычный plaintext DNS)?

Удалить все doh/dot

Link to comment
Share on other sites

  • 0
6 минут назад, cool сказал:

А как правильно вернуться с DoT/DoH обратно к провайдерским DNS(включить обратно обычный plaintext DNS)?

Да, удалив все записи.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...