Slik konfigurerer du DNS-bufring ved hjelp av dnsmasq på Ubuntu

DNSmasq kan brukes til å cache DNS-forespørsler for Linux-distribusjoner. det kan imidlertid være litt utfordrende.

DNS-bufferen fungerer for å fremskynde DNS-oppslagsprosedyren som konverterer et nettsteds domenenavn til dets tilknyttede IP-adresse. Når flere brukere på nettverket ditt besøker samme nettstedsadresse, kan bruk av den lokale DNS-bufferserveren redusere tiden det tar før nettet lastes inn.

La oss først se hva som er DNS Caching.

Hva er DNS-bufring?

DNS brukes av internett for å holde styr på alle offentlig tilgjengelige nettsider og deres relaterte IP-adresser. Det kan sammenlignes med en telefonkatalog. Bruk av DNS forhindrer oss i å måtte huske hver sides IP, som kreves for at nettverksinfrastruktur skal samhandle med internettsider.

Når du ber søkemotoren om å vise en nettside, er det dette som faktisk foregår bak kulissene.

Selv om systemet ditt har tilgang til et stort antall eksterne DNS-servere, er problemet at det å ha en sentral replika av DNS fortsatt øker overføringen og oppløsningen. Det er da DNS-caching kommer inn i bildet.

Før forespørselen sendes til nettet, håndterer DNS-cachen identitetsløsning for nylig og ofte brukte domener i et forsøk på å fremskynde prosedyren mye mer.

DNS-serveren får tilgang når det er nødvendig for å løse en IP-adresse til et domenenavn. Dette kan legge en ekstra belastning på DNS-serveren, spesielt hvis nettstedet mottar mange forespørsler samtidig.

En DNS-cache brukes for å redusere DNS-forespørsler og responstider. De løste IP-adressene sammen med vertsdetaljer lagres lokalt. I stedet for å starte en ny DNS-spørring, hentes resultatet fra DNS-bufferminnet neste gang IP- eller domenenavnet må løses.

Hvordan hjelper DNS-bufring til å fikse periodiske DNS-løsningsproblemer på Amazon EC2-forekomster?

De fleste Linux-systemer bruker ikke en lokal DNS-cache. Dette innebærer at alle DNS-forespørsler sendes direkte til den autoritative DNS-løseren levert av Amazon, som har en begrensning på antall forespørsler den kan behandle på en gang. DNS-oppløsningsproblemer oppstår når det er mange forespørsler.

Å distribuere en lokal DNS-buffer i systemet vil hjelpe deg med å redusere CPU- og nettverksutnyttelsen samtidig som du forhindrer DNS-oppløsningsfeil. En lokal DNS-buffer svarer på forespørsler til eksterne DNS-ressurser som Amazon RDS og S3.

DHCP-protokollen brukes under lansering av Amazon EC2-instanser koblet til Amazon VPC-er for å be om en DNS-serveradresse.

  En introduksjonsveiledning og Google Cloud-kasusstudie

Når du bruker Amazon VPC til å konstruere en virtuell privat sky, bruker Route 53 DNS Resolver effektivt en resolver på VPC for å svare på DNS-forespørsler for EC2-forekomster som kjører under lokale Amazon VPC-nettadresser og oppføringer i privat administrerte soner. Resolver gjør gjentatte oppslag på tvers av offentlige DNS-servere for alle ekstra nettadresser.

En DNS-buffer fungerer som en midlertidig registrering av tidligere DNS-spørringer som systemet vårt raskt kan undersøke mens det forsøker å få tilgang til et nettsted på nettet. Den opprettholder en logg over hver eksisterende og påfølgende økt. Denne DNS-cachen gjør domeneoppløsningen enklere og forhindrer feil med Amazon EC2 Linux-forekomster.

Mange brukere bruker vanligvis Amazons Route 53-tjeneste for DNS når de får tilgang til AWS. Det er veldig enkelt å bruke og nesten gratis. Men det er en rekke årsaker som kan påvirke brukerens beslutning om å bruke en lokal DNS-server.

Selv om bind9 fortsatt er et flott alternativ for å sette opp en lokal DNS-bufferserver, er dnsmasq mye enklere å installere og konfigurere både på EC2-instanser og på en lokal maskin.

Hva er dnsmasq?

DNSmasq er et Linux-relatert verktøy som støtter DNS, DHCP, TFTP og DNS-bufring. Den er laget for å være kompakt og lett, noe som gjør den ideell for nettverk og brannmurer med færre ressursbegrensninger.

Det er utrolig enkelt å installere og konfigurere. For å sette opp DNS og DHCP for subnettverk er dnsmasq en fleksibel og praktisk løsning.

Det er mulig å sette opp disse DHCP-tilordnede identifikatorene og tilhørende instruksjoner for hver server eller for en underliggende kontroller. Dynamiske og statiske DHCP-alternativer støttes begge av dnsmasq. Den er bærbar og har muligheten til å administrere DNS og DHCP for minst 1000 klienter.

Når en DNS-forespørsel mottas, svarer dnsmasq enten fra en lokal hurtigbuffer eller overfører den til en autoritativ DNS-server. I tillegg til å svare på DNS-forespørsler om adresser med DHCP-konfigurasjon, sjekker den innholdet i /etc/hosts-filen for å identifisere lokale vertsnavn som ikke er oppført i den offentlige DNS.

Bruk av dnsmasq-verktøyet i stedet for nettleserens innebygde DNS-cache forbedrer nettlesingsytelsen betraktelig. Den er ideell for et integrert miljø med begrensede ressurser fordi den er veldig enkel å sette opp og trenger svært lite diskplass.

