Instalarea unui server DNS de cache sub Windows. Ne facem propriul DNS local (PDNSD), cu blackjack și mai rapid decât Google Public DNS. Cursuri online pe Mikrotik

Un cache DNS este o bază de date temporară care stochează informații despre căutările DNS anterioare. Cu alte cuvinte, ori de câte ori vizitați un site web, sistemul de operare și browserul dvs. web vor păstra o înregistrare a domeniului și a adresei IP corespunzătoare. Acest lucru elimină nevoia de interogări repetate către serverele DNS la distanță și permite sistemului de operare sau browser-ului să rezolve rapid adresele URL ale site-urilor web.

Cu toate acestea, în unele situații, cum ar fi depanarea problemelor de rețea sau după schimbarea soluțiilor DNS, trebuie să ștergeți memoria cache DNS. Aceasta va șterge înregistrările DNS din cache și va efectua căutări ulterioare pentru a rezolva domeniul pe baza setărilor DNS nou configurate.

Acest articol oferă instrucțiuni pentru ștergerea memoriei cache DNS pe diferite sisteme de operare și browsere web.

Ștergeți/ștergeți memoria cache DNS în Windows

Procesul de ștergere a memoriei cache DNS este același pentru toate versiunile de Windows. Trebuie să deschideți un prompt de comandă cu drepturi de administrator și să rulați ipconfig /flushdns.

Windows 10 și Windows 8

Pentru a șterge memoria cache DNS pe Windows 10 și 8, urmați acești pași:

  1. Tastați cmd în bara de căutare Windows.
  2. ipconfig /flushdns

    Windows 7

    Pentru a șterge memoria cache DNS în Windows 7, urmați acești pași:

    1. Faceți clic pe butonul Start.
    2. Tastați cmd în caseta de text de căutare din meniul Start.
    3. Faceți clic dreapta pe Command Prompt și selectați Executare ca administrator. Aceasta va deschide o fereastră de prompt de comandă.
    4. La promptul de comandă, tastați următoarea linie și apăsați Enter:

      ipconfig /flushdns

      Dacă are succes, sistemul va returna următorul mesaj:

      Configurația IP Windows a șters cu succes memoria cache a soluției DNS.

    Ștergeți/ștergeți memoria cache DNS în Linux

    Linux nu are cache DNS la nivel de sistem de operare decât dacă este instalat și rulat un serviciu de stocare în cache, cum ar fi Systemd-Resolved, DNSMasq sau Nscd. Procesul de ștergere a memoriei cache DNS diferă în funcție de serviciul de distribuție și de stocare în cache pe care îl utilizați.

    Systemd Rezolvat

    Cele mai multe distribuții Linux moderne, cum ar fi , folosesc un serviciu activat de sistem pentru a stoca în cache înregistrările DNS.

    Pentru a afla dacă serviciul rulează, rulați:

    sudo systemctl este activ systemd-resolved.service

    Dacă serviciul rulează, comanda se va imprima activă, în caz contrar veți vedea inactiv.

    Pentru a șterge memoria cache DNS Systemd Resolved, trebuie să introduceți următoarea comandă.

    sudo systemd-resolve --flush-caches

    Dacă are succes, comanda nu returnează niciun mesaj.

    Dnsmasq

    Dnsmasq este un server ușor de memorare a numelor DHCP și DNS.

    Dacă sistemul dvs. folosește DNSMasq ca server de cache, pentru a șterge memoria cache DNS, trebuie să reporniți serviciul Dnsmasq:

    sudo systemctl reporniți dnsmasq.service

    reporniți serviciul sudo dnsmasq

    Nscd

    Nscd este un demon de stocare în cache și este sistemul de stocare în cache DNS ales pentru majoritatea distribuțiilor bazate pe RedHat.

    Dacă sistemul dvs. utilizează Nscd, va trebui să reporniți serviciul Nscd pentru a șterge memoria cache DNS:

    sudo systemctl reporniți nscd.service

    sudo service nscd restart

    Ștergeți/ștergeți memoria cache DNS pe MacOS

    Comanda de golire a memoriei cache în MacOS este ușor diferită în funcție de versiunea pe care o utilizați. Comanda trebuie rulată ca utilizator cu drepturi de administrator de sistem (utilizator sudo).

    Pentru a șterge memoria cache DNS pe MacOS, urmați acești pași:

    1. Deschide Finder.
    2. Accesați Aplicații > Utilități > Terminal. Aceasta va deschide o fereastră de terminal.
    3. La promptul de comandă, tastați următoarea linie și apăsați Enter:

      sudo killall -HUP mDNSResponder

      Introduceți parola sudo și apăsați din nou pe Enter. Dacă are succes, sistemul nu returnează niciun mesaj.

    Pentru versiunile anterioare de MacOS, comanda de golire a memoriei cache este diferită.

    MacOS versiunile 10.11 și 10.9

    sudo dscacheutil -flushcache sudo killall -HUP mDNSResponder

    MacOS versiunea 10.10

    sudo discoveryutil mdnsflushcache sudo discoveryutil udnsflushcache

    MacOS versiunile 10.6 și 10.5

    sudo dscacheutil -flushcache

    Ștergeți/ștergeți memoria cache DNS a browserului

    Majoritatea browserelor web moderne au un client DNS încorporat care previne interogările duplicate de fiecare dată când vizitați un site web.

    Google Chrome

    Pentru a șterge memoria cache DNS din Google Chrome, urmați acești pași:

    1. Deschideți o filă nouă și introduceți în bara de adrese Chrome: chrome://net-internals/#dns.
    2. Faceți clic pe butonul Clear Host Cache.

    Dacă acest lucru nu funcționează pentru dvs., încercați să vă ștergeți memoria cache și cookie-urile.

    1. Apăsați CTRL+Shift+Del pentru a deschide caseta de dialog Clear Browsing Data.
    2. Selectați un interval de timp. Selectați „Tot timpul” pentru a șterge totul.
    3. Bifați casetele „Cookie-uri și alte date de site” și „Imagini și fișiere stocate în cache”.
    4. Faceți clic pe butonul „Ștergeți datele”.

    Această metodă ar trebui să funcționeze pentru toate browserele bazate pe Chrome, inclusiv pentru Chromium, Vivaldi și Opera.

    FireFox

    Pentru a șterge memoria cache DNS a Firefox, urmați acești pași:

    1. În colțul din dreapta sus, faceți clic pe pictograma hamburger ☰pentru a deschide meniul Firefox:
    2. Faceți clic pe linkul ⚙ Opțiuni (Preferințe).
    3. Faceți clic pe fila „Confidențialitate și securitate” sau „Confidențialitate” din stânga.
    4. Derulați în jos la secțiunea Istoric și faceți clic pe butonul Șterge istoricul...
    5. Selectați un interval de timp de șters. Selectați „Toate” pentru a șterge totul.
    6. Selectați toate câmpurile și faceți clic pe Ștergeți acum.

    Dacă acest lucru nu funcționează pentru dvs., încercați următoarea metodă și dezactivați temporar memoria cache DNS.

    1. Deschideți o filă nouă și introduceți about:config în bara de adrese Firefox.
    2. Găsiți network.dnsCacheExpiration, setați temporar valoarea la 0 și faceți clic pe OK. După aceea, modificați valoarea implicită și faceți clic pe OK.
    3. Găsiți network.dnsCacheEntries, setați temporar valoarea la 0 și faceți clic pe OK. După aceea, modificați valoarea implicită și faceți clic pe OK.

    Concluzie

    Ați învățat cum să ștergeți sau să goliți memoria cache DNS pe sistemele de operare Windows, Linux și MacOS.

    Linux și MacOS pot folosi comanda dig pentru a interoga DNS și pentru a depana problemele DNS.

    Dacă aveți întrebări sau feedback, nu ezitați să lăsați un comentariu.

