Jak nastavit DNS Caching pomocí dnsmasq na Ubuntu

DNSmasq lze použít k ukládání požadavků DNS pro distribuce Linuxu do mezipaměti. může to však být trochu náročné.

Mezipaměť DNS funguje za účelem urychlení postupu vyhledávání DNS, který převádí název domény webových stránek na přidruženou IP adresu. Když několik uživatelů ve vaší síti navštíví stejnou webovou adresu, využití místního serveru mezipaměti DNS může zkrátit dobu, kterou trvá načítání webu.

Nejprve se podívejme, co je DNS Caching.

Co je ukládání do mezipaměti DNS?

DNS používá internet ke sledování všech veřejně přístupných online stránek a jejich souvisejících IP adres. Dá se to přirovnat k telefonnímu seznamu. Použití DNS nám brání v tom, abychom si museli pamatovat IP každé stránky, což je nutné pro síťovou infrastrukturu pro interakci s internetovými stránkami.

Kdykoli požádáte vyhledávač o zobrazení webové stránky, odehrává se to v zákulisí.

Přestože má váš systém přístup k velkému počtu externích serverů DNS, problém je v tom, že centrální replika DNS stále zrychluje přenos a rozlišení. V tomto okamžiku přichází do hry DNS cache.

Před odesláním požadavku na web zpracovává mezipaměť DNS rozlišení identit pro nedávno a často používané domény ve snaze mnohem více urychlit postup.

DNS server je přístupný vždy, když je potřeba přeložit IP adresu na název domény. To může způsobit další zatížení serveru DNS, zejména pokud web přijímá mnoho požadavků současně.

Mezipaměť DNS se používá ke snížení požadavků DNS a doby odezvy. Vyřešené adresy IP spolu s podrobnostmi o hostiteli se ukládají lokálně. Spíše než spouštění nového dotazu DNS je výsledek načten z mezipaměti DNS při příštím vyřešení IP nebo názvu domény.

Jak pomáhá ukládání do mezipaměti DNS při řešení problémů s přerušovaným DNS na instancích Amazon EC2?

Většina systémů Linux nepoužívá místní mezipaměť DNS. To znamená, že všechny požadavky DNS jsou odesílány přímo do autoritativního překladače DNS poskytovaného společností Amazon, který má omezení na počet požadavků, které může zpracovat najednou. Problémy s rozlišením DNS nastávají, když existuje mnoho požadavků.

Nasazení místní mezipaměti DNS v systému vám pomůže snížit využití procesoru a sítě a zároveň zabrání chybám v překladu DNS. Místní mezipaměť DNS odpovídá na dotazy na externí zdroje DNS, jako jsou Amazon RDS a S3.

Protokol DHCP je používán během spouštění instancemi Amazon EC2 připojenými k Amazon VPC k vyžádání adresy serveru DNS.

Když použijete Amazon VPC k vybudování virtuálního privátního cloudu, Route 53 DNS Resolver efektivně využívá resolver na VPC k reakci na DNS požadavky pro EC2 instance běžící pod místními webovými adresami Amazon VPC a záznamy v soukromě spravovaných zónách. Resolver provádí opakované vyhledávání všech dalších webových adres na veřejných serverech DNS.

Mezipaměť DNS slouží jako přechodný záznam předchozích dotazů DNS, který může náš systém rychle prozkoumat při pokusu o přístup na webovou stránku online. Uchovává protokol o každé existující a následné relaci. Tato mezipaměť DNS usnadňuje rozlišení domény a zabraňuje chybám s instancemi Amazon EC2 Linux.

Mnoho uživatelů obvykle používá službu Amazon Route 53 pro DNS při přístupu k AWS. Je to opravdu snadné a téměř zdarma. Existuje však řada důvodů, které by mohly ovlivnit rozhodnutí uživatele použít místní server DNS.

I když je bind9 stále skvělou volbou pro nastavení lokálního serveru mezipaměti DNS, dnsmasq je mnohem jednodušší instalovat a konfigurovat jak na instancích EC2, tak na místním počítači.