Funksjoner av dnsmasq

  • Det er enkelt å integrere interne DNS-servere ved å bruke dnsmasq ved å konfigurere den til å overføre bestemte domenenavnoppløsningsspørsmål til bestemte autoritative servere.
  • Serverens arbeidsbelastning reduseres og påliteligheten forbedres ved å bruke den konfigurerte lokale DNS-serveren.
  • DNS-konfigurasjon for brannmuraktiverte endepunkter er ganske enkel og uavhengig av DNS-en som brukes av Internett-leverandøren.
  • Hvis porten koblet til Internett er utilgjengelig mens du utfører en DNS-kontroll på datamaskinen, vil oppslagsoperasjonen bli stanset umiddelbart.
  • Gjennom PPP (Point-to-point protocol) eller DHCP-spørringer kan dnsmasq virkelig konfigureres til å periodisk samle inn data direkte fra den underliggende domeneoppløsningsserveren.
  Slik laster du ned Apple TV+-programmer på iPhone, iPad og Mac

Installasjon

Den systemløste tjenesten må slås av før du installerer og konfigurerer dnsmasq-verktøyet.

systemctl stop systemd-resolved

Du kan også skjule det ved å bruke mask-attributtet slik at det ikke starter automatisk når du starter på nytt.

 systemctl mask systemd-resolved

Installering av dnsmasq er den første handlingen du må utføre etter å ha slått av systemd-resolved. DNSmasq kommer forhåndsinstallert i nesten alle Linux-distribusjoner. Hvis ikke kan du installere det manuelt. Start en kommandoterminal, og skriv deretter inn følgende kommando for å gjøre det.

sudo apt-get install dnsmasq

Bruk følgende kommando hvis du er en yum-bruker:

sudo yum install -y dnsmasq

Denne kommandoen installerer automatisk verktøyet og starter dnsmasq i bakgrunnen.

Etter vellykket installasjon kan du sjekke statusen til dnsmasq ved å bruke kommandoen nedenfor.

systemctl status dnsmasq

Hvis den viser statusen som «aktiv (kjører)», betyr det at installasjonen er ferdig og konfigurert til port 53. Hvis den viser statusen som «inaktiv (død)», må du starte både Ubuntu-maskinen og dnsmasq på nytt. Dette vil fikse feilen.

Konfigurasjon

Dnsmasq er nå klar til å settes opp på maskinen din som den lokale caching DNS-serveren. Standard konfigurasjonsfil er plassert på /etc/dnsmasq.conf. Denne konfigurasjonsfilen må endres for å sette opp dnsmasq-verktøyet i systemet.

Bruk denne kommandoen til å åpne og redigere konfigurasjonsfilen.

nano /etc/dnsmasq.conf

Konfigurasjonsfilen må bare redigeres med root-rettigheter. Bare fjern alt i filen, inkludert kommentarer, og kopier og lim inn og lagre denne konfigurasjonsinnstillingen.

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

La meg kort beskrive hva hver av parameterne betyr.

  • Port – For å spesifisere eller binde porten som Dnsmasq vil bruke for å motta DNS-forespørsler.
  • domene-nødvendig – overfører kun domenenavnene til oppstrøms DNS-serveren.
  • bogus-priv – forhindrer videresending av domene og porter
  • lytte-adresse – For å definere navneserveradressen. Vanligvis brukes den lokale verten som standard for å sette opp en lokal DNS-server.
  • domene – For å konfigurere domenene som dnsmasq legger til korte identifikatorer.
  • cache-size – Den maksimale DNS-bufringsstørrelsen som er tillatt i lagring.
  18 markedsplasser for å jakte på ditt første ikke-fungerbare token

Etter å ha utført alle nødvendige endringer, lagre og lukk konfigurasjonsfilen. Og neste trinn er å redigere filen /etc/resolv.conf for å legge til den lokale vertsoppløsningsadressen. Bruk kommandoen nedenfor for å åpne med nano-editoren.

nano /etc/resolv.conf

Her kan du finne alle navneserverne systemet ditt bruker for adresseoppløsning. I den listen legger du også til loopback-adressen. Legg til «navneserver 127.0.0.1» og behold den på første linje.

Lagre og avslutt konfigurasjonsfilen. For at den oppdaterte innstillingen skal tre i kraft, start dnsmasq-verktøyet på nytt.

systemctl restart dnsmasq

Tester lokal DNS-bufferserver

Det er enkelt å teste den lokale DNS-serveren. Åpne en kommandolinje og bruk dig-kommandoen for å se etter DNS-bufring. Når du kjører dig-kommandoen for første gang, burde resultatet være ganske vanlig.

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

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

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

Her, vær oppmerksom på at spørretiden er ca. 31 msek for å spørre detaljene fra oppstrøms navneserver. Utfør den samme gravekommandoen en gang til, og du vil merke en betydelig reduksjon i spørretiden.

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

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

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

Her er spørretiden 0 msek. Dette skyldes det faktum at etter å ha utført det første søket, lagret dnsmasq dataene, og alle senere utførte oppslag var øyeblikkelig på grunn av bruken av den lagrede cachen. Å starte dnsmasq på nytt er nødvendig hvis du vil slette den lagrede DNS-bufferen.

Innpakning

I denne artikkelen har vi sett hvordan du setter opp og konfigurerer dnsmasq til å fungere som en lokal DNS-server. Du kan også være interessert i å lære om hvordan du endrer DNS-servere for raskere surfing i forskjellige operativsystemer.