În fiecare an, viteza internetului - atât ultimul kilometru, cât și canalele principale - devine mai mare. Un singur lucru este constant - latența a atins deja limitele fizice: viteza luminii în fibra optică este de aproximativ 200 de mii de kilometri pe secundă și, în consecință, mai repede de ~ 150 ms, un răspuns de la un server de peste Oceanul Atlantic nu poate fi primit în viitor previzibil (deși, desigur, există delicii, cum ar fi fibra optică cu miez de aer sau comunicație prin releu radio, dar acest lucru este greu accesibil simplilor muritori).

Când încercăm, de exemplu, din Rusia să deschidem un site web situat în SUA (serverele sale NS sunt probabil acolo), iar domeniul nu se găsește în memoria cache DNS al furnizorului dvs., va trebui să așteptăm mult chiar și pe un internet gigabit, poate chiar o secundă întreagă: în timp ce noi peste ocean vom primi numele serverelor NS ale domeniului, în timp ce le vom rezolva IP-ul, în timp ce vom trimite și primi cererea DNS în sine...

În urmă cu câțiva ani, Google și-a lansat serverele DNS publice și, pentru a promova tranziția către acestea, a dezvoltat un utilitar numit NameBench, care rulează teste DNS pe istoricul dvs. de navigare și arată cât de rapid este DNS Google decât serverul DNS al furnizorului dvs.

Dar am reușit să-mi fac propriul server DNS care funcționează mai rapid decât Google Public DNS și în această scurtă notă vreau să împărtășesc rezultatele.

PDNSD

pdnsd- cache proxy DNS. Pe lângă stocarea banală în cache a cererilor DNS (cu capacitatea de a seta strict TTL minim - acest lucru poate fi necesar pe un internet foarte slab), poate trimite o solicitare simultan către mai multe servere DNS „părinte” și poate oferi clientului primul răspuns returnat.

Includerea sondajului paralel este cea care ne oferă principalul avantaj în ceea ce privește viteza, deoarece când se găsește un rezultat în memoria cache a oricărui furnizor, obținem rezultatul foarte repede și nu așteptăm o rezoluție completă și lentă dacă primul furnizor nu are un răspuns în cache.

Instalat în Ubuntu folosind banal apt-get.

Câteva puncte din config