Co je dnsmasq?

DNSmasq je nástroj související s Linuxem, který podporuje ukládání do mezipaměti DNS, DHCP, TFTP a DNS. Je vyroben tak, aby byl kompaktní a lehký, takže je ideální pro sítě a firewally s menším omezením zdrojů.

Instalace a konfigurace je neuvěřitelně jednoduchá. Pro nastavení DNS a DHCP pro podsítě je dnsmasq flexibilní a praktické řešení.

Je možné nastavit tyto identifikátory přiřazené DHCP a související instrukce pro každý server nebo pro příslušný řadič. dnsmasq podporuje dynamické i statické možnosti DHCP. Je přenosný a má schopnost spravovat DNS a DHCP pro minimálně 1000 klientů.

Když je přijat dotaz DNS, dnsmasq buď odpoví z místní mezipaměti, nebo jej přenese na autoritativní server DNS. Kromě toho, že odpovídá na požadavky DNS na adresy pomocí konfigurace DHCP, kontroluje obsah souboru /etc/hosts, aby identifikoval místní názvy hostitelů, které nejsou uvedeny ve veřejném DNS.

Využití nástroje dnsmasq namísto vestavěné mezipaměti DNS v prohlížeči výrazně zvyšuje výkon při procházení internetu. Je ideální pro integrované prostředí s omezenými prostředky, protože se velmi snadno nastavuje a vyžaduje velmi málo místa na disku.

Vlastnosti dnsmasq

  • Je snadné integrovat interní servery DNS pomocí dnsmasq tak, že jej nakonfigurujete tak, aby přenášel konkrétní dotazy na rozlišení doménových jmen na konkrétní autoritativní servery.
  • Pomocí nakonfigurovaného místního serveru DNS je snížena zátěž serveru a zvýšena spolehlivost.
  • Konfigurace DNS pro koncové body s povoleným firewallem je poměrně snadná a nezávislá na DNS používaném ISP.
  • Pokud je port připojený k Internetu při provádění kontroly DNS v počítači nedostupný, operace vyhledávání bude okamžitě pozastavena.
  • Prostřednictvím PPP (Protokol Point-to-point) nebo DHCP dotazů lze dnsmasq skutečně nakonfigurovat tak, aby pravidelně shromažďoval data přímo ze základního serveru pro rozlišení domény.

Instalace

Služba systemd-resolved musí být před instalací a konfigurací obslužného programu dnsmasq vypnuta.

systemctl stop systemd-resolved

Můžete jej také skrýt pomocí atributu mask, aby se nespustil automaticky při restartu.

 systemctl mask systemd-resolved

Instalace dnsmasq je první akcí, kterou musíte provést po vypnutí systemd-resolved. DNSmasq je předinstalovaný téměř ve všech distribucích Linuxu. Pokud ne, můžete jej nainstalovat ručně. Spusťte příkazový terminál a poté zadejte následující příkaz.

sudo apt-get install dnsmasq

Pokud jste uživatelem yum, použijte následující příkaz:

sudo yum install -y dnsmasq

Tento příkaz automaticky nainstaluje nástroj a spustí dnsmasq na pozadí.

Po úspěšné instalaci můžete zkontrolovat stav dnsmasq pomocí níže uvedeného příkazu.

systemctl status dnsmasq

Pokud zobrazuje svůj stav jako „aktivní (běžící)“, znamená to, že instalace je dokončena a nakonfigurována na port 53. Pokud se zobrazuje stav jako „neaktivní (mrtvý)“, musíte znovu restartovat počítač Ubuntu i dnsmasq. Tím se chyba opraví.

Konfigurace

Dnsmasq je nyní připraven k nastavení na vašem počítači jako místního serveru DNS pro ukládání do mezipaměti. Výchozí konfigurační soubor se nachází v /etc/dnsmasq.conf. Tento konfigurační soubor musí být upraven, aby bylo možné v systému nastavit obslužný program dnsmasq.

