03/29/2024

Cum se configurează memorarea în cache DNS folosind dnsmasq pe Ubuntu

DNSmasq poate fi folosit pentru a stoca în cache cererile DNS pentru distribuțiile Linux. cu toate acestea, poate fi puțin provocator.

Cache-ul DNS funcționează pentru a accelera procedura de căutare DNS care convertește un nume de domeniu al site-ului web în adresa IP asociată. Când mai mulți utilizatori din rețeaua dvs. vizitează aceeași adresă de site web, utilizarea serverului cache DNS local poate reduce timpul necesar pentru încărcare web.

Mai întâi, să vedem ce este DNS Caching.

Ce este DNS Cache-ul?

DNS-ul este utilizat de internet pentru a ține evidența tuturor site-urilor online accesibile public și a adreselor IP aferente acestora. Poate fi comparat cu o agendă telefonică. Utilizarea DNS ne împiedică să memorăm IP-ul fiecărui site, care este necesar pentru ca infrastructura de rețea să interacționeze cu site-urile de internet.

Ori de câte ori solicitați motorului de căutare să afișeze o pagină web, aceasta este ceea ce are loc de fapt în culise.

Deși sistemul dvs. are acces la un număr mare de servere DNS externe, problema este că, având o replică centrală a DNS-ului, încă accelerează transmisia și rezoluția. Acesta este momentul în care intervine memorarea în cache DNS.

Înainte de a trimite cererea pe web, memoria cache DNS se ocupă de rezoluția identității pentru domeniile accesate recent și frecvent, într-un efort de a accelera procedura mult mai mult.

Serverul DNS este accesat ori de câte ori este necesar pentru a rezolva o adresă IP la un nume de domeniu. Acest lucru poate pune o sarcină suplimentară pe serverul DNS, mai ales dacă site-ul web primește o mulțime de solicitări simultan.

Un cache DNS este utilizat pentru a reduce cererile DNS și timpii de răspuns. Adresele IP rezolvate împreună cu detaliile gazdei sunt salvate local. În loc să inițiezi o nouă interogare DNS, rezultatul este preluat din memoria cache DNS data viitoare când IP-ul sau numele de domeniu trebuie rezolvat.

Cum ajută memorarea în cache DNS la rezolvarea problemelor DNS intermitente pe Instanțele Amazon EC2?

Majoritatea sistemelor Linux nu folosesc un cache DNS local. Acest lucru implică faptul că toate cererile DNS sunt trimise direct către soluția DNS autorizată furnizată de Amazon, care are o limitare a numărului de solicitări pe care le poate procesa simultan. Problemele de rezoluție DNS apar atunci când există o mulțime de solicitări.

Implementarea unui cache DNS local în sistem vă va ajuta să reduceți utilizarea CPU și a rețelei, prevenind în același timp erorile de rezoluție DNS. Un cache DNS local răspunde la interogările adresate resurselor DNS externe, cum ar fi Amazon RDS și S3.

  Cele mai bune receptoare AirPlay

Protocolul DHCP este utilizat în timpul lansării de către instanțe Amazon EC2 conectate la Amazon VPC pentru a solicita o adresă de server DNS.

Când utilizați Amazon VPC pentru a construi un cloud privat virtual, Route 53 DNS Resolver utilizează în mod eficient un resolver pe VPC pentru a răspunde solicitărilor DNS pentru instanțe EC2 care rulează sub adresele web locale Amazon VPC și intrările din zonele administrate privat. Resolver face căutări recurente pe serverele DNS publice pentru toate adresele web suplimentare.

Un cache DNS servește ca o înregistrare tranzitorie a interogărilor DNS anterioare pe care sistemul nostru le poate examina rapid în timp ce încearcă să acceseze un site web online. Menține un jurnal al fiecărei sesiuni existente și ulterioare. Acest cache DNS facilitează rezoluția domeniului și previne erorile cu instanțele Amazon EC2 Linux.

