Si të ekzekutoni serverin tuaj DNS në rrjetin tuaj lokal


Drejtimi i serverit tuaj DNS është një mënyrë e shkëlqyeshme për të përshpejtuar reagimin e rrjetit tuaj, për të reduktuar varësinë tuaj në infrastrukturën publike dhe për të përfituar nga funksionalitete shtesë si drejtimi i emrit të hostit. Ja se si të konfiguroni një server DNS në një makinë Linux duke përdorur Dnsmasq.

Çfarë është DNS?

DNS është sistemi që përkthen një emër domaini si example.com në adresën numerike IP të serverit të tij. Kjo mund të duket si 127.0.0.1. Sa herë që bëni një kërkesë rrjeti duke përdorur një emër domeni, sistemi juaj do të kryejë një kërkim DNS për të përcaktuar adresën e serverit që duhet të kontaktojë.

Kjo shton një shpenzim të përgjithshëm për çdo kërkesë që bëni. Megjithëse pajisja juaj do të ruajë memorien e përgjigjeve DNS, vizitat në domene të reja do të kenë një udhëtim vajtje-ardhje DNS përpara se të fillojë kërkesa aktuale. Kjo ndodh në nivelin e grupit të rrjetit OS, i padukshëm për ju si përdorues.

ISP-të zakonisht ekzekutojnë serverë DNS. Ju ndoshta jeni duke u mbështetur në serverin e ISP-së tuaj nëse jeni duke përdorur cilësimet e paracaktuara në ruterin dhe pajisjet tuaja. Serverë të tjerë publikë DNS janë të disponueshëm nga ofruesit si Cloudflare dhe Google.

Pse të ekzekutoni DNS-në tuaj?

Drejtimi i serverit tuaj DNS ju jep më shumë kontroll mbi rrjetin tuaj. Një motivim i zakonshëm është aftësia për të konfiguruar hartëzimin e domenit në nivel rrjeti, të tilla si serveri në internet192.168.0.101. Konfigurimi i ruterit tuaj për të përdorur DNS-në tuaj do të rezultojë që çdo nga pajisjet tuaja të lidhura të jetë në gjendje të hyjë në 192.168.0.101 nëpërmjet http://web-server.

Pasja e serverit tuaj DNS ju lejon të centralizoni cilësimet në një vendndodhje në vend që t'i zbatoni ato individualisht në /etc/hosts në secilën pajisje. Ato do të zbatohen për gjithçka që lidhni me rrjetin tuaj, duke përfshirë harduerin e integruar i cili nuk ofron asnjë mënyrë tjetër për të personalizuar grumbullin e tij të rrugëtimit.

Një server DNS i brendshëm gjithashtu mund të përmirësojë performancën dhe të sigurojë një shtresë shtesë elasticiteti. Ndërprerjet e DNS në shkallë të gjerë nuk janë të padëgjuara; përdorimi i një serveri të personalizuar me një cache jetëgjatë për shërbimet kritike me të cilat ndërveproni, mund t'ju ndihmojë të kaloni kohën e ndërprerjes në ofruesin tuaj të zgjedhur në rrjedhën e sipërme.

DNS me Dnsmasq

Dnsmasq është një server DNS i lehtë që përfshihet në shumicën e shpërndarjeve Linux. Është gjithashtu jashtëzakonisht e thjeshtë për t'u konfiguruar.

Para se të filloni, ia vlen të mendoni se çfarë funksionaliteti keni nevojë për të ofruar serverin tuaj DNS. Në këtë udhëzues, ne do të shikojmë konfigurimin e Dnsmasq me memorien lokale, disa rrugë të personalizuara të domenit dhe 8.8.8.8 të Google si ofruesi ynë DNS në rrjedhën e sipërme.

