Jump to content
  • 1
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
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

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

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 4
  • Upvote 1

Share this post


Link to post
Share on other sites
  • 2
2 часа назад, KorDen сказал:

SPKI - это замена авторизации через CA по домену, "не заполнять, если не знаете, для чего нужно".

У DNS Message оверхед меньше

Почти.

Если поле SPKI пустое, то используется верификация сертификата сервера через встроенные корневые сертификаты в прошивке.

Но может быть такой сценарий, что прошивка устарела или сертификат еще не добавлен, или самоподписанный сертификат на сервере.

Тогда можно указать SPKI, и сервер будет валидироваться на основе этого значения - оно перекрывает корневые сертификаты.

Для DOT SPKI и валидация по корневым сертификатам работают только если указать SNI.

 

application/dns-message - это единственный формат DOH, стандартизованный в RFC 8484. Однако, Google не реализует dns-message, а вместо этого использует свой проприетарный формат application/dns-json.

Потому правильный ответ таков: указывать надо то, что поддерживает сервер. В случае c Google это только JSON.

Но некоторые серверы, в частности CloudFlare, поддерживают оба формата. В этом случае команда и URL выглядят так:

> dns-proxy https upstream https://cloudflare-dns.com/dns-query dnsm

> dns-proxy https upstream https://cloudflare-dns.com/dns-query?ct=application/dns-json& json

  • Thanks 9
  • Upvote 1

Share this post


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

Share this post


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

Share this post


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

Share this post


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

Соответственно, DNS не работает. Что я делаю не так?

Сделайте так:

tyryrty.thumb.PNG.055d01e4f39d2ab9837fd16aa0858f48.PNG

Share this post


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

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

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

Share this post


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

Share this post


Link to post
Share on other sites
  • 1

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

Share this post


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

Share this post


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

Share this post


Link to post
Share on other sites
  • 1
1 час назад, ankar84 сказал:

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

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

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

  • Thanks 2

Share this post


Link to post
Share on other sites
  • 1

146 - это ECONNREFUSED.

У вас по пути кто-то либо обрывает соединение, либо нет доступа к dot-серверам.

Share this post


Link to post
Share on other sites
  • 1

Bootstrap выполняется через следующие адреса:

8.8.8.8, 1.1.1.1, 8.8.4.4, 1.0.0.1, 145.100.185.15, 145.100.185.16, 185.49.141.37

  • Thanks 2

Share this post


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

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

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

  • Thanks 1

Share this post


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

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

 

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

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

  • Thanks 3

Share this post


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

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

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

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

  • Thanks 1
  • Upvote 1

Share this post


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

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

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

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

  • Thanks 2

Share this post


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

 

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

Share this post


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

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

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

Share this post


Link to post
Share on other sites
  • 0
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 полностью отключается.

Share this post


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

 

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

Share this post


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

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

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

Share this post


Link to post
Share on other sites
  • 0

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

Share this post


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

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

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

Share this post


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

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

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

Share this post


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

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

Вот я и спрашиваю, как правильно это сделать?

Share this post


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

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

А поподробнее? Я dnscrypt в глаза не видел, для меня "блокировать IP по списку" ничего не значит.

Share this post


Link to post
Share on other sites
  • 0
Только что, cool сказал:

Вот я и спрашиваю, как правильно это сделать?

Ну в web же можно все сделать на странице Интернет-фильтров. Или в cli.

  • Thanks 1

Share this post


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

Ну в web же можно все сделать на странице Интернет-фильтров. Или в cli.

Как раз хотел спросить про веб, но вы опередили. Просто я еще не поставил новую 3.1 Alpha 1.2, заранее интересуюсь путями отхода )), а также попутно делаю выводы - имеет ли смысл ее вообще сейчас ставить.

Edited by cool

Share this post


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

Как раз хотел спросить про веб, но вы опередили. Просто я еще не поставил новую 3.1 Alpha 1.2, заранее интересуюсь путями отхода )), а также попутно делаю выводы имеет ли смысл ее вообще сейчас ставить.

Можно тупо компоненты dot и doh удалить на странице компонентов, и будет прям как вы хотите :)

  • Thanks 2

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.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...