Tento příkaz použijte k otevření a úpravě konfiguračního souboru.

nano /etc/dnsmasq.conf

Konfigurační soubor musí být upravován pouze s právy root. Stačí vymazat vše v souboru včetně komentářů a jednoduše zkopírovat, vložit a uložit toto nastavení konfigurace.

port=53
domain-needed
bogus-priv
listen-address=127.0.0.1
expand-hosts
domain=geek-demo.com
cache-size=1000

Dovolte mi krátce popsat, co každý z parametrů znamená.

  • Port – Určení nebo svázání portu, který bude Dnsmasq používat pro příjem požadavků DNS.
  • doména-needed – Přenáší pouze názvy domén na upstream server DNS.
  • bogus-priv – zabraňuje přesměrování domén a portů
  • listen-address – Definuje adresu jmenného serveru. Obvykle se jako výchozí pro nastavení lokálního serveru DNS používá localhost.
  • domain – Konfigurace domén, které dnsmasq připojuje ke krátkým identifikátorům.
  • cache-size – Maximální velikost mezipaměti DNS povolená v úložišti.

Po provedení všech nezbytných změn uložte a zavřete konfigurační soubor. A dalším krokem je úprava souboru /etc/resolv.conf a přidání adresy rozlišení lokálního hostitele. Pomocí níže uvedeného příkazu otevřete nano editor.

nano /etc/resolv.conf

Zde najdete všechny jmenné servery, které váš systém používá k rozlišení adres. V tomto seznamu přidejte také adresu zpětné smyčky. Přidejte „nameserver 127.0.0.1“ a ponechte jej na prvním řádku.

Uložte a ukončete konfigurační soubor. Aby se aktualizované nastavení projevilo, restartujte obslužný program dnsmasq.

systemctl restart dnsmasq

Testování místního serveru DNS Caching

Je snadné otestovat místní DNS server. Otevřete příkazový řádek a pomocí příkazu dig zkontrolujte ukládání do mezipaměti DNS. Když spustíte příkaz dig poprvé, výsledek by měl být docela běžný.

┌──(root💀kali)-[/home/writer]
└─# dig etechblog.cz.com                                                                                     1 ⚙

; <<>> DiG 9.18.0-2-Debian <<>> etechblog.cz.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 623
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;etechblog.cz.com.                 IN      A

;; ANSWER SECTION:
etechblog.cz.com.          227     IN      A       172.66.43.163
etechblog.cz.com.          227     IN      A       172.66.40.93

;; Query time: 31 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
;; WHEN: Sat Oct 15 07:52:49 EDT 2022
;; MSG SIZE  rcvd: 74

Zde si prosím povšimněte, že doba dotazu je asi 31 ms pro dotazování na podrobnosti z upstream jmenného serveru. Proveďte stejný příkaz dig ještě jednou a zaznamenáte výrazné snížení doby dotazu.

┌──(root💀kali)-[/home/writer]
└─# dig etechblog.cz.com                                                                                     1 ⚙

; <<>> DiG 9.18.0-2-Debian <<>> etechblog.cz.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21942
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;etechblog.cz.com.                 IN      A

;; ANSWER SECTION:
etechblog.cz.com.          281     IN      A       172.66.40.93
etechblog.cz.com.          281     IN      A       172.66.43.163

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
;; WHEN: Sat Oct 15 07:58:10 EDT 2022
;; MSG SIZE  rcvd: 74

Zde je doba dotazu 0 ms. To je způsobeno skutečností, že po provedení počátečního vyhledávání dnsmasq data uložil a všechna následně provedená vyhledávání byla okamžitá kvůli využití uložené cache. Restartování dnsmasq je nutné, pokud chcete smazat uloženou mezipaměť DNS.

Zabalit se

V tomto článku jsme viděli, jak nastavit a nakonfigurovat dnsmasq, aby fungoval jako místní server DNS. Možná vás také bude zajímat, jak změnit servery DNS pro rychlejší procházení v různých operačních systémech.