Rrjedha e rrugëtimit do të duket si kjo:

  • Ruteri i rrjetit merr një kërkesë nga një prej pajisjeve tuaja të lidhura. Ruteri do të konfigurohet për të përdorur hostin Dnsmasq si serverin e tij DNS.
  • Dnsmasq do të kontrollojë nëse ka një rrugë të përcaktuar për emrin e domenit, si p.sh. Nëse kërkesa ishte për http://web-server/example-page, ajo do të dërgojë 192.168.0.101 përsëri te ruteri.
  • Kur Dnsmasq nuk ka asnjë rrugë që përputhet, ai do ta përcjellë kërkesën DNS te 8.8.8.8 e Google, duke mundësuar zgjidhjen në internetin publik. Kjo siguron që ju ende mund të arrini në ueb më të gjerë kur përdorni DNS-në tuaj.

Nuk do të keni nevojë të bëni ndonjë ndryshim të konfigurimit në pajisjet e klientit tuaj. Gjithçka pas ruterit tuaj do të përfundojë duke bërë pyetje DNS përmes Dnsmasq. Sidoqoftë, vlen të përmendet se të gjitha sistemet operative të njohura të desktopit dhe celularit mbështesin vendosjen e një serveri DNS, kështu që mund të konfiguroni pajisje individuale për të përdorur Dnsmasq pa e aktivizuar atë në nivelin e ruterit.

Fillimi

Ne do të supozojmë se ju keni tashmë një makinë funksionale Linux të gatshme për të pritur Dnsmasq. Dnsmasq nuk është veçanërisht intensiv i burimeve – nëse keni pak pajisje klientësh, ai do të funksionojë lehtësisht në një Raspberry Pi.

Pritësi juaj duhet të ketë një IP statike të caktuar. Prej këtu, IP 192.168.0.1 i referohet serverit Dnsmasq.

Sigurohuni që Dnsmasq të jetë i instaluar:

# Assuming a Debian system
apt update
apt install dnsmasq

Skedari i konfigurimit të Dnsmasq zakonisht gjendet në /etc/dnsmasq.conf. Kjo është e para-populluar me cilësimet fillestare. Duhet të bëhen disa ndryshime që Dnsmasq të funksionojë në mënyrë efektive në një skenar të rrjetit lokal. Ekzekutoni sudo nano /etc/dnsmasq.conf për të hapur skedarin, më pas përdorni shkurtoren e tastierës Ctrl+W për të gjetur dhe çkomentuar rreshtat e mëposhtëm:

#domain-needed
#bogus-priv

Hiqni karakterin # nga fillimi i çdo rreshti. Ja çfarë po mundësojnë këto cilësime:

  • duhet për domen – Kjo e ndalon Dnsmasq të përcjellë emrat lokalë pa një pjesë domeni në serverin DNS në rrjedhën e sipërme. Në instalimin tonë, kjo do të thotë se example.com do të kualifikohet për zgjidhje nëpërmjet Google, por shembull ose serveri në internet nuk do të kualifikohen. Ai rezervon emra pa pika për rrjetin tuaj lokal.
  • bogus-priv – Parandalon përcjelljen e pyetjeve të kërkimit të kundërt të DNS në serverin DNS në rrjedhën e sipërme. Do të thotë që IP-të e brendshme si 192.168.0.101 nuk do t'i ekspozohen kurrë Google. Mosaktivizimi i kësaj mund të rrjedhë pa dashje arkitekturën e rrjetit tuaj të brendshëm te ofruesi juaj në rrjedhën e sipërme.

Për të vendosur serverin tuaj DNS në rrjedhën e sipërme, shtoni një linjë të re në skedarin tuaj të konfigurimit:

server=8.8.8.8
server=4.4.4.4

Kjo udhëzon Dnsmasq të përcjellë pyetjet e pazgjidhura te 8.8.8.8. Nëse ai server nuk është i disponueshëm, në vend të kësaj do të përdoret 4.4.4.4. Këto adresa janë zgjidhësit kryesorë dhe dytësorë për shërbimin DNS të Google.

Më pas rregulloni madhësinë e cache-it. Kjo paracakton një vlerë relativisht të ulët prej 150 kërkesash të ruajtura në memorie. Rritja e kësaj do të lejojë që Dnsmasq të shërbejë më shumë kërkime nga cache, duke reduktuar vonesën e rrjetit. Gjeni rreshtin cache-size, hiqni komentin dhe ndryshoni vlerën e tij:

cache-size=1000

Ruani dhe mbyllni skedarin tani.

