выбор оптимальных DNS серверов

Настройка, программирование, распределённые вычисления

Модераторы: Olej, bellic, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

выбор оптимальных DNS серверов

Непрочитанное сообщение Olej » 21 сен 2015, 09:39

Как показывает практика:
- выбор IP адресов используемых DNS (в настройках сети, роутеров WAN, WiFi точек доступа и т.п.) - существенно влияют на субъективное ощущение скорости Интернет;
- DNS вашего провайдера, задаваемый им при динамическом выделении IP адреса, далеко не всегда быстрее публичных DNS;
- кроме того, DNS провайдера бывает что временами лежит, при регламентных работах, или сильно перегружен ... при недобросовестном провайдере (а для небольших провайдеров это обычное дело ;-) ).

Как бы там ни было, выбор оптимальных DNS серверов в настройках сети часто позволяет сделать Интернет по ощущениям комфортнее.
(это довольно трудно протестировать в цифре, измерением ... или я не знаю как ;-) , потому что обращение к одной WEB странице может потребовать разрешения десятков IP, а к другой WEB странице - только самой этой страницы)

В любом случае, это актуальная тема, о её обсуждение потерялось в другой теме, вот с этого места: DNS сервер.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: выбор оптимальных DNS серверов

Непрочитанное сообщение Olej » 20 окт 2016, 13:06

Olej писал(а): В любом случае, это актуальная тема, о её обсуждение потерялось в другой теме, вот с этого места: DNS сервер.
В связи с компроментацией DNS провайдера (будьте бдительны!), как описано здесь: защищённое соединение https://www.youtube.com, пришлось это кино повторить:
- что подтверждает лишний раз актуальность выбора оптимальных DNS;
- что дало повод повторить поиск и установку инструментов, вернуться и посмотреть что там с версиями...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: выбор оптимальных DNS серверов

Непрочитанное сообщение Olej » 20 окт 2016, 13:13

Olej писал(а):- что дало повод повторить поиск и установку инструментов, вернуться и посмотреть что там с версиями...
Поехали...

Программа DNSBench.exe, которая позволяет ранжировать множество DNS по скорости для вашего хоста (по его местоположению). Программа для Windows, .exe, но:
а). она прекрасно выполняется под Wine (как на картинке)
б). разовая, для однократного выполнения, не требует инсталляции.

Код: Выделить всё

[olej@dell Загрузки]$ ls -l DNSBench.exe 
-rw-rw-r-- 1 olej olej 167296 окт 20 01:21 DNSBench.exe

Код: Выделить всё

[olej@dell Загрузки]$ wine DNSBench.exe 
wine: created the configuration directory '/home/olej/.wine'
fixme:winediag:start_process Wine Staging 1.9.12 is a testing version containing experimental patches.
fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org.
...
db1.png
После нажатия Run Benchmark, через достаточно продолжительное время, получаем:
db2.png
Здесь DNS из списка сканирования ранжированы по качеству использования.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: выбор оптимальных DNS серверов

Непрочитанное сообщение Olej » 20 окт 2016, 13:30

Olej писал(а): Поехали...
Вот чисто Linux программа: namebench - выбор оптимального DNS-сервера.
Скачать можно свободно здесь: Open-source DNS Benchmark Utility - для любых OS. Скачиваем:

Код: Выделить всё

[olej@dell Загрузки]$ ls -l namebench-1.3.1-source.tgz 
-rw-rw-r-- 1 olej olej 1118505 окт 20 01:26 namebench-1.3.1-source.tgz
После разархивирования (в любой каталог) запускаем ... Программа написана на Python и не требует никакой инсталляции:

Код: Выделить всё

[olej@dell namebench-1.3.1]$ ls -l
итого 244
-rw-r--r-- 1 olej olej 197383 июн  6  2010 ChangeLog.txt
drwxr-xr-x 1 olej olej    222 июн  6  2010 cocoa
drwxr-xr-x 1 olej olej    102 июн  6  2010 config
-rw-r--r-- 1 olej olej  11358 июн  6  2010 COPYING
drwxr-xr-x 1 olej olej    166 июн  6  2010 data
-rw-r--r-- 1 olej olej   8601 июн  6  2010 JSON.txt
drwxr-xr-x 1 olej olej   1186 окт 20 01:27 libnamebench
-rwxr-xr-x 1 olej olej   2477 июн  6  2010 namebench.py
drwxr-xr-x 1 olej olej    138 окт 20 01:27 nb_third_party
-rw-r--r-- 1 olej olej  12152 июн  6  2010 README.txt
-rw-r--r-- 1 olej olej   5268 июн  6  2010 setup.py
drwxr-xr-x 1 olej olej     88 июн  6  2010 templates
drwxr-xr-x 1 olej olej    378 июн  6  2010 tools
При отсутствии установленных Tcl/Tk и Tkinter программа запускается в CLI режиме, текстовая консоль. При использовании исходного списка сканирования (из 4515 серверов) анализ идёт весьма долго (несколько десятков минут - приготовьтесь ;-) )