global ( perm_cache=10240; //Dimensiunea maximă a memoriei cache în kiloocteți. //În mod implicit a fost 1024, toate înregistrările mele nu se potriveau. cache_dir="/var/cache/pdnsd"; [...] min_ttl=60m; // Timp minim pentru stocarea unei intrări în cache. // Chiar dacă TTL-ul ajunge în mai puțin de 60 de minute, va fi de 60 de minute max_ttl=1w; // Timpul maxim pentru salvarea unei intrări în cache neg_ttl=5m; // Timp pentru stocarea în cache a răspunsurilor negative (adică dacă domeniul nu este găsit) [..] par_queries=3; //Numărul de servere DNS „părinte” interogate simultan) server (etichetă = „principal”; ip = 85.21.192.5 //Acolo sunt 4 servere, dacă primele 3 nu răspund, atunci o solicitare va fi trimisă către 4th, 213.234.192.7 //Primele 2 servere sunt serverul furnizorului dvs., iar unele învecinate, 8.8.4.4 //Acesta este Google Public DNS - pun în cache totul rar și se rezolvă rapid, 8.8.8.8 ; [.. ] )

În principiu, stocarea în cache poate fi făcută mai puțin agresivă (min_ttl=1m de exemplu), dar pe parcursul unui an de funcționare nu au apărut probleme speciale. În caz de probleme, puteți șterge opțional o intrare din cache:
sudo pdnsd-ctl record 3.14.by ștergere sau toate odată:
sudo pdnsd-ctl empty-cache

Rezultatele testului în NameBench



Vedem că pentru 50% dintre solicitări primim un răspuns în mai puțin de 10 ms, pentru 85% Google Public DNS este mai rapid, iar apoi rezultatele coincid în mod firesc cu Google.

Pe baza rezultatelor testelor, NameBench ne raportează cu plăcere:

8.8.8.8 Replica mai lentă a SYS-192.167.0.98 8.8.4.4 Replica mai lentă a SYS-192.167.0.98

Astfel, un proxy DNS de cache inteligent cu interogări paralele vă permite să accelerați chiar și un internet de 100 de megabiți. Iar pentru legăturile lente (radio) cu latență mare și pierderi de pachete, diferența poate fi ca cerul și pământul.

Imaginează-ți cum ar fi dacă ar trebui să ne amintim IP-adresele tuturor site-urilor web pe care le folosim zilnic. Chiar dacă am avea o memorie uimitoare, procesul de navigare către un site web ar fi ridicol de lent și laborios.

Dar dacă trebuie să vizităm mai multe site-uri web sau să folosim mai multe aplicații care se află pe același computer sau pe același gazdă virtuală? Aceasta va fi una dintre cele mai mari dureri de cap imaginabile - ca să nu mai vorbim de posibilitatea schimbării IP-adresele asociate site-ului sau aplicației fără notificare prealabilă.

Doar gândul la asta ar fi un motiv suficient pentru a nu mai folosi internetul sau intranet-urile după un timp.

Aceasta este o lume fără Sistemul de Nume de Domeniu (cunoscut și ca DNS). Din fericire, acest serviciu rezolvă toate problemele menționate mai sus, chiar dacă conexiunea dintre IP-schimbări de adresă și nume de domeniu.

Din acest motiv, în acest articol vom învăța cum să configuram și să folosim un simplu DNS-server, un serviciu care vă va permite să traduceți nume de domenii în IP-adrese si invers.

Rezoluții de nume DNS

Pentru rețelele mici care nu fac obiectul unor modificări frecvente, fișierul /etc/hosts poate fi folosită ca metodă rudimentară pentru determinarea numelui de domeniu de rezolvat IP-adrese.

Acest fișier, folosind o sintaxă foarte simplă, vă permite să asociați un nume (și/sau alias) cu IP-abordare. Acest lucru se face după cum urmează:

De exemplu,

192.168.0.1 gateway gateway.mydomain.com 192.168.0.2 web web.mydomain.com

În acest fel, puteți contacta mașina web fie prin nume web.mydomain.com, sau conform ei IP-abordare.

Pentru rețelele mari sau cele care fac obiectul unor modificări frecvente, folosiți fișierul /etc/hosts pentru a rezolva numele de domenii pe IP-adresele nu vor fi o solutie acceptabila. Aici apare nevoia unui serviciu special.

Să mergem în culisele muncii DNS. DNS-serverul solicită o bază de date mare sub forma unui arbore, care începe de la rădăcină ( «.» ) zone.

Următoarea figură ne va ajuta să înțelegem despre ce vorbim:

Imaginea de mai sus arată zona rădăcinii (.) conţine com, eduȘi net domenii de prim nivel. Fiecare dintre aceste domenii este (sau ar putea fi) gestionat de diferite organizații pentru a evita dependența de unul central mare. Acest lucru vă permite să distribuiți corect interogările în ierarhie.

Să vedem ce se întâmplă:

1. Când un client face o cerere pentru DNS-server pentru web1.sales.me.com, serverul trimite o solicitare la partea de sus (rădăcină) DNS-server care trimite cererea către serverul de nume din zonă .com.

Aceasta, la rândul său, trimite o solicitare către serverul de nume de nivel următor (în zona me.com), și apoi la sales.me.com. Acest proces se repetă de câte ori este necesar până la numele de domeniu complet calificat (FQDN, web1.sales.me.comîn acest exemplu) nu va fi returnat de serverul de nume al zonei în care locuiește.

2. În acest exemplu, serverul de nume în sales.me.com responsabil pentru adresa web1.sales.me.comși returnează asocierea dorită pentru numele de domeniu - IPși alte informații (dacă este configurat pentru aceasta).

Toate aceste informații sunt trimise la sursă DNS-server, care apoi îl transmite înapoi clientului care l-a solicitat. Pentru a evita repetarea acelorași pași pentru viitoare interogări identice, rezultatele interogării sunt stocate pe DNS-Server. Acesta este aspectul important pentru care este de obicei numită o astfel de setare Configurarea serverului DNS de stocare în cache recursivă.

Instalarea și configurarea unui server DNS

ÎN Linux cel mai utilizat DNS-serverul este lega(prescurtare pentru Berkeley Internet Name Daemon), care poate fi instalat după cum urmează:

# yum install bind bind-utils # zypper install bind bind-utils # aptitude install bind9 bind9utils

După ce ne-am instalat legași utilitarele asociate, faceți o copie a fișierului de configurare înainte de a face orice modificări:

# cp /etc/named.conf /etc/named.conf.orig # cp /etc/bind/named.conf /etc/bind/named.conf.orig

Atunci hai să deschidem numit.confși trecem la blocul de parametri, unde trebuie să specificăm următoarele setări pentru serverul de cache recursiv cu IP 192.168.0.18/24, care poate fi accesat doar de gazdele din aceeași rețea (ca măsură de securitate).

Opțiunile zonei de redirecționare sunt folosite pentru a specifica ce servere de nume să interogă mai întâi (în exemplul următor, folosim serverele de nume Google) pentru gazde din afara domeniului nostru:

Opțiuni (... listen-on portul 53 ( 127.0.0.1; 192.168.0.18); allow-query ( localhost; 192.168.0.0/24; ); recursivitate da; forwarders ( 8.8.8.8; 8.8.4.4; ); . ..)

În afara blocului de opțiuni ne vom defini zona sales.me.com(pe Ubuntu, acest lucru se face de obicei într-un fișier separat numit numit.conf.local), care afișează domeniul cu cel dat IP-adresa si zona inversa pentru potrivire IP-adrese către zona corespunzătoare.

Cu toate acestea, configurația reală a fiecărei zone va avea loc în fișiere separate, așa cum este specificat în directiva de fișiere („master” înseamnă că vom folosi un singur server DNS).

Adăugați următoarele rânduri la fișier numit.conf:

Zona „sales.me.com”. IN (tastați master; fișierul „/var/named/sales.me.com.zone”; ); zona "0.168.192.in-addr.arpa" IN ( tip master; fisierul "/var/named/0.162.198.in-addr.arpa.zone"; );

Rețineți că inaddr.arpa(pentru adrese IPv4) și ip6.arpa(pentru IPv6) sunt convenții pentru configurațiile zonei inverse.

După salvarea modificărilor de mai sus în numit.conf putem verifica erori de genul acesta:

# named-checkconf /etc/named.conf

Dacă sunt găsite erori, comanda de mai sus produce un mesaj informațional cu motivul și linia în care sunt găsite. Altfel nu va returna nimic.

Configurarea zonelor DNS

În dosare /var/named/sales.me.com.zoneȘi /var/named/0.168.192.in-addr.arpa.zone vom configura zonele înainte (domeniu → adresă IP) și inversă (adresă IP → domeniu).

Să ne uităm mai întâi la configurația directă:

1. În partea de sus a fișierului veți găsi o linie care începe cu TTL(Prescurtare de la Time To Live), care specifică cât timp trebuie să trăiască un răspuns din cache înainte de a fi înlocuit cu rezultatele unei noi solicitări.

În rândul de mai jos vom trimite la domeniul nostru și vom indica adresa de e-mail de la care trebuie trimise notificările (rețineți că root.sales.me.com mijloace ).

2. Înregistrare SOA(Start of Authority) indică faptul că acest sistem este serverul de nume autorizat pentru mașinile din domeniu sales.me.com.

Dacă aveți două servere de nume (un master și unul slave), următoarele setări sunt necesare pentru fiecare domeniu (deși nu este cazul nostru, deoarece nu este necesar în examen, acestea sunt prezentate aici pentru referință):

Serial folosit pentru a separa o versiune a fișierului de definire a zonei de cea anterioară (unde este posibil ca parametrii să fi fost modificați). Dacă răspunsul din cache indică o ieșire cu un alt Serial, cererea este executată din nou în loc să fie returnată clientului.

Într-o configurare cu un server de nume slave (secundar). Reîmprospăta specifică timpul în care serverul secundar ar trebui să verifice un nou număr de serie de la serverul primar.

In afara de asta, Reîncercați spune serverului cât de des ar trebui să încerce secundarul să contacteze primarul dacă nu primește niciun răspuns de la primar, în timp ce Expira indică când o definiție de zonă în modul secundar nu mai este valabilă după ce nu mai este posibil să primiți un răspuns de la serverul primar și negativ TTL este timpul în care un domeniu inexistent nu este stocat în cache ( NXdomain).

3. N.S.- intrarea indică faptul că este autoritar DNS-server pentru domeniul nostru (care este indicat de semnul @ la începutul liniei).

4. Înregistrare A(pentru adrese IPv4) sau aaaa(pentru adrese IPv6) rezolvă numele la IP-adrese.

În exemplul de mai jos:

Dns: 192.168.0.18 (serverul DNS în sine) web1: 192.168.0.29 (un server web în interiorul zonei sales.me.com) mail1: 192.168.0.28 (un server de e-mail în interiorul zonei sales.me.com) mail2: 192.168 .0.30 (un alt server de e-mail)

5. Înregistrare MX specifică numele agenților de transfer de e-mail (MTA) autorizați pentru acest domeniu. Numele de gazdă trebuie să fie precedat de un număr care să indice prioritatea pe care ar trebui să o aibă serverul de e-mail curent dacă există două sau mai multe MTA pentru un domeniu (cu cât valoarea este mai mică, cu atât prioritatea este mai mare) în exemplul următor, mail1 este de bază, în timp ce mail2 este secundar MTA).