Mulți utilizatori folosesc de obicei serviciul Amazon Route 53 pentru DNS atunci când accesează AWS. Este foarte ușor de utilizat și aproape gratuit. Dar există o serie de motive care ar putea influența decizia utilizatorului de a utiliza un server DNS local.

Chiar dacă bind9 este încă o opțiune excelentă pentru configurarea unui server cache DNS local, dnsmasq este mult mai simplu de instalat și configurat atât pe instanțe EC2, cât și pe o mașină locală.

Ce este dnsmasq?

DNSmasq este un instrument legat de Linux care acceptă DNS, DHCP, TFTP și DNS cache. Este conceput pentru a fi compact și ușor, făcându-l ideal pentru rețele și firewall-uri cu mai puține constrângeri de resurse.

Este incredibil de simplu de instalat și configurat. Pentru a configura DNS și DHCP pentru subrețele, dnsmasq este o soluție flexibilă și practică.

Este posibil să se configureze acești identificatori alocați de DHCP și instrucțiuni asociate pentru fiecare server sau pentru un controler subiacent. Opțiunile DHCP dinamice și statice sunt ambele acceptate de dnsmasq. Este portabil și are capacitatea de a gestiona DNS și DHCP pentru cel puțin 1.000 de clienți.

Când se primește o interogare DNS, dnsmasq fie răspunde dintr-un cache local, fie o transmite unui server DNS autorizat. În plus față de răspunsul la solicitările DNS pentru adrese cu configurație DHCP, verifică conținutul fișierului /etc/hosts pentru a identifica numele de gazdă locale care nu sunt listate în DNS-ul public.

Utilizarea instrumentului dnsmasq în locul memoriei cache DNS încorporate în browser îmbunătățește considerabil performanța de navigare pe internet. Este ideal pentru un mediu integrat cu resurse limitate, deoarece este foarte simplu de configurat și necesită foarte puțin spațiu pe disc.

  Cum să opriți tragerea de la încetinirea computerului

Caracteristicile dnsmasq

  • Este simplu să integrați serverele DNS interne folosind dnsmasq, configurându-l pentru a transmite anumite interogări de rezoluție a numelor de domeniu către anumite servere autorizate.
  • Sarcina de lucru a serverului este redusă și fiabilitatea este îmbunătățită folosind serverul DNS local configurat.
  • Configurarea DNS pentru punctele finale cu firewall este destul de ușoară și independentă de DNS-ul folosit de ISP.
  • Dacă portul conectat la Internet este inaccesibil în timpul efectuării unei verificări DNS pe computer, operația de căutare va fi suspendată instantaneu.
  • Prin interogări PPP (protocol punct-la-punct) sau DHCP, dnsmasq poate fi într-adevăr configurat pentru a colecta periodic date direct de la serverul de rezoluție al domeniului de bază.

Instalare

Serviciul systemd-resolved trebuie dezactivat înainte de a instala și configura utilitarul dnsmasq.

systemctl stop systemd-resolved

De asemenea, îl puteți ascunde folosind atributul mască, astfel încât să nu pornească automat când reporniți.

 systemctl mask systemd-resolved

Instalarea dnsmasq este acțiunea inițială pe care trebuie să o efectuați după oprirea programului systemd-resolved. DNSmasq vine preinstalat în aproape toate distribuțiile Linux. Dacă nu, îl puteți instala manual. Lansați un terminal de comandă, apoi tastați următoarea comandă pentru a face acest lucru.

sudo apt-get install dnsmasq

Utilizați următoarea comandă dacă sunteți un utilizator yum:

sudo yum install -y dnsmasq

Această comandă instalează automat instrumentul și pornește dnsmasq în fundal.

După instalarea cu succes, puteți verifica starea dnsmasq utilizând comanda de mai jos.

systemctl status dnsmasq

Dacă își arată starea ca „activ (în rulare)”, înseamnă că instalarea este finalizată și configurată la portul 53. Dacă își arată starea ca „inactiv (mort)”, atunci trebuie să reporniți atât mașina Ubuntu, cât și dnsmasq din nou. Aceasta va remedia eroarea.

