Testowanie systemu DNS
Poniżej opisano polecenia sieciowe wykorzystywane do testowania sytemu DNS.
PING
Podstawowe polecenie sprawdzające komunikację. Zwraca adres IP. Użycie w Windows i linuksach jest identyczne.
PING w MS Windows
C:\Users\jarek>ping soisk.info Pinging soisk.info [31.186.86.189] with 32 bytes of data: Reply from 31.186.86.189: bytes=32 time=24ms TTL=55 Reply from 31.186.86.189: bytes=32 time=24ms TTL=55 Reply from 31.186.86.189: bytes=32 time=20ms TTL=55 Reply from 31.186.86.189: bytes=32 time=42ms TTL=55 Ping statistics for 31.186.86.189: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 20ms, Maximum = 42ms, Average = 27ms
PING w linuksie
uczen@uczen-VirtualBox:~$ ping soisk.info PING soisk.info (31.186.86.189) 56(84) bytes of data. 64 bytes from cl2.netmark.pl (31.186.86.189): icmp_seq=1 ttl=55 time=19.2 ms 64 bytes from cl2.netmark.pl (31.186.86.189): icmp_seq=2 ttl=55 time=29.5 ms 64 bytes from cl2.netmark.pl (31.186.86.189): icmp_seq=3 ttl=55 time=19.1 ms 64 bytes from cl2.netmark.pl (31.186.86.189): icmp_seq=4 ttl=55 time=20.3 ms 64 bytes from cl2.netmark.pl (31.186.86.189): icmp_seq=6 ttl=55 time=53.8 ms 64 bytes from cl2.netmark.pl (31.186.86.189): icmp_seq=7 ttl=55 time=75.3 ms ^C --- soisk.info ping statistics --- 7 packets transmitted, 6 received, 14,2857% packet loss, time 6040ms rtt min/avg/max/mdev = 19.143/36.196/75.314/21.288 ms
Jak widać w zależności od systemu operayjnego trochę inaczej wyglada rezultat. W MS Windows odpowiadają nam 4 pakiety po 32 bajty w linuksach odpowiada nieskończona liczba pakietów o wielkości 64 bajty. W obu przypadkach widzimy czas pakietu wyrażony w milisekundach (1/1000 sekundy) oraz TTL, czyli czas życia pakietu pomniejszany o 1 po przejściu przez kolejne routery.
Więcej opcji w MS Windows dostępne jest po wpisaniu ping /?
Więcej opcji w linuksach dostępne jest po wpisaniu ping --help
NSLOOKUP
Polecenie dostępne zarówno w MS Windows i linuksach. Działa w trybie inteaktywnycm jak i nieinteraktywnym. Poniżej przykład z systemu MS Windows, tryb interaktywny.
C:\Users\jarek>nslookup Default Server: vdns2.vectranet.pl Address: 31.11.173.2 > soisk.info Server: vdns2.vectranet.pl Address: 31.11.173.2 Non-authoritative answer: Name: soisk.info Address: 31.186.86.189
Widzimy adres naszego serwera DNS, ten który wpisaliśmy w konfigurację sieciową lub pobraliśmy automatycznie z sewera DHCP. Jak widać dostałem adres IP wpisanej nazwy domenowej. Jeśli występuje "Non-authoritative answer" oznacza to, że serwer DNS nie obsługuje tej strefy i musiał odpytać inne serwery.
C:\Users\jarek>nslookup Default Server: vdns2.vectranet.pl Address: 31.11.173.2 > server 8.8.8.8 Default Server: dns.google Address: 8.8.8.8 > soisk.info Server: dns.google Address: 8.8.8.8 Non-authoritative answer: Name: soisk.info Address: 31.186.86.189
Powyżej wpisując server 8.8.8.8
zmieniłem adres DNS na adres DNS google i z niego otrzymałem odpowiedź.
C:\Users\jarek>nslookup Default Server: vdns2.vectranet.pl Address: 31.11.173.2 > set type=SOA > soisk.info Server: vdns2.vectranet.pl Address: 31.11.173.2 Non-authoritative answer: soisk.info primary name server = ns1.netmark.pl responsible mail addr = firma.netmark.pl serial = 2022072000 refresh = 86400 (1 day) retry = 7200 (2 hours) expire = 3600000 (41 days 16 hours) default TTL = 86400 (1 day)>
Powyżej wpisując set type=SOA
odpytałem serwer DNS o rekord SOA w domenie soisk.info. Zamiast SOA można oczywiście wpisywac inne rodzaje rekordów DNS.
IPCONFIG
System MS Windows przechowuje odpowiedzi DNS w pamięci podręcznej. Pozwala to pominąć serwer DNS w procesie rozpoznawania nazw. Wyświetlamy adresy z pamięci podręcznej poleceniem ipconfig /displaydns
C:\Users\jarek>ipconfig /displaydns Windows IP Configuration content-autofill.googleapis.com ---------------------------------------- Record Name . . . . . : content-autofill.googleapis.com Record Type . . . . . : 1 Time To Live . . . . : 8 Data Length . . . . . : 4 Section . . . . . . . : Answer A (Host) Record . . . : 142.250.75.10 Record Name . . . . . : content-autofill.googleapis.com Record Type . . . . . : 1 Time To Live . . . . : 8 Data Length . . . . . : 4 Section . . . . . . . : Answer A (Host) Record . . . : 142.250.186.202
Tutaj kluczony jest parametr TTL, oznacza ile sekund dany adres będzie w pamięci podręcznej. Czas nie jest długi, gdyż inaczej byłby problem z właściwym rozpoznawaniem nazw po zmianach na serwerze DNS.
Pamięć podręczną możemy wyczyścić poleceniem ipconfig /flushdns
C:\Users\jarek>ipconfig /flushdns Windows IP Configuration Successfully flushed the DNS Resolver Cache.
DIG
W systemach operacyjnych linuks mozemy skorzystać z polecenia dig
.
uczen@uczen-VirtualBox:~$ dig soisk.info ; <<>> DiG 9.16.1-Ubuntu <<>> soisk.info ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46762 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;soisk.info. IN A ;; ANSWER SECTION: soisk.info. 4649 IN A 31.186.86.189 ;; Query time: 0 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) ;; WHEN: sob paź 15 17:29:53 CEST 2022 ;; MSG SIZE rcvd: 55
Jak widać domyślnie dostajemy zwrócony rekord A domeny. Można odpytać o dowolny rekord. Poniżej odpytałem o rekord NS.
uczen@uczen-VirtualBox:~$ dig soisk.info NS ; <<>> DiG 9.16.1-Ubuntu <<>> soisk.info NS ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24195 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;soisk.info. IN NS ;; ANSWER SECTION: soisk.info. 3600 IN NS ns1.netmark.pl. soisk.info. 3600 IN NS ns2.netmark.pl. ;; Query time: 59 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) ;; WHEN: sob paź 15 17:31:46 CEST 2022 ;; MSG SIZE rcvd: 85
Ciekawą opcją jest zapytanie dig +trace
uczen@uczen-VirtualBox:~$ dig +trace soisk.info ; <<>> DiG 9.16.1-Ubuntu <<>> +trace soisk.info ;; global options: +cmd . 338226 IN NS a.root-servers.net. . 338226 IN NS l.root-servers.net. . 338226 IN NS i.root-servers.net. . 338226 IN NS b.root-servers.net. . 338226 IN NS f.root-servers.net. . 338226 IN NS d.root-servers.net. . 338226 IN NS k.root-servers.net. . 338226 IN NS m.root-servers.net. . 338226 IN NS j.root-servers.net. . 338226 IN NS g.root-servers.net. . 338226 IN NS c.root-servers.net. . 338226 IN NS e.root-servers.net. . 338226 IN NS h.root-servers.net. ;; Received 262 bytes from 127.0.0.53#53(127.0.0.53) in 31 ms info. 172800 IN NS b2.info.afilias-nst.org. info. 172800 IN NS a2.info.afilias-nst.info. info. 172800 IN NS a0.info.afilias-nst.info. info. 172800 IN NS b0.info.afilias-nst.org. info. 172800 IN NS d0.info.afilias-nst.org. info. 172800 IN NS c0.info.afilias-nst.info. info. 86400 IN DS 5104 8 2 1AF7548A8D3E2950C20303757DF9390C26CFA39E26C8B6A8F6C8B1E7 2DD8F744 info. 86400 IN RRSIG DS 8 1 86400 20221028050000 20221015040000 18733 . dr/kC0nTyXe73czOfEVQQO5bhvgJh5AvBxS75MWXh2o6CJHGmB0iSlyY hu2OXv/qbS5049KXIjcAUYWakzvxi/E8NfrgmlQHXjL11faXgF6pUu9A yCTlttgAic/cEPV8Cl3VBrapwmhm8aOtZSjZsIP6ITkARgvpRnGS6z7w SUYRxKf5HXuLFJMUx7yilX3aBl7IUeEhVF0QYzkxaD0MqyQnhrHwlkUG 7YZGdWqLeo2AKkXLsQUK4posBH8v2F4K1s3a3nqcy4ZJcfFPuv7kpYD/ qaBK5DcCdJJWjz5i9OZ75+rtRBuhsl5/6kBg9HbW1Imw/TV03H+hSAhE oGV6ew== ;; Received 809 bytes from 192.112.36.4#53(g.root-servers.net) in 55 ms soisk.info. 3600 IN NS ns1.netmark.pl. soisk.info. 3600 IN NS ns2.netmark.pl. dr3kecftk5dlgg1gdcs9q10f5vjs86ll.info. 3600 IN NSEC3 1 1 10 332539EE7F95C32A DR44461AKSG9J407B3AJ3J2PFM3R455D NS SOA RRSIG DNSKEY NSEC3PARAM dr3kecftk5dlgg1gdcs9q10f5vjs86ll.info. 3600 IN RRSIG NSEC3 8 2 3600 20221105152555 20221015142555 2685 info. RZGhNVayW9QY05t0HwBqllyxNqLoYE/B3bzvj5Yqs5kWwIiyfyaTFWeZ 2ne2bPSno5kK+Czxh2igvAs2OjzOJn4d/FFIMVbOCadB8umWxPmt0xjr /OrkBnOlOOv6+8l96mDAW8ZCTQ4/ivxFYIbPVqGx2Irfz1FCAOWEpUUS hEo= us5gi8lmhbgp0grsplo16d7mi1u4ppf9.info. 3600 IN NSEC3 1 1 10 332539EE7F95C32A US69D4HJTBDT0DPTAF28NE41FSKC38EB NS DS RRSIG us5gi8lmhbgp0grsplo16d7mi1u4ppf9.info. 3600 IN RRSIG NSEC3 8 2 3600 20221030153442 20221009143442 2685 info. Jokwt1fe+ST8nsTFLZYymwx7CB6v5PkdrO2la/2CTAYwhTcNZVEI86K2 +eK8m6cIv1AFLfMcgK249Sj6Oca8CyoLfnoFDdKpqZbg5qvs9ZhOAgzU 51zHQnAfRbKX2mHBasqIWNX7N3BDxqT0UIxYZEMcZ5zKu36wou7pH6LF 5dE= ;; Received 588 bytes from 199.254.49.1#53(c0.info.afilias-nst.info) in 35 ms soisk.info. 14400 IN A 31.186.86.189 soisk.info. 86400 IN NS ns1.netmark.pl. soisk.info. 86400 IN NS ns2.netmark.pl. ;; Received 161 bytes from 176.119.40.38#53(ns2.netmark.pl) in 19 ms
Tutaj widać dokładnie jak działają serwery DNS. Jeśli nasz wpisany w konfigurację sieciową serwer DNS nie zna odpowiedzi, znaczy nie ma tego wpisu w jego strefie. Zapytuje tzw. root serwer. Ten z kolei kieruje zapytanie do serwerów organizacji, która zarządza domenami najwyższego poziomu. W przypadku domeny info jest to Afilias. Następnie Afilias przekierowuje do serwera DNS na którym przechowywana jest strefa. Gdybym odpytywał o domenę pl to root serwer przekierowałby zapytanie na serwery NASK, bo NASk zajmuje się domeną pl.
WHOIS
Polecenie w systemach linuks wykorzystujące protokół whois do wyświetlania informacji na temat zarejestrowanych domen. Zamiast polecenia można użyć równieć stron www, które robią to samo. Poniżej wklejam wynik działania polecenia (okrojony)
uczen@uczen-VirtualBox:~$ whois soisk.info Domain Name: soisk.info Registry Domain ID: 515ff91b3f49477da7f2ee403771928a-DONUTS Registrar WHOIS Server: whois.godaddy.com/ Registrar URL: http://www.godaddy.com/domains/search.aspx?ci=8990 Updated Date: 2022-09-08T00:30:29Z Creation Date: 2010-08-27T23:27:35Z Registry Expiry Date: 2023-08-27T23:27:35Z Registrar: GoDaddy.com, LLC Registrar IANA ID: 146 Registrar Abuse Contact Email: abuse@godaddy.com Registrar Abuse Contact Phone: +1.4806242505