Tento článok je o vyprázdňovaní DNS v Ubuntu. Ale aby ste pochopili, prečo je to potrebné, musíte najskôr pochopiť, ako funguje DNS, a niečo o ukladaní do vyrovnávacej pamäte DNS.
Ako funguje DNS:
DNS si jednoducho môžeme predstaviť ako tabuľku názvov domén a adries IP, ktoré sú uvedené nižšie:
Doménové meno | IP adresa |
linuxhint.com | 1.2.3.4 |
podpora.linuxhint.com | 3.4.5.7 |
google.com | 8.9.5.4 |
www.google.com | 8.9.5.4 |
Upozorňujeme, že žiadne údaje v tejto tabuľke nie sú skutočné. Je to len na účely demonštrácie. Vráťme sa teda k našej pôvodnej téme.
Keď navštívite, povedzme, linuxhint.com, prehľadávač požiada server DNS (nastavený na vašom počítači) o niekoľko otázok.
Tvoj počitač: Hej, vieš linuxhint.com?
Server DNS: Nie, ja nie. Ale server DNS 4.4.4.4 o tom môže vedieť.
Tvoj počitač: Kontaktuje server DNS 4.4.4.4 a pýta sa: „hej, vieš linuxhint.com?“
Server DNS 2: Áno. Čo pre vás môžem urobiť?
Tvoj počitač: Potrebujem IP adresu linuxhint.com. Môžem to mať??
Server DNS 2: Žiaden strach, preto som tu. Tu je IP adresa linuxhint.com 1.2.3.4.
Tvoj počitač: Si záchranca života. Vďaka.
Váš počítač sa teraz pripája k 1.2.3.4 a váš obľúbený web linuxhint.com objaví sa. To bolo naozaj ťažké, však??
Najbližšia návšteva linuxhint.com, opakuje sa to isté.
Medzipamäť DNS:
V predchádzajúcej časti ste videli, ako sa prekladá názov domény na adresy IP. Táto cesta cez servery DNS chvíľu trvá a kým nebude úplná a doménový názov bude možné rozlíšiť na adresy IP, nebudete sa môcť pripojiť k žiadnej webovej stránke alebo serveru na internete.
Na vyriešenie tohto problému sa používa ukladanie do pamäte cache DNS. Tu, keď sa pokúsite prvýkrát vyriešiť názov domény na adresy IP, trvá to o niečo dlhšie. Lenže po vyriešení názvu domény sa adresy IP uložia vo vašom počítači. Takže nabudúce, keď budete musieť vyriešiť rovnaký názov domény, nebude to trvať tak dlho ako pri prvom.
Problémy s ukladaním do pamäte cache DNS:
Ukladanie do vyrovnávacej pamäte DNS je dobré. Ako to, že ukladanie do vyrovnávacej pamäte DNS je problematické? Svet internetu je tak dynamický, že informácie DNS sa neustále menia. Možno sa to niekoľkokrát zmenilo, aj keď píšem tento článok.
Čo sa teda stane, keď sa informácie DNS zmenia a my použijeme informácie DNS, ktoré sú uložené v pamäti nášho počítača? No a tu to začína byť problematické. V takom prípade použijeme staré informácie o DNS. Môžu sa vyskytnúť problémy s pripojením, nesprávnym presmerovaním a mnoho ďalších problémov.
Aby sme tento problém vyriešili, musíme vymazať vyrovnávaciu pamäť (nazýva sa to aj vyprázdňovanie DNS) a znova ju vytvoriť. Toto je téma tohto článku.
Kontrola, či je povolené ukladanie do pamäte cache DNS:
To, či je v systéme Ubuntu povolené medzipamäť DNS, môžete skontrolovať veľmi ľahko. Musíte mať nslookup alebo kopať nainštalovaný vo vašom počítači, aby to fungovalo.
nslookup alebo kopať príkaz nemusí byť v predvolenom nastavení k dispozícii na vašom počítači Ubuntu. Môžete ho ale ľahko nainštalovať z oficiálneho úložiska balíkov Ubuntu.
Najskôr aktualizujte medzipamäť úložiska balíkov APT pomocou nasledujúceho príkazu:
$ sudo apt aktualizácia
Vyrovnávacia pamäť úložiska balíkov APT by sa mala aktualizovať.
Teraz nainštalujte nslookup a kopať nasledujúcim príkazom:
$ sudo apt nainštalovať dnsutils
Teraz stlačte r a potom stlačte
nslookup a kopať príkazy by mali byť teraz k dispozícii.
Teraz, aby ste otestovali, či je ukladanie do pamäte cache povolené, spustite nasledujúci príkaz:
$ nslookup google.comAko vidíte, server DNS použitý na rozlíšenie názvu domény je 127.0.0.53, čo je IP adresa spätnej slučky. Ukladanie do vyrovnávacej pamäte DNS je teda povolené. Ak ho máte deaktivovaný, potom by mal byť server DNS iný ako 127.0.0.X.
To isté môžete skontrolovať pomocou kopať príkaz:
$ dig google.comAko vidíte, spätné adresy IP sa tu tiež používajú ako adresy serverov DNS. Ukladanie do vyrovnávacej pamäte DNS je teda povolené.
Preplachovanie DNS na Ubuntu 18.04 LTS:
Ubuntu 18.04 LTS používa lokálny server DNS a predvolene ukladá dotazy DNS. Ubuntu 18.04 použití LTS systemd pre tento účel.
Môžete spustiť nasledujúci príkaz a skontrolovať, koľko záznamov DNS je uložených v pamäti a mnoho ďalších informácií o systéme Ubuntu 18.04 LTS:
$ sudo systemd-resolve --statistics
Ako vidíte, informácie o vyrovnávacej pamäti DNS sú uvedené v označenej časti snímky obrazovky nižšie.
Vymazanie medzipamäte DNS v systéme Ubuntu 18.04 LTS, spustite nasledujúci príkaz:
$ sudo systemd-resolve --flush-caches
Môžete tiež reštartovať systemd-vyriesene služba na vyprázdnenie keš DNS na Ubuntu 18.04 LTS.
Ak chcete reštartovať systemd-vyriesene spustite nasledujúci príkaz:
$ sudo systemctl reštart systemd-vyriešené
Ako vidíte, cache sú vymazané.
$ sudo systemd-resolve --statistics
Preplachovanie medzipamäte DNS v systéme Ubuntu 16.04:
V systéme Ubuntu 16.04 LTS, vyrovnávacia pamäť DNS nie je predvolene povolená. Ale niektoré aplikácie ako viazať, dnsmasq, nscd atď. môže ukladať do medzipamäte.
Ak používate nscd na ukladanie DNS dotazov do pamäti môžete potom vyčistiť cache DNS jednoduchým reštartom nscd služby.
Môžete reštartovať nscd služba na Ubuntu 16.04 LTS na vyprázdnenie vyrovnávacích pamätí DNS pomocou nasledujúceho príkazu:
$ sudo systemctl reštart nscdAk používate dnsmasq na medzipamäť DNS, potom sa reštartuje dnsmasq služba s nasledujúcim príkazom by mala vyčistiť DNS cache.
$ sudo systemctl reštart dnsmasqTakto vyprázdňujete medzipamäť DNS v systéme Ubuntu 18.04 LTS a 16.04 LTS. Ďakujeme, že ste si prečítali tento článok.