6. Înregistrare CNAME setează un alias (www.web1) pentru gazdă (web1).

IMPORTANT: prezența unui punct este importantă (.) la sfârşitul numelor.

$TTL 604800 @ IN SOA sales.me.com. root.sales.me.com. (2016051101; Serial 10800; Reîmprospătare 3600; Reîncercați 604800; Expiră 604800) ; TTL negativ; @ ÎN NS dns.sales.me.com. dns IN A 192.168.0.18 web1 IN A 192.168.0.29 mail1 IN A 192.168.0.28 mail2 IN A 192.168.0.30 @ IN MX 10 mail1.sales.me.com. @ IN MX 20 mail2.sales.me.com. www.web1 ÎN CNAME web1

Să ne uităm la configurația zonei inverse (/var/named/0.168.192.in-addr.arpa.zone). Record SOA la fel ca în fișierul anterior, în timp ce ultimele trei rânduri cu intrarea PTR(pointer) indică ultimul octet din adresa gazdei IPv4 mail1, web1Și mail2(192.168.0.28, 192.168.0.29, respectiv 192.168.0.30).

$TTL 604800 @ IN SOA sales.me.com. root.sales.me.com. (2016051101; Serial 10800; Reîmprospătare 3600; Reîncercați 604800; Expiră 604800) ; TTL minim @ IN NS dns.sales.me.com. 28 ÎN PTR mail1.sales.me.com. 29 ÎN PTR web1.sales.me.com. 30 ÎN PTR mail2.sales.me.com.

Puteți verifica fișierele de zonă pentru erori:

# named-checkzone sales.me.com /var/named/sales.me.com.zone # named-checkzone 0.168.192.in-addr.arpa /var/named/0.168.192.in-addr.arpa.zone

Următoarea captură de ecran arată care este rezultatul așteptat:

În caz contrar, veți primi un mesaj de eroare și sfaturi despre cum să o rezolvați:

După ce ați verificat fișierul de configurare principal și fișierele de zonă, reporniți serviciul numit pentru a aplica modificările.

ÎN CentOSȘi openSUSE do:

# systemctl restart numit

Și nu uitați să îl includeți și:

# activare systemctl numită

ÎN Ubuntu:

$ sudo service bind9 reporniți

În cele din urmă, va trebui să editați configurația principalelor interfețe de rețea:

În /etc/sysconfig/network-scripts/ifcfg-enp0s3 pentru CentOS și openSUSE ---- DNS1=192.168.0.18 ---- În /etc/network/interfaces pentru Ubuntu ---- dns-nameservers 192.168.0.18

Acum reporniți serviciul de rețea pentru a aplica modificările.

Testarea serverului DNS

În acest moment suntem gata să cerem DNS-server pentru nume și adrese locale și externe. Următoarele comenzi vor reveni IP-adresa asociata gazdei web1:

# gazdă web1.sales.me.com # gazdă web1 # gazdă www.web1

Cum putem afla pentru cine procesează e-mailurile sales.me.com? Este ușor de aflat - doar solicitați înregistrări MX pentru domeniu:

# gazdă -t mx sales.me.com

La fel, să facem interogarea inversă. Acest lucru ne va ajuta să aflăm numele IP-adrese:

# gazdă 192.168.0.28 # gazdă 192.168.0.29

Puteți încerca aceleași operațiuni pentru gazde externe:

Pentru a ne asigura că cererile trec efectiv prin intermediul nostru DNS-server, să activăm înregistrarea:

# rndcquerylog

Și verifică fișierul /var/log/messages(pe CentOS și openSUSE):

# gazdă -t mx linux.com # gazdă 8.8.8.8

Pentru a dezactiva înregistrarea în jurnal DNS, introduceți din nou:

# rndcquerylog

ÎN Ubuntu Pentru a activa înregistrarea, va trebui să adăugați următorul bloc independent (același nivel ca și blocul de opțiuni). /etc/bind/named.conf:

Înregistrare (canal query_log (fișier "/var/log/bind9/query.log"; severity dynamic; print-category da; print-severity da; print-time da;); interogări de categorie ( query_log; ); );

Rețineți că fișierul jurnal trebuie să existe și să poată fi scris după nume.

Rezultate

În acest articol, am explicat cum să configurați un sistem recursiv de bază, cache DNS-server și modul de configurare a zonelor pentru un domeniu.

Pentru a asigura funcționarea corectă a dumneavoastră DNS-server, asigurați-vă că activați acest serviciu în firewall (portul TCP 53) așa cum este descris în ("Configurarea Iptables Firewall pentru a activa accesul la distanță la servicii").

.

Cursuri Cisco și Linux cu angajare!

Grăbește-te să aplici! Au mai rămas câteva locuri. Încep grupurile 22 iulie, iar următorul 19 august, 23 septembrie, 21 octombrie, 25 noiembrie, 16 decembrie, 20 ianuarie, 24 februarie.

Ce vei primi?

  • Vă vom ajuta să deveniți un expert în administrarea rețelelor și să obțineți certificate internaționale Cisco CCNA Routing & Switching sau Linux LPI.
  • Oferim un program și un manual dovedit de la experți de la Cisco Networking Academy și Linux Professional Institute, instructori certificați și un tutor personal.
  • Vă vom ajuta să găsiți un loc de muncă și să vă construiți o carieră. 100% dintre absolvenții noștri sunt angajați.

Cum merge antrenamentul?

  • Ținem prelegeri online de seară pe platforma noastră sau studiem personal la biroul din Kiev.
  • Vă vom întreba despre un moment convenabil pentru exersare și adaptare: înțelegem că există puțin timp pentru a studia.
  • Dacă doriți un program individual, îl vom discuta și îl vom implementa.
  • Vom stabili termene clare pentru autoorganizare. Un supervizor personal va contacta pentru a răspunde la întrebări, pentru a vă sfătui și pentru a vă motiva să respectați termenele limită pentru examen.

De asemenea, vă vom ajuta:

Scopul DNS este de a traduce nume de domenii ușor de reținut de oameni în adrese IP pe care computerele le pot înțelege, un proces numit rezoluție de nume. Ce ne va oferi instalarea propriului nostru server DNS de cache? Acest lucru va grăbi puțin răspunsul site-urilor + Linux nu ia foarte bine numele NetBios, dar uneori trebuie să găsești computere sau imprimante într-o rețea locală, dar vrei să o faci după nume.

Reținerea adreselor IP nu este convenabilă și analiza constantă a jurnalului serverului DHCP nu este metoda noastră. În astfel de cazuri aveți nevoie de DNS în rețeaua locală. Instalarea pachetului bind9 în sine nu este dificilă; erorile apar de obicei în etapa configurării acestuia, deoarece După fișierele de configurare a sistemului ușor de citit, o persoană se confruntă cu o sintaxă de neînțeles, care, apropo, este foarte asemănătoare cu limbajul de programare S. serverul va funcționa în interiorul rețelei locale, nu are sens să îl transferați într-un mediu chroot și întreaga instalare durează foarte puțin. Cu aceasta, partea lirică poate fi finalizată, să trecem la instalare și configurare.

Să instalăm serverul DNS Bind9:

# apt - obțineți instalarea bind9

După finalizare, descărcare și instalare, trebuie să-i edităm fișierul de configurare:

#vim /etc/bind/named. conf. Opțiuni

Găsim secțiunea, se află chiar la începutul fișierului de configurare, cu excepția ei, nu există nimic altceva acolo...

opțiuni (directorul „/var/cache/bind”; // Dacă există un firewall între dvs. și serverele de nume dorite// pentru a vorbi, poate fi necesar să remediați firewall-ul pentru a permite mai multe// porturi pentru a vorbi. A se vedea http://www.kb.cert.org/vuls/id/800113// Dacă ISP-ul dvs. a furnizat una sau mai multe adrese IP pentru stabil// servere de nume, probabil că doriți să le utilizați ca expeditori.// Decommentați următorul bloc și introduceți adresele care le înlocuiesc// substituentul tuturor-0. // forwarders ( // 0.0.0.0; // ); auth - nxdomain no ; # conform RFC1035 listen - on - v6 ( any ; ); );

Secțiunea de expeditori este responsabilă de unde va fi trimisă cererea DNS pentru rezoluția numelui dacă nu se află în propria sa bază de date. În ultimul timp nu am fost deloc mulțumit, munca acestor servere cu furnizorul este motivul pentru care puteți conecta cele terțe, de exemplu cele Google, este foarte ușor să vă amintiți IP-ul 8.8.8.8, voi folosi exemplul lui pentru a configurează-l, dar nimeni nu te deranjează să le folosești pe cele care îți plac cel mai mult.

Edităm secțiunea, mai întâi trebuie să eliminați comentariile din ea și să adăugați DNS terță parte, dacă este nevoie să adăugați mai multe servere, de exemplu, în cazul în care serverul Google nu poate rezista solicitărilor dvs. și se defectează :), atunci IP-ul altor servere poate fi scris într-o coloană, apoi puteți obține o toleranță mai mare la erori.