Код: Выделить всё

[olej@dell namebench-1.3.1]$ ./namebench.py
- The python-tk (tkinter) library is missing, using the command-line interface.

namebench 1.3.1 - best source (automatic) on 2016-10-20 01:27:48.145977
threads=40/2 queries=250 runs=1 timeout=3.5 health_timeout=3.75 servers=11
------------------------------------------------------------------------------
- Reading Top 2,000 Websites (Alexa): data/alexa-top-2000-domains.txt (0.7MB)
- Reading Cache Latency Test (100% hit): data/cache-hit.txt (0.1MB)
- Reading Cache Latency Test (100% miss): data/cache-miss.txt (0.1MB)
- Reading Cache Latency Test (50% hit, 50% miss): data/cache-mix.txt (0.1MB)
- Reading Google Chrome: /home/olej/.config/google-chrome/Default/History (0.3MB)
- Reading Chromium: /home/olej/.config/chromium/Default/History (8.0MB)
- Reading Mozilla Firefox: /home/olej/.mozilla/firefox/kauzykph.default/places.sqlite (20.0MB)
- Skipping /home/olej/.kde/share/apps/konqueror/konq_history (only 1691b)
- Generating tests from Mozilla Firefox (48442 records, selecting 250 automatic)
- Selecting 250 out of 15433 sanitized records (random mode).

- Checking query interception status...
- Checking connection quality: 1/3...3/3
- Congestion level is 1.34X (check duration: 53.53ms)
- Applied 1.34X timeout multiplier due to congestion: 0.7 ping, 5.0 health.
- Checking latest sanity reference
- Building initial DNS cache for 4515 nameservers (40 threads)
- Checking nameserver availability (40 threads): 0/4515...................................................................................
- How odd! Only 13.5 percent of name servers were pingable. Trying again with 6 threads (slow)
- Checking nameserver availability (6 threads): 0/4515....................................................................................
- 611 of 4515 servers are available (duration: 0:39:30.938713)
- Removing secondary nameservers slower than 154.62ms (max=400)
...
Идёт подробная диагностика...
В итоге:

Код: Выделить всё

...
Mean response (in milliseconds):
--------------------------------
Internal 10-1-1  ######################## 69.27
Google Public DN ########################## 76.39
OpenDNS          ################################ 92.51
Google Public DN ################################# 95.81
DynGuide         ################################## 99.45
ATMAN PL         #################################### 105.38
UltraDNS         ############################################# 130.31
bn.by-2 BY       ############################################# 132.17
Atman/Idea PL    ################################################ 138.50
Sloboda UA       ################################################### 147.79
BN BY            ##################################################### 155.85
...
Recommended configuration (fastest + nearest):
----------------------------------------------
nameserver 10.0.1.1        # Internal 10-1-1
nameserver 80.73.1.1       # Sloboda UA
nameserver 217.17.34.10    # Atman/Idea PL
Что такое 10.0.1.1 - для меня загадка (локальный адрес). Предполагаю, что это, каким-то образом, IP DNS провайдера за моим роутером 192.168.1.3. Оставим эту загадку на потом.

Код: Выделить всё

[olej@dell ~]$ traceroute 10.0.1.1
traceroute to 10.0.1.1 (10.0.1.1), 30 hops max, 60 byte packets
 1  gateway (192.168.1.3)  6.021 ms  6.013 ms  6.008 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: выбор оптимальных DNS серверов

Непрочитанное сообщение Olej » 20 окт 2016, 13:45

После 2-х (выше) программ тестирования я могу выделить 4 IP DNS, предположительно оптимальных, из разных списков сканирования:

Код: Выделить всё

