Jump to content
  • 0
KorDen

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

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?

Share this post


Link to post
Share on other sites

Recommended Posts

  • 0

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

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

dns-proxy
tls upstream 8.8.8.8 853 sni dns.google.com
tls upstream 8.8.4.4 853 sni dns.google.com
tls upstream 1.1.1.1 853 sni cloudflare-dns.com
tls upstream 1.0.0.1 853 sni cloudflare-dns.com
tls upstream 176.103.130.130 853 sni dns.adguard.com
tls upstream 176.103.130.131 853 sni dns.adguard.com
tls upstream 9.9.9.9 853 sni dns.quad9.net
https upstream https://cloudflare-dns.com/dns-query json
https upstream https://dns.google/dns-query dnsm
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

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

image.png

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

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

Проверка работоспособности шифрования:

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



 

Edited by enpa
информация
  • Thanks 2
  • Upvote 1

Share this post


Link to post
Share on other sites
  • 0
2 минуты назад, keenet07 сказал:

Хорошо. Но вот как уже выясняется при работе DOH используются в некоторой степени. Причем ещё и с какой-то периодичностью. Вижу в Диагностике в Активных соединениях среди соединений роутера появляются соединения на эти служебные простые DNS сервера. Довольно часто.

Хотите без bootstrap, используйте dot.

PS в хотя подмены в bootstrap можно в принципе не боятся, так как не верный ресурс не пройдет валидацию по сертификатам.

Edited by r13

Share this post


Link to post
Share on other sites
  • 0

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

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

Edited by keenet07

Share this post


Link to post
Share on other sites
  • 0

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

Share this post


Link to post
Share on other sites
  • 0
8 минут назад, keenet07 сказал:

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

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

  • Thanks 1

Share this post


Link to post
Share on other sites
  • 0

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

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

Edited by keenet07

Share this post


Link to post
Share on other sites
  • 0
16 минут назад, Le ecureuil сказал:

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

Это хорошо. Но я стремлюсь к уменьшению лишних соединений, чтоб всё было визуально понятно кто куда и зачем.

Кстати, подскажите на порту 4044 роутер что делает?

 

Le ecureuil: offtop, прекращаем

Edited by Le ecureuil

Share this post


Link to post
Share on other sites
  • 0
8 минут назад, Le ecureuil сказал:

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

Решил попробовать DoH. Мои настройки.

JSON:
https://dns.google/resolve
https://cloudflare-dns.com/dns-query?ct=application/dns-json

Запускаю DNS Leak Test:

  • Your IP: 189.42.183.166
  • DNS IP: 162.158.87.78
  • Hostname: 162.158.87.78
  • ISP: Cloudflare
  • Country: Germany
  • City: Frankfurt Am Main
  • Хотя ближайший - 1.0.0.1 находится в Москве.
  • А это Гугл:
  • Your IP: 189.42.183.166
  • DNS IP: 74.125.112.13
  • Hostname: 74.125.112.13
  • ISP: Google
  • Country: Finland
  • City: Lappeenranta
Edited by cmisha

Share this post


Link to post
Share on other sites
  • 0

Ближайший по географии - не всегда ближайший в Интернет. Порой из-за пиринговых войн Стокгольм оказывается ближе чем соседняя квартира но с другим провайдером.

  • Thanks 1

Share this post


Link to post
Share on other sites
  • 0
1 минуту назад, Le ecureuil сказал:

Ближайший по географии - не всегда ближайший в Интернет. Порой из-за пиринговых войн Стокгольм оказывается ближе чем соседняя квартира но с другим провайдером.

То да. Просто привел свой пример. Если будет время проверьте команду bantime, не хочет прописываться в конфиг.

Share this post


Link to post
Share on other sites
  • 0
48 минут назад, cmisha сказал:

То да. Просто привел свой пример. Если будет время проверьте команду bantime, не хочет прописываться в конфиг.

Эти команды давно устарели и больше ничего не делают.

  • Thanks 1

Share this post


Link to post
Share on other sites
  • 0

По рекомендациям Le ecureuil - AdGuard+несколько вручную, - взлетело сразу (KN-1910). Даже не интересно так....

Вопрос: это AdGuard такой жручий до памяти или ещё что?

  • Upvote 1

Share this post


Link to post
Share on other sites
  • 0

Иногда бывает ситуация когда у провайдера падает аплинк и нет инета, но остальные локальные его сервисы работают. Но по понятным причинам все эти DOT/DOH сервера становятся не доступными и местные адреса серверов не резолвятся. Например не зайти в ЛК.

Так вот в этом случае приходится временно прописывать DNS провайдера. Но когда у тебя забито куча полей в настройках DOT/DOH удалять всё, пусть даже временно не хочется, а только так можно вернуться к работе стандартного DNS. 

Вот были бы отдельные выключатели полностью для сервисов  DOT/DOH без удаления записей. Нажал, поработал. Вернулся интернет, переключил обратно.

Особенно актуально когда наступает новый месяц, а интернет ещё не проплачен и соответственно он блокируется, включая DNS сервисы. И в личный кабинет провайдера, чтобы пополнить счёт просто так уже не попасть без смены DNS.