expeditori (8.8.8.8; 193.58.251.251; //Serviciul DNS rusesc -SkyDNS};

În această secțiune este mai bine să introduceți IP-ul serverului pe care l-ați specificat în fișier /etc/resolv.conf sau introduceți-l în secțiune server de nume acest IP. Salvați modificările și ieșiți. Reporniți serverul și verificați. Introducem în linia de comandă nslookup mail.ru
Ar trebui să scoată:

Răspuns neautorizat: Nume: e-mail. ru Adrese: 94.100.191.202

Acest lucru sugerează că serverul nostru nu este cel principal în deservirea acestei zone (mail.ru), dar a adăugat solicitări în cache!
Acum trebuie să creăm o zonă DNS pentru rețeaua noastră, astfel încât mașinile să poată găsi diverse servicii de rețea - ar putea exista, de exemplu, imprimante de rețea, acestea pot fi fie independente, fie partajate pe alte stații de lucru.
Zona noastră poate fi numită orgname – adică Numele organizației.
În primul rând, creăm o zonă, pentru aceasta vom edita numit.conf.local

#vim /etc/bind/named. conf. local

și adăugați următoarele:

zona „orgname” ( tip master ; fișier „/etc/bind/db.orgname” ; );

Salvează și ieși
Acum trebuie să creăm un fișier de configurare a zonei

# vim / etc / bind / db . orgname

și lipiți următoarele în el:
(Vă rugăm să acordați o atenție deosebită sintaxei fișierului de configurare, chiar și punctele au sens)

@IN SOA orgname. rădăcină. orgname. (20101015 4h; timp de actualizare - 4 ore 1h; repetă la fiecare oră 1w; cât timp se stochează informațiile - 1 săptămână 1d); TTL (time to live) al unei înregistrări este de 1 zi @ IN NS orgname. ; numeserver @ IN A 192.168.10.1 ; A - înregistrare - adresa IP a serverului nostru DNS care deservește această zonă, @ înseamnă că aceasta este zona rădăcină. * ÎN CNAME @ imprimantă ÎN A 192.168.10.25 ; Puteți crea o înregistrare DNS pentru o imprimantă de rețea situată la 192.168.10.25

Acum, când adăugați un nou dispozitiv de rețea, trebuie să faceți 2 lucruri:
1) Rezervați o adresă IP pe un server DHCP, puteți citi despre cum să faceți acest lucru în articolul - Configurarea unui server DHCP
2) Creați o zonă DNS pentru acest IP, introduceți numele dispozitivului ÎN A XXX.XXX.XXX.XXX. Unde: devicename este numele de rețea al dispozitivului; XXX.XXX.XXX.XXX este adresa sa IP care este rezervată pe serverul DHCP.

acum trebuie să edităm fișierul resolv.conf

# vim / etc / rezoluție . conf

si intra acolo:

serverul de nume 127.0.0.1

tot ce era acolo poate fi comentat punând #
serverul repornește

# reporniți

Acest lucru s-a făcut astfel încât serverul să caute totul în propria bază de date și numai atunci BIND va redirecționa cererile către serverul 8.8.8.8 IP al cărui IP este inclus în directivă. expeditori.
Acum puteți verifica funcționalitatea:
Dacă testarea are loc sub Windows:

ping nume dispozitiv. orgname

Dacă testăm de pe Linux:

ping nume dispozitiv. orgname - c 4

Pingurile ar trebui să ajungă la adresa IP pe care ați specificat-o în loc de XXX.XXX.XXX.XXX

De asemenea, puteți verifica viteza de procesare a cererilor cu comanda săpa

# dig @127.0.0.1 tut.by ;<<>> DiG 9.9.5-9+deb8u6-Debian<<>> @127.0.0.1 tut.by ; (1 server găsit) ;; opțiuni globale: +cmd ;; Am răspuns: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63893 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 4, AUTHORITY: 13, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;tut.by. IN A ;; ANSWER SECTION: tut.by. 103 IN A 178.172.160.5 tut.by. 103 IN A 178.172.160.4 tut.by. 103 IN A 178.172.160.2 tut.by. 103 IN A 178.172.160.3 ;; AUTHORITY SECTION: . 6029 IN NS i.root-servers.net. . 6029 IN NS b.root-servers.net. . 6029 IN NS m.root-servers.net. . 6029 IN NS k.root-servers.net. . 6029 IN NS e.root-servers.net. . 6029 IN NS d.root-servers.net. . 6029 IN NS j.root-servers.net. . 6029 IN NS g.root-servers.net. . 6029 IN NS l.root-servers.net. . 6029 IN NS f.root-servers.net. . 6029 IN NS h.root-servers.net. . 6029 IN NS a.root-servers.net. . 6029 IN NS c.root-servers.net. ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Tue Mar 22 16:46:24 MSK 2016 ;; MSG SIZE rcvd: 310

DNS (Domain Name System) este o componentă importantă și destul de greu de configurat necesară pentru funcționarea site-urilor web și a serverelor. Mulți utilizatori folosesc servere DNS furnizate de furnizorul lor de găzduire, dar deținerea propriilor servere DNS are unele avantaje.

În acest tutorial, veți învăța cum să instalați Bind9 și să-l configurați ca server DNS de cache sau de redirecționare pe un server Ubuntu 14.04.