Configurare

Dnsmasq este acum gata pentru a fi configurat pe mașina dvs. ca server DNS local de cache. Fișierul de configurare implicit se află la /etc/dnsmasq.conf. Acest fișier de configurare trebuie modificat pentru a configura utilitarul dnsmasq în sistem.

Utilizați această comandă pentru a deschide și edita fișierul de configurare.

nano /etc/dnsmasq.conf

Fișierul de configurare trebuie editat numai cu privilegii root. Doar ștergeți totul din fișier, inclusiv comentariile și pur și simplu copiați-lipiți și salvați această setare de configurare.

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

Permiteți-mi să descriu pe scurt ce înseamnă fiecare dintre parametri.

  • Port – Pentru a specifica sau lega portul pe care Dnsmasq îl va folosi pentru a primi cererile DNS.
  • domain-needed – Transmite numai numele de domenii către serverul DNS din amonte.
  • fals-priv – previne redirecționarea domeniului și portului
  • listen-address – Pentru a defini adresa serverului de nume. De obicei, localhost este folosit ca implicit, pentru configurarea unui server DNS local.
  • domain – Pentru a configura domeniile pe care dnsmasq le adaugă la identificatorii scurti.
  • cache-size – Dimensiunea maximă de cache DNS permisă în stocare.
  Încărcați rapid până la cinci dispozitive simultan cu încărcătorul de birou UGREEN Nexode 300W GaN

După efectuarea tuturor modificărilor necesare, salvați și închideți fișierul de configurare. Iar următorul pas este să editați fișierul /etc/resolv.conf pentru a adăuga adresa locală de rezoluție a gazdei. Utilizați comanda de mai jos pentru a deschide cu editorul nano.

nano /etc/resolv.conf

Aici, puteți găsi toate serverele de nume pe care sistemul dumneavoastră le folosește pentru rezolvarea adreselor. În acea listă, adăugați și adresa de loopback. Adăugați „server de nume 127.0.0.1” și păstrați-l în prima linie.

Salvați și ieșiți din fișierul de configurare. Pentru ca setarea actualizată să aibă efect, reporniți utilitarul dnsmasq.

systemctl restart dnsmasq

Testarea serverului local DNS Caching

Este ușor să testați serverul DNS local. Deschideți o linie de comandă și utilizați comanda dig pentru a verifica stocarea în cache DNS. Când executați comanda dig pentru prima dată, rezultatul ar trebui să fie destul de comun.

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

; <<>> DiG 9.18.0-2-Debian <<>> tipstrick.ro.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:
;tipstrick.ro.com.                 IN      A

;; ANSWER SECTION:
tipstrick.ro.com.          227     IN      A       172.66.43.163
tipstrick.ro.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

Aici, vă rugăm să rețineți că timpul de interogare este de aproximativ 31 msec pentru a interoga detaliile de la serverul de nume din amonte. Executați exact aceeași comandă dig încă o dată și veți observa o scădere semnificativă a timpului de interogare.

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

; <<>> DiG 9.18.0-2-Debian <<>> tipstrick.ro.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:
;tipstrick.ro.com.                 IN      A

;; ANSWER SECTION:
tipstrick.ro.com.          281     IN      A       172.66.40.93
tipstrick.ro.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

Aici, timpul de interogare este de 0 ms. Acest lucru se datorează faptului că, după efectuarea căutării inițiale, dnsmasq a stocat datele, iar toate căutările efectuate ulterior au fost instantanee datorită utilizării cache-ului stocat. Repornirea dnsmasq este necesară dacă doriți să ștergeți memoria cache DNS stocată.

Încheierea

În acest articol, am văzut cum să configurați și să configurați dnsmasq pentru a funcționa ca server DNS local. Ați putea fi, de asemenea, interesat să aflați despre cum să schimbați serverele DNS pentru o navigare mai rapidă în diferite sisteme de operare.