[olej@dell ~]$ ping 208.67.222.222
PING 208.67.222.222 (208.67.222.222) 56(84) bytes of data.
64 bytes from 208.67.222.222: icmp_seq=1 ttl=51 time=51.2 ms
64 bytes from 208.67.222.222: icmp_seq=2 ttl=51 time=50.3 ms
64 bytes from 208.67.222.222: icmp_seq=3 ttl=51 time=50.3 ms
^C
--- 208.67.222.222 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 50.333/50.651/51.278/0.443 ms

Код: Выделить всё

[olej@dell ~]$ ping 129.250.35.250
PING 129.250.35.250 (129.250.35.250) 56(84) bytes of data.
64 bytes from 129.250.35.250: icmp_seq=1 ttl=58 time=51.1 ms
64 bytes from 129.250.35.250: icmp_seq=2 ttl=58 time=50.6 ms
64 bytes from 129.250.35.250: icmp_seq=3 ttl=58 time=49.0 ms
^C
--- 129.250.35.250 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 49.006/50.265/51.139/0.912 ms

Код: Выделить всё

[olej@dell ~]$ ping 80.73.1.1
PING 80.73.1.1 (80.73.1.1) 56(84) bytes of data.
64 bytes from 80.73.1.1: icmp_seq=1 ttl=123 time=23.7 ms
64 bytes from 80.73.1.1: icmp_seq=2 ttl=123 time=24.6 ms
64 bytes from 80.73.1.1: icmp_seq=3 ttl=123 time=23.5 ms
^C
--- 80.73.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 23.508/23.981/24.694/0.513 ms

Код: Выделить всё

[olej@dell ~]$ ping 217.17.34.10
PING 217.17.34.10 (217.17.34.10) 56(84) bytes of data.
64 bytes from 217.17.34.10: icmp_seq=1 ttl=57 time=29.7 ms
64 bytes from 217.17.34.10: icmp_seq=2 ttl=57 time=30.1 ms
64 bytes from 217.17.34.10: icmp_seq=3 ttl=57 time=29.1 ms
^C
--- 217.17.34.10 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 29.116/29.683/30.195/0.442 ms

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: выбор оптимальных DNS серверов

Непрочитанное сообщение Olej » 20 окт 2016, 13:59

Olej писал(а): При отсутствии установленных Tcl/Tk и Tkinter программа запускается в CLI режиме, текстовая консоль.
Теперь самое время поставить Tkinter:

Код: Выделить всё

[olej@dell Загрузки]$ sudo dnf install tkinter
Последняя проверка окончания срока действия метаданных: 3:42:05 назад, Wed Oct 19 22:00:09 2016.
Зависимости разрешены.
===========================================================================================================================================
 Package                        Архитектура                   Версия                                  Репозиторий                    Размер
===========================================================================================================================================
Установка:
 tcl                            x86_64                        1:8.6.4-1.fc23                          fedora                         2.2 M
 tix                            x86_64                        1:8.4.3-16.fc23                         fedora                         259 k
 tk                             x86_64                        1:8.6.4-2.fc23                          fedora                         1.6 M
 tkinter                        x86_64                        2.7.11-11.fc23                          updates                        384 k

Результат операции
===========================================================================================================================================
Установка  4 Пакеты

Объем загрузки: 4.4 M
Объем изменений: 11 M
Продолжить? [д/Н]: y
Загрузка пакетов:
(1/4): tkinter-2.7.11-11.fc23.x86_64.rpm                                                                   868 kB/s | 384 kB     00:00    
(2/4): tix-8.4.3-16.fc23.x86_64.rpm                                                                        412 kB/s | 259 kB     00:00    
(3/4): tk-8.6.4-2.fc23.x86_64.rpm                                                                          819 kB/s | 1.6 MB     00:01    
(4/4): tcl-8.6.4-1.fc23.x86_64.rpm                                                                         767 kB/s | 2.2 MB     00:02    
-------------------------------------------------------------------------------------------------------------------------------------------
Общий размер                                                                                               777 kB/s | 4.4 MB     00:05     
Проверка транзакции
Проверка транзакции успешно завершена.
Идет проверка транзакции
Тест транзакции проведен успешно
Выполнение транзакции
  Установка    : tcl-1:8.6.4-1.fc23.x86_64                                                                                             1/4 
  Установка    : tk-1:8.6.4-2.fc23.x86_64                                                                                              2/4 
  Установка    : tix-1:8.4.3-16.fc23.x86_64                                                                                            3/4 
  Установка    : tkinter-2.7.11-11.fc23.x86_64                                                                                         4/4 
  Проверка     : tkinter-2.7.11-11.fc23.x86_64                                                                                         1/4 
  Проверка     : tcl-1:8.6.4-1.fc23.x86_64                                                                                             2/4 
  Проверка     : tix-1:8.4.3-16.fc23.x86_64                                                                                            3/4 
  Проверка     : tk-1:8.6.4-2.fc23.x86_64                                                                                              4/4 