Cerințe

  • Înțelegerea tipurilor de bază de servere DNS. Puteți afla mai multe detalii la.
  • Două mașini, dintre care cel puțin una rulează Ubuntu 14.04. Prima mașină va fi configurată ca client (adresa IP 192.0.2.100), iar a doua ca server DNS (192.0.2.1).

Veți învăța cum să configurați o mașină client pentru a trimite interogări printr-un server DNS.

Memorarea în cache a serverului DNS

Serverele de acest tip sunt numite și rezolutori, deoarece procesează interogări recursive și pot căuta de obicei date DNS față de alte servere.

Când un server DNS de stocare în cache monitorizează răspunsul la o interogare client, acesta returnează răspunsul clientului și, de asemenea, îl stochează în cache pentru perioada de timp permisă de valoarea TTL a înregistrărilor DNS corespunzătoare. Cache-ul poate fi apoi folosit ca sursă de răspunsuri la solicitările ulterioare pentru a accelera timpul general de procesare a cererii.

Aproape toate serverele DNS din configurația dvs. de rețea vor fi servere de stocare în cache. Un server DNS de stocare în cache este o alegere bună pentru multe situații. Dacă nu doriți să vă bazați pe serverele DNS ale furnizorului dvs. de găzduire sau pe alte servere DNS publice, configurați-vă propriul server DNS de cache. Cu cât distanța de la serverul DNS la mașinile client este mai mică, cu atât este mai scurt timpul necesar pentru deservirea cererilor DNS.

Redirecționare server DNS

Din perspectiva unui client, un server DNS de redirecționare va arăta aproape identic cu un server de cache, dar mecanismele și volumul de lucru sunt complet diferite.

Un server DNS de redirecționare are aceleași beneficii ca un server de cache. Cu toate acestea, de fapt nu efectuează nicio interogare recursivă. În schimb, înaintează toate cererile către un server de rezoluție extern și apoi memorează în cache rezultatele pentru cererile ulterioare.

Acest lucru permite serverului de redirecționare să servească cereri din memoria cache fără a fi nevoie să proceseze cereri recursive. Astfel, acest server procesează doar cereri individuale (cereri client redirecționate) și nu întreaga procedură de recursivitate. Acesta poate fi un avantaj în mediile cu lățime de bandă externă limitată, în care serverele de cache trebuie schimbate frecvent și în situațiile în care solicitările locale trebuie direcționate către un server și cererile externe către altul.

1: Instalați Bind pe serverul DNS

Pachetul Bind poate fi găsit în depozitul oficial Ubuntu. Actualizați-vă indexul pachetelor și instalați Bind folosind managerul apt. De asemenea, trebuie să instalați câteva dependențe.

sudo apt-get update
sudo apt-get install bind9 bind9utils bind9-doc

După aceasta, puteți începe configurarea serverului. Configurația serverului de stocare în cache poate fi utilizată ca șablon pentru configurarea serverului de redirecționare, așa că trebuie să configurați mai întâi serverul DNS de stocare în cache.

2: Configurarea unui server DNS de cache

Mai întâi trebuie să configurați Bind ca server DNS de cache. Această configurație va forța serverul să caute recursiv răspunsuri la solicitările clienților pe alte servere DNS. Acesta va interoga secvenţial toate serverele DNS care se potrivesc până când va găsi un răspuns.

Fișierele de configurare Bind sunt stocate în directorul /etc/bind.

Majoritatea fișierelor nu trebuie editate. Fișierul principal de configurare se numește named.conf (named și bind sunt două nume pentru aceeași aplicație). Acest fișier face referire la fișierele named.conf.options, named.conf.local și named.conf.default-zones.

Pentru a configura un server DNS de stocare în cache, trebuie doar să editați named.conf.options.

sudo nano named.conf.options

Acest fișier arată astfel (comentariile au fost omise pentru simplitate):

Opțiuni (
directorul „/var/cache/bind”;
dnssec-validation auto;

listen-on-v6 ( oricare; );
};

Pentru a configura un server de stocare în cache, trebuie să creați o listă de control al accesului sau ACL.

Trebuie să protejați serverul DNS care procesează interogări recursive de la atacatori. Atacurile de amplificare DNS sunt deosebit de periculoase, deoarece pot implica serverul în atacuri distribuite de denial of service.

Atacurile de amplificare DNS sunt o modalitate de a distruge serverele și site-urile web. Pentru a face acest lucru, atacatorii încearcă să găsească servere DNS publice care procesează interogări recursive. Ei falsifică adresa IP a victimei și trimit o solicitare care va returna un răspuns foarte mare serverului DNS. În acest caz, serverul DNS returnează prea multe date către serverul victimei ca răspuns la o cerere mică, crescând lățimea de bandă disponibilă a atacatorului.

Găzduirea unui server DNS recursiv public necesită o configurare și o administrare atentă. Pentru a preveni piratarea serverului, configurați o listă de adrese IP sau intervale de rețea în care serverul poate avea încredere.

Înainte de blocarea opțiunilor, adăugați un bloc acl. Creați o etichetă pentru grupul ACL (în acest tutorial grupul se numește goodclients).