Hartimi i emrave të hosteve në IP

Ka disa mënyra të ndryshme për të hartuar emrat e hosteve në adresat e tyre IP. Më e thjeshta është të shtoni hyrje në skedarin ekzistues /etc/hosts të serverit tuaj. Dnsmasq ngarkon automatikisht rregullat nga ky skedar si pjesë e konfigurimit të tij të paracaktuar.

Hapni /etc/hosts dhe shtoni itineraret tuaja në fund të skedarit. Adresa IP vjen së pari, e ndjekur nga emri që duhet caktuar:

192.168.0.101 web-server
192.168.0.105 gateway.lan

Këto rreshta nënkuptojnë se çdo kërkesë për http://web-server do të drejtohet te 192.168.0.101 ndërsa http://gateway.lan do përfundojnë në 192.168.0.5. Ruani dhe mbyllni skedarin kur të keni mbaruar hartografimin e pajisjeve tuaja.

Testimi i serverit tuaj

Rinisni Dnsmasq për të aplikuar të gjitha ndryshimet tuaja:

sudo service dnsmasq restart

Kontrolloni funksionimin e saktë të serverit:

sudo service dnsmasq status

Ju duhet të shihni aktiv (në funksionim) të shfaqur në të gjelbër. Nëse nuk e bëni këtë, kontrolloni linjat e regjistrit në fund të informacionit të statusit për të gjetur se çfarë nuk shkon.

Tani jeni gati për të testuar serverin tuaj. Mund të bëni përpjekje manuale për kërkimin e DNS-së me mjetin dig. Mund t'ju duhet të instaloni së pari paketën dnsutils.

dig google.com @localhost
dig gateway.lan @localhost

Të dyja këto komanda duhet të tregojnë një adresë IP në SEKSIONI PËR PËRGJIGJE. Në rastin e gateway.lan, rezultati duhet të jetë 192.168.0.5 sipas rregullit të rrugëtimit të vendosur në /etc/hosts. Pjesa @localhost e komandave udhëzon dig të kërkojë serverin tuaj lokal DNS.

Konfigurimi i rrjetit tuaj

Hapi i fundit është të konfiguroni ruterin tuaj të rrjetit për të bërë kërkime DNS përmes serverit tuaj Dnsmasq. Hapat për këtë do të ndryshojnë në varësi të pajisjes së rrugëtimit që po përdorni.

Pasi të gjeni faqen e saktë të cilësimeve, vendosni IP-në e serverit tuaj (192.168.0.1 në këtë udhëzues) si serverin kryesor DNS të ruterit. Është një ide e mirë të konfiguroni një ofrues publik DNS, si p.sh. 8.8.8.8 i Google, si server dytësor. Kjo siguron që do të keni akoma akses në internet nëse serveri juaj DNS prishet dhe del jashtë linje.

Tani të gjitha pajisjet e lidhura me ruterin tuaj do të bëjnë pyetje DNS përmes shembullit tuaj Dnsmasq. Ata do të jenë në gjendje të arrijnë pajisjet tuaja me emrat e tyre të caktuar, si p.sh.

konkluzioni

DNS është një temë e ndërlikuar, por Dnsmasq e bën të lehtë funksionimin e një serveri bazë. Ka shumë cilësime të tjera që mund t'i eksploroni pasi të keni funksionuar funksionalitetin kryesor. Këto të lejojnë të filtrosh pyetjet, të menaxhosh reletë dhe përfaqësuesit, të ekzekutosh skriptet kur ndodhin ngjarje dhe të konfigurosh lloje të tjera regjistrimesh DNS, si p.sh. rezultatet MX për serverët e postës.

Dnsmasq zakonisht nuk ka nevojë për shumë ndërhyrje manuale pasi të jetë drejtpërdrejt. Ju mund të monitoroni regjistrat duke përdorur status dnsmasq të shërbimit ose systemctl status dnsmasq. Tani jeni gati të përfitoni nga serveri juaj DNS i vetë-pritur, duke maksimizuar performancën dhe duke ju lejuar të përdorni emrat e brendshëm të domeneve për të arritur pajisjet e rrjetit lokal.