Установлено:
  tcl.x86_64 1:8.6.4-1.fc23        tix.x86_64 1:8.4.3-16.fc23        tk.x86_64 1:8.6.4-2.fc23        tkinter.x86_64 2.7.11-11.fc23       

Выполнено!

Код: Выделить всё

[olej@dell namebench-1.3.1]$ ./namebench.py 
Starting Tk interface for namebench...
...
ty1.png
Результат такого детального анализа всего 4-х DNS потребует тоже несколько минут...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: выбор оптимальных DNS серверов

Непрочитанное сообщение Olej » 20 окт 2016, 14:20

Olej писал(а):Результат такого детального анализа всего 4-х DNS потребует тоже несколько минут...
И сохраняется в HTML файле:

Код: Выделить всё

...
> Saving report to /tmp/namebench_2016-10-20_1356.html
> Saving detailed results to /tmp/namebench_2016-10-20_1356.csv
> Opening /tmp/namebench_2016-10-20_1356.html
> Complete! SYS-80.73.1.1 [80.73.1.1] is the best.
И тут же результаты выбрасываются в браузер.
ty2.png
ty3.png

Код: Выделить всё

[olej@dell etc]$ cat /etc/resolv.conf 
# Generated by NetworkManager
search localdomain
nameserver 80.73.1.1
nameserver 217.17.34.10
nameserver 208.67.222.222
# ЗАМЕЧАНИЕ: преобразователь имён glibc не поддерживает более трёх серверов имён.
# Нижеперечисленные серверы имён могут быть не распознаны.
nameserver 129.250.35.250

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: выбор оптимальных DNS серверов

Непрочитанное сообщение Olej » 24 мар 2017, 15:20

Olej писал(а):Здесь DNS из списка сканирования ранжированы по качеству использования.
Время прошло ... и был повод повторить выбор оптимальных DNS, располагая временем и с длительным перебором...
w6.png
Это 50 найденных оптимальных DNS...
Это результат их тестирования:
w7.png
Верхушка выглядит так:
80.73.1.1
208.67.222.123
208.67.220.220
208.67.222.220
208.67.222.222
208.67.220.123
217.17.34.10
А это namebench-1.3.1
nb2.png
Который даёт наилучшие DNS:
8.8.4.4 Google Public DNS-2 google-public-dns-b.google.com
208.67.222.222 OpenDNS-2 resolver1.opendns.com
62.233.128.17 Futuro PL szafir.futuro.pl
129.250.35.250 NTT x.ns.gin.ntt.net
217.17.34.68 ATMAN PL
80.73.1.1 SYS-80.73.1.1
(вот это сканирование шло около 1 часа!)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: выбор оптимальных DNS серверов

Непрочитанное сообщение Olej » 24 мар 2017, 15:26

Теперь по найденным IP выберу 7 оптимальных, и повторно ранжирую только их:
nb3.png
Вот 3 лучших DNS в моих условиях:
8.8.4.4 8.8.4.4 google-public-dns-b.google.com
80.73.1.1 SYS-80.73.1.1 ns1.sloboda.net
62.233.128.17 62.233.128.17 szafir.futuro.pl

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: выбор оптимальных DNS серверов

Непрочитанное сообщение Olej » 17 май 2017, 16:56

Выбор и установка (настройками) оптимальных DNS становится особо актуальным в связи с угрозой запрета доступа к самым популярным ресурсам Интернет указом №133/2017 от 15 мая 2017 года президента Украины Порошенко.
Потому как 1-е, что должны будут сделать, под давлением, провайдеры - это прописать свои записи DNS, перенаправив запросы на ответ «сайт заблокирован».
Детали см. обходим дискриминацию в Интернет.

Ответить

Вернуться в «Сети»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 9 гостей