acl goodclients (
};
Opțiuni (
. . .

În acest bloc, enumerați adresele IP sau rețelele care vor avea acces la acest server DNS. Deoarece serverul și clientul rulează pe subrețeaua /24, puteți restricționa accesul la această subrețea. De asemenea, trebuie să deblocați localhost și localnets, care se conectează automat.

acl goodclients (
192.0.2.0/24;
gazdă locală;
localnets;
};
Opțiuni (
. . .

Acum aveți un ACL client securizat. Puteți începe configurarea rezoluției cererii în blocul de opțiuni. Adăugați următoarele rânduri la acesta:

Opțiuni (
directorul „/var/cache/bind”;
recursivitate da;

. . .

Blocul de opțiuni activează în mod explicit recursiunea și apoi configurează opțiunea de interogare permisă pentru a utiliza ACL. De asemenea, puteți utiliza un alt parametru, cum ar fi allow-recursion, pentru a face referire la grupul ACL. Când recursiunea este activată, allow-recursion va defini o listă de clienți care pot folosi servicii recursive.

Cu toate acestea, dacă permite recursiunea nu este setată, Bind revine la lista de interogări-permis-cache, apoi la lista de interogări-permite și, în final, la rețelele locale implicite și la listele localhost. Deoarece instalăm doar un server de stocare în cache (nu are propriile sale zone și nu redirecționează interogări), lista de interogări permise se va aplica întotdeauna numai recursiunii. Acesta este cel mai comun mod de a defini un ACL.

Salvați și închideți fișierul.

Acestea sunt toate setările care trebuie adăugate la fișierul de configurare a serverului DNS de cache.

Notă: Dacă doriți să utilizați doar acest tip de DNS, treceți la verificarea configurațiilor, reporniți serviciul și configurați clientul.

3: Configurarea unui server DNS de redirecționare

Dacă infrastructura dvs. este mai potrivită pentru un server DNS de redirecționare, puteți ajusta puțin configurația.

În prezent, fișierul named.conf.options arată astfel:

acl goodclients (
192.0.2.0/24;
gazdă locală;
localnets;
};
Opțiuni (
directorul „/var/cache/bind”;
recursivitate da;
allow-query (clienți buni;);
dnssec-validation auto;
auth-nxdomain nr; # conform cu RFC1035
listen-on-v6 ( oricare; );
};

Puteți utiliza același ACL pentru a restricționa serverul DNS la o anumită listă de clienți. Cu toate acestea, aceasta necesită o ușoară modificare a configurației, astfel încât serverul să nu mai încerce să execute interogări recursive.

Nu schimba recursiunea la nu. Serverul de redirecționare acceptă în continuare servicii recursive. Pentru a configura un server de redirecționare, trebuie să creați o listă de servere de stocare în cache către care va redirecționa cererile.

Acest lucru se face în blocul options(). Mai întâi, trebuie să creați un nou bloc de redirecționare în el, unde vor fi stocate adresele IP ale serverelor de nume recursive către care doriți să redirecționați cererile. În acest caz, acestea vor fi servere Google DNS (8.8.8.8 și 8.8.4.4):

. . .
Opțiuni (
directorul „/var/cache/bind”;
recursivitate da;
allow-query (clienți buni;);
expeditori (

8.8.8.8;

8.8.4.4;

};
. . .

Configurația rezultată arată astfel:

acl goodclients (
192.0.2.0/24;
gazdă locală;
localnets;
};
Opțiuni (
directorul „/var/cache/bind”;
recursivitate da;
allow-query (clienți buni;);
expeditori (
8.8.8.8;
8.8.4.4;
};
numai înainte;
dnssec-validation auto;
auth-nxdomain nr; # conform cu RFC1035
listen-on-v6 ( oricare; );
};

Ultima modificare se referă la parametrul dnssec. Cu configurația curentă și în funcție de setările serverelor DNS către care sunt redirecționate cererile, în jurnale pot apărea următoarele erori:

25 iunie 15:03:29 cache numită: eroare (chase DS servers) rezolvarea „in-addr.arpa/DS/IN”: 8.8.8.8#53
25 iunie 15:03:29 cache numită: eroare (fără DS valid) la rezolvarea „111.111.111.111.in-addr.arpa/PTR/IN”: 8.8.4.4#53

Pentru a le evita, trebuie să modificați parametrul de validare dnssec la yes și să activați explicit dnssec.

. . .
numai înainte;
dnssec-activare da;
validare dnssec da;
auth-nxdomain nr; # conform cu RFC1035
. . .

Salvați și închideți fișierul. Configurarea serverului DNS de redirecționare este finalizată.

4: Verificați setările și reporniți Bind

Acum trebuie să vă asigurați că setările funcționează conform așteptărilor.

Pentru a verifica sintaxa fișierelor de configurare, introduceți:

sudo named-checkconf

Dacă nu există erori în fișiere, promptul de comandă nu va afișa nicio ieșire.

Dacă primiți un mesaj de eroare, corectați-l și testați din nou.

Apoi puteți reporni demonul Bind pentru a actualiza setările.

reporniți serviciul sudo bind9

Apoi trebuie să verificați jurnalele serverului. Rulați comanda pe server:

sudo tail -f /var/log/syslog

Acum deschideți un nou terminal și începeți configurarea mașinii client.

5: Configurare client

Conectați-vă la computerul client. Verificați dacă clientul a fost listat în grupul ACL al serverului DNS configurat. În caz contrar, serverul DNS va refuza să servească cererile de la acest client.

Editați fișierul /etc/resolv.conf pentru a indica serverul către un server de nume.

Modificările făcute aici vor persista doar până la o repornire, ceea ce este excelent pentru testare. Dacă sunteți mulțumit de rezultatele setărilor de testare, puteți face aceste setări permanente.

Deschideți fișierul cu sudo într-un editor de text:

sudo nano /etc/resolv.conf

Fișierul trebuie să listeze serverele DNS care vor fi utilizate pentru a rezolva interogările. Pentru a face acest lucru, utilizați directiva nameserver. Comentați toate intrările curente și adăugați o linie de server de nume care indică serverul dvs. DNS:

serverul de nume 192.0.2.1
# server de nume 8.8.4.4
# server de nume 8.8.8.8
# server de nume 209.244.0.3

Salvați și închideți fișierul.

Acum puteți trimite o solicitare de testare pentru a vă asigura că se rezolvă corect.

Puteți folosi ping pentru asta:

ping -c 1 google.com
PING google.com (173.194.33.1) 56(84) octeți de date.
64 de octeți de la sea09s01-in-f1.1e100.net (173.194.33.1): icmp_seq=1 ttl=55 time=63.8 ms
--- statistici ping google.com ---
1 pachet transmis, 1 primit, 0% pierdere de pachete, timp 0 ms
rtt min/avg/max/mdev = 63,807/63,807/63,807/0,000 ms

Sus