DNS: dnsdiag – пинг и трассировка DNS-запросов

Автор: | 30/03/2018
 

Удобная утилита для работы с DNS-серверами.

Включает в себя три утилиты на Python – dnsping, dnstraceroute и dnseval.

Репозиторий проекта и исходный код – тут>>>, домашняя страница – тут>>>.

Установка на Arch Linux из AUR:

[simterm]

$ yaourt -S dnsdiag

[/simterm]

Далее можно проверить скорость ответа различных DNS, например публичный сервер CloudFlare:

[simterm]

$ dnsping -c 1 -t A -s 1.1.1.1 rtfm.co.ua
dnsping DNS: 1.1.1.1:53, hostname: rtfm.co.ua, rdatatype: A
34 bytes from 1.1.1.1: seq=0   time=4.692 ms

--- 1.1.1.1 dnsping statistics ---
1 requests transmitted, 1 responses received, 0% lost
min=4.692 ms, avg=4.692 ms, max=4.692 ms, stddev=0.000 ms

[/simterm]

И сравнить его скорость ответа с IBM Quad9 DNS:

[simterm]

$ dnsping -c 1 -t A -s 9.9.9.9 rtfm.co.ua
dnsping DNS: 9.9.9.9:53, hostname: rtfm.co.ua, rdatatype: A
34 bytes from 9.9.9.9: seq=0   time=89.763 ms

--- 9.9.9.9 dnsping statistics ---
1 requests transmitted, 1 responses received, 0% lost
min=89.763 ms, avg=89.763 ms, max=89.763 ms, stddev=0.000 ms

[/simterm]

avg=4.692 ms против avg=89.763 ms.

Тут можно пригодится вторая утилита – dnstraceroute, что бы проверить трассировку запроса к обоим серверам:

[simterm]

$ sudo dnstraceroute --expert -C -t A -s 1.1.1.1 rtfm.co.ua
dnstraceroute DNS: 1.1.1.1:53, hostname: rtfm.co.ua, rdatatype: A
1       _gateway (192.168.1.1) 2.046 ms
2       gw-c7604.lan.ua (92.249.102.1) 2.448 ms
3       unallocated.sta.lan.ua (31.43.120.249) 2.729 ms
4       unallocated.sta.synapse.net.ua (195.69.84.77) 9.887 ms
5       cloudflare-ix.giganet.ua (185.1.62.76) 3.176 ms
6       one.cloudflare-dns.com (1.1.1.1) 3.529 ms

[/simterm]

И Quad9:

[simterm]

$ sudo dnstraceroute --expert -C -t A -s 9.9.9.9 rtfm.co.ua
dnstraceroute DNS: 9.9.9.9:53, hostname: rtfm.co.ua, rdatatype: A
1       _gateway (192.168.1.1) 2.268 ms
2       gw-c7604.lan.ua (92.249.102.1) 2.589 ms
3       out.world.lan.ua (31.43.120.245) 2.936 ms
4       ae1-116.franco71.fra.seabone.net (195.22.214.30) 34.972 ms
5       racc.franco33.fra.seabone.net (195.22.211.213) 31.522 ms
6       de-cix.woodynet.net (80.81.194.42) 31.290 ms
7       dns.quad9.net (9.9.9.9) 90.975 ms

[/simterm]

Тут сразу видно, где “затык” – запрос к Quad уходит “в мир” – ae1-116.franco71.fra.seabone.net 34.972 ms и дальше, а запрос к CloudFlare последним хостом имеет one.cloudflare-dns.com, и все предыдущие запросы – в Украине.

Для интереса – Google:

[simterm]

$ sudo dnstraceroute --expert -C -t A -s 8.8.8.8 rtfm.co.ua
dnstraceroute DNS: 8.8.8.8:53, hostname: rtfm.co.ua, rdatatype: A
1       _gateway (192.168.1.1) 1.894 ms
2       gw-c7604.lan.ua (92.249.102.1) 5.903 ms
3       unallocated.sta.lan.ua (31.43.120.249) 3.546 ms
4       unallocated.sta.synapse.net.ua (195.69.84.77) 3.154 ms
5       hyperion.synapse.net.ua (195.69.84.53) 2.723 ms
6       108.170.248.147 (108.170.248.147) 8.523 ms
7       209.85.248.105 (209.85.248.105) 17.577 ms
8       209.85.246.99 (209.85.246.99) 36.165 ms
9       209.85.247.7 (209.85.247.7) 35.280 ms
10       *
11       *
12       *
13       *
14       *
15       *
16       *
17       *
18       *
19       *
20      google-public-dns-a.google.com (8.8.8.8) 36.241 ms

=== Expert Hints ===
 [*] public DNS server is next to an invisible hop (probably a firewall)

[/simterm]

Ещё печальнее картина.

А пинг:

[simterm]

$ dnsping -c 1 -t A -s 8.8.8.8 rtfm.co.ua
dnsping DNS: 8.8.8.8:53, hostname: rtfm.co.ua, rdatatype: A
34 bytes from 8.8.8.8: seq=0   time=37.354 ms

--- 8.8.8.8 dnsping statistics ---
1 requests transmitted, 1 responses received, 0% lost
min=37.354 ms, avg=37.354 ms, max=37.354 ms, stddev=0.000 ms

[/simterm]

В общем, в плане скорости ответа лучше пользовать CloudFlare.