Edited by keenet07
  • Upvote 2

Share this post


Link to post
Share on other sites
  • 0

@keenet07 случалось такое уже три раза. Мне помогает прописать любой "обычный" DNS в свойствах проводного соединения.

Share this post


Link to post
Share on other sites
  • 0
22 минуты назад, Sergey Zozulya сказал:

@keenet07 случалось такое уже три раза. Мне помогает прописать любой "обычный" DNS в свойствах проводного соединения.

В случае с DOT/DOH это никак не поможет. Когда они активны простые DNS игнорируются.

Share this post


Link to post
Share on other sites
  • 0
1 minute ago, keenet07 said:

Когда они активны простые DNS игнорируются.

Это мне известно, но факт - добавление DNS в настройки проводного интерфейса помогло во всех трех случаях.

Share this post


Link to post
Share on other sites
  • 0

DNS на конкретное соединение не игнорируется - именно по причине, озвученной выше. Можно еще его даже до домена ограничить.

  • Thanks 1

Share this post


Link to post
Share on other sites
  • 0

Про оптимальные настройки.

Вроде тут пишут https://developers.google.com/speed/public-dns/docs/dns-over-tls

The stub resolver is configured with the DNS-over-TLS resolver name dns.google. 

А не dns.google.com. Нет?

 

И там же, что у Google DoH есть JSON? 

Google Public DNS provides two distinct DoH APIs at these endpoints:

  • https://dns.google/dns-query – RFC 8484 (GET and POST)
  • https://dns.google/resolve? – JSON API (GET)

Share this post


Link to post
Share on other sites
  • 0
5 часов назад, Татьяна Любимцева сказал:

Вроде тут пишут https://developers.google.com/speed/public-dns/docs/dns-over-tls

The stub resolver is configured with the DNS-over-TLS resolver name dns.google. 

А не dns.google.com. Нет?

Да, Google рекомендует использовать в качестве Authentication Domain Name (ADN) адрес dns.google. Он же прописан в их сертификате как «Common Name» (CN).

Но в этом же сертификате есть поле «Subject Alternative Name» (SAN), в котором есть адрес dns.google.com. Поэтому проблем с подключением по такому адресу быть не должно.

Mac-mini:~ rustrict$ echo | openssl s_client -connect dns.google.com:853 | openssl x509 -text | grep "DNS:"
depth=2 OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
verify return:1
depth=1 C = US, O = Google Trust Services, CN = GTS CA 1O1
verify return:1
depth=0 C = US, ST = California, L = Mountain View, O = Google LLC, CN = dns.google
verify return:1
DONE
                DNS:dns.google, DNS:*.dns.google.com, DNS:8888.google, DNS:dns.google.com, DNS:dns64.dns.google,
                IP Address:2001:4860:4860:0:0:0:0:64, IP Address:2001:4860:4860:0:0:0:0:6464, IP Address:2001:4860:4860:0:0:0:0:8844,
                IP Address:2001:4860:4860:0:0:0:0:8888, IP Address:8.8.4.4, IP Address:8.8.8.8

Ну и собственно пример запроса:

rustrict@debian:~$ kdig -d @dns.google.com +tls-ca +tls-host=dns.google.com keenetic.com
;; DEBUG: Querying for owner(keenetic.com.), class(1), type(1), server(dns.google.com), port(853), protocol(TCP)
;; DEBUG: TLS, imported 128 system certificates
;; DEBUG: TLS, received certificate hierarchy:
;; DEBUG:  #1, C=US,ST=California,L=Mountain View,O=Google LLC,CN=dns.google
;; DEBUG:      SHA-256 PIN: vEbqO29VPXOULHxmGJxvrlGDm1MJ4XJQ6MtmlpgvL40=
;; DEBUG:  #2, C=US,O=Google Trust Services,CN=GTS CA 1O1
;; DEBUG:      SHA-256 PIN: YZPgTZ+woNCCCIW3LH2CxQeLzB/1m42QcCTBSdgayjs=
;; DEBUG: TLS, skipping certificate PIN check
;; DEBUG: TLS, The certificate is trusted. 
;; TLS session (TLS1.3)-(ECDHE-X25519)-(RSA-PSS-RSAE-SHA256)-(AES-256-GCM)
;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: 13351
;; Flags: qr rd ra; QUERY: 1; ANSWER: 1; AUTHORITY: 0; ADDITIONAL: 1

;; EDNS PSEUDOSECTION:
;; Version: 0; flags: ; UDP size: 512 B; ext-rcode: NOERROR

;; QUESTION SECTION:
;; keenetic.com.       		IN	A

;; ANSWER SECTION:
keenetic.com.       	3599	IN	A	46.105.148.88

;; Received 57 B
;; Time 2019-09-01 18:49:02 MSK
;; From 2001:4860:4860::8888@853(TCP) in 58.0 ms

 

Share this post


Link to post
Share on other sites
  • 0
В 18.06.2019 в 14:36, Le ecureuil сказал:

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

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

 

Share this post


Link to post
Share on other sites
  • 0
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

 

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

Share this post


Link to post
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.


×
×
  • Create New...