Instaliranje DNS servera za keširanje pod Windowsom. Pravimo vlastiti lokalni DNS (PDNSD), s blackjackom i bržim od Google Public DNS-a. Online kursevi o Mikrotiku

DNS keš memorija je privremena baza podataka koja pohranjuje informacije o prethodnim DNS traženjima. Drugim riječima, kad god posjetite web stranicu, vaš OS i web pretraživač će čuvati evidenciju o domeni i odgovarajućoj IP adresi. Ovo eliminiše potrebu za ponovljenim upitima udaljenim DNS serverima i omogućava vašem OS-u ili pretraživaču da brzo razriješi URL-ove web stranice.

Međutim, u nekim situacijama, kao što je rješavanje problema s mrežom ili nakon promjene DNS razrješavača, morate očistiti DNS keš memoriju. Ovo će obrisati keširane DNS zapise i izvršiti naknadna pretraživanja kako bi se domena riješila na osnovu novokonfiguriranih DNS postavki.

Ovaj članak pruža uputstva za brisanje DNS keša na različitim operativnim sistemima i veb pretraživačima.

Obrišite/izbrišite DNS keš u Windowsu

Proces brisanja DNS keša je isti za sve verzije Windowsa. Morate otvoriti komandnu liniju sa administratorskim pravima i pokrenuti ipconfig /flushdns.

Windows 10 i Windows 8

Da biste obrisali DNS keš memoriju na Windows 10 i 8, slijedite ove korake:

  1. Otkucajte cmd u Windows traku za pretragu.
  2. ipconfig /flushdns

    Windows 7

    Da biste obrisali DNS keš memoriju u Windows 7, slijedite ove korake:

    1. Kliknite na dugme Start.
    2. Otkucajte cmd u tekstualni okvir za pretragu menija Start.
    3. Kliknite desnim tasterom miša na komandnu liniju i izaberite Pokreni kao administrator. Ovo će otvoriti prozor komandne linije.
    4. U komandnoj liniji upišite sljedeći red i pritisnite Enter:

      ipconfig /flushdns

      Ako bude uspješan, sistem će vratiti sljedeću poruku:

      Windows IP konfiguracija Uspješno je isprala DNS Resolver Cache.

    Očisti/izbriši DNS keš u Linuxu

    Linux nema DNS keširanje na nivou OS osim ako nije instaliran i pokrenut servis za keširanje kao što je Systemd-Resolved, DNSMasq ili Nscd. Proces brisanja DNS keš memorije razlikuje se u zavisnosti od usluge distribucije i keširanja koju koristite.

    Systemd Resolved

    Većina modernih Linux distribucija, kao što je , koristi sistemski omogućenu uslugu za keširanje DNS zapisa.

    Da saznate da li je usluga pokrenuta, pokrenite:

    sudo systemctl je-aktivan systemd-resolved.service

    Ako je usluga pokrenuta, naredba će ispisati aktivnu, u suprotnom ćete vidjeti neaktivnu.

    Da obrišete Systemd Resolved DNS keš memoriju, morate unijeti sljedeću naredbu.

    sudo systemd-resolve --flush-caches

    Ako je uspješna, naredba ne vraća nikakvu poruku.

    Dnsmasq

    Dnsmasq je lagani DHCP i DNS server za keširanje imena.

    Ako vaš sistem koristi DNSMasq kao server za keširanje, da biste izbrisali DNS keš memoriju morate ponovo pokrenuti Dnsmasq uslugu:

    sudo systemctl restart dnsmasq.service

    sudo service dnsmasq restart

    Nscd

    Nscd je demon za keširanje i DNS sistem za keširanje po izboru za većinu distribucija baziranih na RedHat-u.

    Ako vaš sistem koristi Nscd, morat ćete ponovo pokrenuti Nscd uslugu da obrišete DNS keš memoriju:

    sudo systemctl restart nscd.service

    sudo service nscd restart

    Obriši/izbriši DNS keš na MacOS-u

    Naredba za brisanje keša u MacOS-u se malo razlikuje ovisno o verziji koju koristite. Naredba se mora pokrenuti kao korisnik sa pravima administratora sistema (sudo korisnik).

    Da obrišete DNS keš memoriju na MacOS-u, slijedite ove korake:

    1. Otvorite Finder.
    2. Idite na Aplikacije > Uslužni programi > Terminal. Ovo će otvoriti prozor terminala.
    3. U komandnoj liniji upišite sljedeći red i pritisnite Enter:

      sudo killall -HUP mDNSResponder

      Unesite svoju sudo lozinku i ponovo pritisnite Enter. Ako je uspješan, sistem ne vraća nikakve poruke.

    Za starije verzije MacOS-a, naredba za brisanje keša je drugačija.

    MacOS verzije 10.11 i 10.9

    sudo dscacheutil -flushcache sudo killall -HUP mDNSResponder

    MacOS verzija 10.10

    sudo discoveryutil mdnsflushcache sudo discoveryutil udnsflushcaches

    MacOS verzije 10.6 i 10.5

    sudo dscacheutil -flushcache

    Obriši/izbriši DNS keš pretraživača

    Većina modernih web pretraživača ima ugrađen DNS klijent koji sprječava duple upite svaki put kada posjetite web stranicu.

    google chrome

    Da izbrišete DNS keš memoriju Google Chromea, slijedite ove korake:

    1. Otvorite novu karticu i upišite u Chrome adresnu traku: chrome://net-internals/#dns.
    2. Kliknite na dugme Clear Host Cache.

    Ako vam ovo ne uspije, pokušajte obrisati keš memoriju i kolačiće.

    1. Pritisnite CTRL+Shift+Del da otvorite okvir za dijalog Clear Browsing Data.
    2. Odaberite vremenski raspon. Odaberite "Sve vrijeme" da izbrišete sve.
    3. Označite okvire "Kolačići i drugi podaci o web lokaciji" i "Keširane slike i datoteke".
    4. Kliknite na dugme "Obriši podatke".

    Ova metoda bi trebala funkcionirati za sve preglednike zasnovane na Chromeu, uključujući Chromium, Vivaldi i Opera.

    FireFox

    Da obrišete Firefoxov DNS keš, slijedite ove korake:

    1. U gornjem desnom uglu kliknite na ikonu hamburgera ☰ da otvorite Firefox meni:
    2. Kliknite na vezu ⚙ Options (Preferences).
    3. Kliknite na karticu "Privatnost i sigurnost" ili "Povjerljivost" na lijevoj strani.
    4. Skrolujte dole do odeljka Istorija i kliknite na dugme Obriši istoriju....
    5. Odaberite vremenski raspon za brisanje. Odaberite "Sve" da izbrišete sve.
    6. Odaberite sva polja i kliknite Očisti sada.

    Ako vam ovo ne uspije, isprobajte sljedeću metodu i privremeno onemogućite DNS keš memoriju.

    1. Otvorite novu karticu i unesite about:config u adresnu traku Firefoxa.
    2. Pronađite network.dnsCacheExpiration, privremeno postavite vrijednost na 0 i kliknite na OK. Nakon toga promijenite zadanu vrijednost i kliknite OK.
    3. Pronađite network.dnsCacheEntries, privremeno postavite vrijednost na 0 i kliknite na OK. Nakon toga promijenite zadanu vrijednost i kliknite OK.

    Zaključak

    Naučili ste kako da obrišete ili ispraznite DNS keš na Windows, Linux i MacOS operativnim sistemima.

    Linux i MacOS mogu koristiti komandu dig za ispitivanje DNS-a i rješavanje problema s DNS-om.

    Ako imate bilo kakvih pitanja ili povratnih informacija, slobodno ostavite komentar.

Svake godine, brzina interneta - i zadnja milja i glavni kanali - postaje sve veća. Samo jedna stvar je konstantna - latencija je već dosegla fizičke granice: brzina svjetlosti u optičkom vlaknu je oko 200 hiljada kilometara u sekundi, a shodno tome, brže od ~150ms, odgovor sa servera preko Atlantskog okeana ne može se primiti u dogledna budućnost (iako, naravno, ima užitaka, poput optičkog vlakna sa vazdušnim jezgrom ili radio relejne komunikacije, ali to je teško dostupno običnim smrtnicima).

Kada pokušamo, na primjer, iz Rusije da otvorimo web stranicu koja se nalazi u SAD-u (njezini NS serveri su vjerovatno tamo), a domen nije pronađen u DNS kešu vašeg provajdera, morat ćemo dugo čekati čak i na gigabitni internet, možda i čitavu sekundu: dok smo preko okeana dobijaćemo imena NS servera domena, dok ćemo im rešavati IP, dok ćemo slati i primati sam DNS zahtev...

Prije nekoliko godina, Google je pokrenuo svoje javne DNS servere, a kako bi promovirali prelazak na njih, razvili su uslužni program pod nazivom NameBench, koji pokreće DNS testove vaše historije surfanja i pokazuje koliko je Google DNS brži od DNS servera vašeg provajdera.

Ali uspio sam napraviti svoj vlastiti DNS server koji radi brže od Google Public DNS-a, i u ovoj kratkoj napomeni želim podijeliti rezultate.

PDNSD

pdnsd- keširanje DNS proxyja. Pored banalnog keširanja DNS zahtjeva (sa mogućnošću strogog postavljanja minimalnog TTL-a - to može biti potrebno na vrlo lošem Internetu), može poslati zahtjev istovremeno na nekoliko "roditeljskih" DNS servera i dati klijentu prvi vraćeni odgovor.

Upravo uključivanje paralelnog glasanja daje nam glavnu prednost u brzini, jer kada se nađe rezultat u kešu nekog od provajdera, rezultat dobijamo vrlo brzo i ne čekamo potpuno i sporo rešavanje ako prvi provajder nema odgovor u kešu.

Instaliran u Ubuntu koristeći banalni apt-get.

Par tačaka u konfiguraciji

global ( perm_cache=10240; //Maksimalna veličina keša u kilobajtima. //Podrazumevano je bila 1024, svi moji zapisi se nisu uklapali. cache_dir="/var/cache/pdnsd"; [...] min_ttl=60m; // Minimalno vrijeme za pohranjivanje unosa u keš. //Čak i ako TTL stigne za manje od 60 minuta, bit će 60 minuta max_ttl=1w; // Maksimalno vrijeme za spremanje unosa u keš neg_ttl=5m; // Vrijeme za keširanje negativnih odgovora (tj. ako domena nije pronađena) [..] par_queries=3; //Broj istovremeno anketiranih "roditeljskih" DNS servera) server ( label = "main"; ip = 85.21.192.5 //Tamo su 4 servera, ako prva 3 ne odgovore, onda će zahtjev biti poslan na 4., 213.234.192.7 //Prva 2 servera su server vašeg provajdera, a neki susjedni, 8.8.4.4 //Ovo je Google javni DNS - keširaju sve rijetko i brzo se rješavaju, 8.8.8.8 ; [.. ] )

U principu, keširanje se može učiniti manje agresivnim (min_ttl=1m na primjer), ali tokom godinu dana rada nisu se pojavili posebni problemi. U slučaju problema, opciono možete izbrisati jedan unos iz keša:
sudo pdnsd-ctl zapis 3.14.by izbrisati ili sve odjednom:
sudo pdnsd-ctl prazan-cache

Rezultati testiranja u NameBench-u



Vidimo da za 50% zahtjeva dobijemo odgovor za manje od 10ms, za 85% Google javni DNS je brži, a onda se rezultati prirodno poklapaju sa Googleom.

Na osnovu rezultata testiranja, NameBench nam sa zadovoljstvom javlja:

8.8.8.8 Sporija replika SYS-192.167.0.98 8.8.4.4 Sporija replika SYS-192.167.0.98

Dakle, pametni DNS proxy za keširanje sa paralelnim upitima omogućava vam da ubrzate čak i 100-megabitni Internet. A za spore (radio) veze sa velikom latencijom i gubitkom paketa, razlika može biti poput neba i zemlje.

Zamislite kako bi bilo kada bismo morali da se sećamo IP-adrese svih web stranica koje svakodnevno koristimo. Čak i da imamo nevjerovatno pamćenje, proces navigacije do web stranice bio bi smiješno spor i naporan.

Što ako trebamo posjetiti više web lokacija ili koristiti više aplikacija koje se nalaze na istom računalu ili virtuelnom hostu? Ovo će biti jedna od najgorih glavobolja koje možete zamisliti – da ne spominjemo mogućnost promjene IP-adrese povezane s web stranicom ili aplikacijom bez prethodne najave.

Sama pomisao na to bila bi dovoljan razlog da prestanete koristiti Internet ili intranet nakon nekog vremena.

To je ono što svijet bez sistema naziva domena (također poznat kao DNS). Na sreću, ova usluga rješava sve gore navedene probleme, čak i ako je veza između IP-promjene adrese i naziva domene.

Iz tog razloga, u ovom članku ćemo naučiti kako postaviti i koristiti jednostavan DNS-server, servis koji će vam omogućiti da prevedete imena domena u IP-adrese i obrnuto.

Rezolucije DNS imena

Za male mreže koje nisu podložne čestim promjenama, fajl /etc/hosts može se koristiti kao rudimentarna metoda za određivanje imena domene za rješavanje IP-adrese.

Ova datoteka, koristeći vrlo jednostavnu sintaksu, omogućava vam da povežete ime (i/ili pseudonim) sa IP-adresa. To se radi na sljedeći način:

Na primjer,

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

Na ovaj način možete kontaktirati web mašinu bilo po imenu web.mydomain.com, ili po njoj IP-adresa.

Za velike mreže ili one koje su podložne čestim promjenama, koristite datoteku /etc/hosts za rješavanje imena domena IP-adrese neće biti prihvatljivo rješenje. Tu se javlja potreba za posebnom uslugom.

Hajdemo iza kulisa rada DNS. DNS-server zahtijeva veliku bazu podataka u obliku stabla, koja počinje od korijena ( «.» ) zone.

Sljedeća slika će nam pomoći da shvatimo o čemu govorimo:

Slika iznad prikazuje korijensku zonu (.) sadrži com, edu I net domene prvog nivoa. Svakim od ovih domena upravljaju (ili bi mogle) različite organizacije kako bi se izbjegla ovisnost o jednoj velikoj centralnoj. Ovo vam omogućava da pravilno distribuirate upite po hijerarhiji.

Da vidimo šta se dešava:

1. Kada klijent podnese zahtjev za DNS-server za web1.sales.me.com, server šalje zahtjev na vrh (root) DNS-server koji prosljeđuje zahtjev serveru imena u zoni .com.

Ovo zauzvrat šalje zahtjev serveru imena sljedećeg nivoa (u zoni me.com), a zatim na sales.me.com. Ovaj proces se ponavlja onoliko puta koliko je potrebno dok se ne dobije potpuno kvalificirano ime domene (FQDN, web1.sales.me.com u ovom primjeru) neće biti vraćen od servera imena zone u kojoj se nalazi.

2. U ovom primjeru, server imena u sales.me.com odgovoran za adresu web1.sales.me.com i vraća željenu asocijaciju za ime domene - IP i druge informacije (ako je konfigurisan za to).

Sve ove informacije se šalju izvoru DNS-server, koji ga zatim prosljeđuje nazad klijentu koji je to zatražio. Da biste izbjegli ponavljanje istih koraka za buduće identične upite, rezultati upita se pohranjuju na DNS-server. Ovo je važan aspekt zbog kojeg se takva postavka obično naziva Postavljanje DNS servera za rekurzivno keširanje.

Instaliranje i konfigurisanje DNS servera

IN Linux najčešće korišteni DNS- server je vezati(skraćeno od Berkeley Internet Name Daemon), koji se može instalirati na sljedeći način:

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

Nakon što smo instalirali vezati i povezane uslužne programe, napravite kopiju konfiguracijske datoteke prije bilo kakvih promjena:

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

Onda hajde da otvorimo named.conf i prelazimo na blok parametara, gdje trebamo specificirati sljedeće postavke za server za rekurzivno keširanje sa IP 192.168.0.18/24, kojoj mogu pristupiti samo hostovi na istoj mreži (kao sigurnosna mjera).

Opcije zone za prosljeđivanje koriste se za određivanje koje servere imena prvo tražiti (u sljedećem primjeru koristimo Googleove servere imena) za hostove izvan naše domene:

Opcije ( ... port za slušanje 53 ( 127.0.0.1; 192.168.0.18); dozvoli upit (lokalni host; 192.168.0.0/24; ); rekurzija da; prosljeđivači (8.8.8.8; 8.8.4.4; ); . .. )

Izvan bloka opcija ćemo definirati našu zonu sales.me.com(na Ubuntu-u se to obično radi u zasebnoj datoteci pod nazivom named.conf.local), koji prikazuje domen sa datim IP-adresna i reverzna zona za uparivanje IP-adrese za odgovarajuću oblast.

Međutim, stvarna konfiguracija svake zone će se odvijati u zasebnim datotekama, kako je navedeno u direktivi datoteka ("master" znači da ćemo koristiti samo jedan DNS server).

Dodajte sljedeće redove u datoteku named.conf:

Zona "sales.me.com." IN (tip master; fajl "/var/named/sales.me.com.zone"; ); zona "0.168.192.in-addr.arpa" IN ( tip master; datoteka "/var/named/0.162.198.in-addr.arpa.zone"; );

Zapiši to inaddr.arpa(za IPv4 adrese) i ip6.arpa(za IPv6) su konvencije za konfiguracije obrnutih zona.

Nakon što sačuvate gornje promjene u named.conf možemo provjeriti ima li ovakvih grešaka:

# named-checkconf /etc/named.conf

Ako se pronađu greške, gornja naredba proizvodi informativnu poruku s razlogom i redom u kojem su pronađene. Inače neće ništa vratiti.

Postavljanje DNS zona

U fajlovima /var/named/sales.me.com.zone I /var/named/0.168.192.in-addr.arpa.zone konfigurisaćemo zonu za prosleđivanje (domen → IP adresa) i obrnuto (IP adresa → domen).

Pogledajmo prvo direktnu konfiguraciju:

1. Na vrhu datoteke naći ćete red koji počinje s TTL(skraćeno od Time To Live), koji specificira koliko dugo keširani odgovor treba da živi prije nego što bude zamijenjen rezultatima novog zahtjeva.

U donjem redu ćemo se povezati na našu domenu i naznačiti adresu e-pošte sa koje treba slati obavještenja (imajte na umu da root.sales.me.com znači ).

2. Snimanje SOA(Početak ovlaštenja) označava da je ovaj sistem ovlašteni poslužitelj imena za mašine unutar domene sales.me.com.

Ako imate dva servera imena (jedan glavni i jedan slave), sljedeće postavke su potrebne za svaku domenu (iako to nije naš slučaj jer nije potrebno na ispitu, ovdje su predstavljene za referencu):

Serial koristi se za odvajanje jedne verzije datoteke definicije zone od prethodne (gdje su parametri možda promijenjeni). Ako keširani odgovor ukazuje na izlaz s različitim Serial, zahtjev se ponovo izvršava umjesto da bude vraćen klijentu.

U postavci sa slave (sekundarnim) serverom imena Osvježiti specificira vrijeme tokom kojeg bi sekundarni server trebao provjeriti novi serijski broj sa primarnog servera.

osim toga, Pokušajte ponovo govori serveru koliko često sekundar treba da pokuša da kontaktira primarni ako ne dobije odgovor od primarnog, dok Istek označava kada definicija zone u sekundarnom režimu više nije važeća nakon što više nije moguće primiti odgovor od primarnog servera, i negativan TTL je vrijeme tokom kojeg se nepostojeći domen ne kešira ( NXdomain).

3. N.S.-zapis označava da je mjerodavan DNS-server za naš domen (koji je označen znakom @ na početku reda).

4. Snimanje A(za IPv4 adrese) ili AAAA(za IPv6 adrese) razrješava imena u IP-adrese.

U primjeru ispod:

Dns: 192.168.0.18 (sam DNS server) web1: 192.168.0.29 (web server unutar zone sales.me.com) mail1: 192.168.0.28 (mail server unutar zone sales.me.com) mail2: 192.168 .0.30 (još jedan mail server)

5. Snimanje MX specificira imena ovlaštenih agenata za prijenos pošte (MTA) za ovu domenu. Imeu hosta mora prethoditi broj koji označava prioritet koji trenutni server pošte treba da ima ako postoje dva ili više MTA za domenu (što je manja vrijednost, to je veći prioritet) u sljedećem primjeru, mail1 je osnovno, dok mail2 je sekundarno MTA).

6. Snimanje CNAME postavlja pseudonim (www.web1) za host (web1).

BITAN: važno je prisustvo tačke (.) na kraju imena.

$TTL 604800 @ IN SOA sales.me.com. root.sales.me.com. (2016051101; Serijski 10800; Osvježi 3600; Ponovi 604800; Istek 604800) ; Negative TTL ; @ IN NS dns.sales.me.com. dns U 192.168.0.18 web1 U 192.168.0.29 mail1 U 192.168.0.28 mail2 U 192.168.0.30 @ IN MX 10 mail1.sales.me.com. @ IN MX 20 mail2.sales.me.com. www.web1 U CNAME web1

Pogledajmo konfiguraciju obrnute zone (/var/named/0.168.192.in-addr.arpa.zone). Zapis SOA isto kao u prethodnom fajlu, dok su poslednja tri reda sa unosom PTR(pokazivač) označava posljednji oktet u adresi hosta IPv4 mail1, web1 I mail2(192.168.0.28, 192.168.0.29 i 192.168.0.30, respektivno).

$TTL 604800 @ IN SOA sales.me.com. root.sales.me.com. (2016051101; Serijski 10800; Osvježi 3600; Ponovi 604800; Istek 604800) ; Minimalni TTL @ IN NS dns.sales.me.com. 28 IN PTR mail1.sales.me.com. 29 IN PTR web1.sales.me.com. 30 IN PTR mail2.sales.me.com.

Možete provjeriti greške u datotekama zona:

# 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

Sljedeći snimak ekrana pokazuje kakav je očekivani izlaz:

U suprotnom, dobit ćete poruku o grešci i savjet kako je riješiti:

Nakon što potvrdite glavnu konfiguracijsku datoteku i datoteke zona, ponovo pokrenite imenovani servis da biste primijenili promjene.

IN CentOS I openSUSE uradi:

# systemctl restart imenovan

I ne zaboravite to uključiti:

# systemctl enable imenovan

IN Ubuntu:

$ sudo service bind9 restart

Konačno, morat ćete urediti konfiguraciju glavnih mrežnih sučelja:

U /etc/sysconfig/network-scripts/ifcfg-enp0s3 za CentOS i openSUSE ---- DNS1=192.168.0.18 ---- U /etc/network/interfaces za Ubuntu ---- dns-nameservers 192.168.0.18

Sada ponovo pokrenite mrežni servis da biste primijenili promjene.

Testiranje DNS servera

U ovom trenutku spremni smo zatražiti naše DNS-server za lokalna i eksterna imena i adrese. Sljedeće naredbe će se vratiti IP-adresa povezana sa hostom web1:

# host web1.sales.me.com # host web1 # host www.web1

Kako možemo saznati za koga obrađuje mejlove sales.me.com? Lako je saznati - samo zatražite evidenciju MX za domenu:

# host -t mx sales.me.com

Isto tako, uradimo obrnuti upit. Ovo će nam pomoći da saznamo ime IP-adrese:

# host 192.168.0.28 # host 192.168.0.29

Možete isprobati iste operacije za vanjske hostove:

Kako bismo osigurali da zahtjevi zaista prolaze kroz naše DNS-server, omogućimo logovanje:

# rndcquerylog

I provjerite fajl /var/log/messages(na CentOS-u i openSUSE-u):

# host -t mx linux.com # host 8.8.8.8

Da biste onemogućili evidentiranje DNS, unesite ponovo:

# rndcquerylog

IN Ubuntu Da biste omogućili evidentiranje, moraćete da dodate sledeći nezavisni blok (isti nivo kao blok opcija). /etc/bind/named.conf:

Zapisivanje ( query_log kanala (datoteka "/var/log/bind9/query.log"; dinamika ozbiljnosti; kategorija štampanja da; ozbiljnost štampanja da; vreme štampanja da; ); upiti kategorije ( query_log; ); );

Imajte na umu da datoteka evidencije mora postojati i u nju se može pisati po imenu.

Rezultati

U ovom članku smo objasnili kako postaviti osnovno rekurzivno, keširanje DNS-server i kako konfigurirati zone za domenu.

Kako biste osigurali ispravan rad vašeg DNS-server, obavezno omogućite ovu uslugu u svom zaštitnom zidu (TCP port 53) kao što je opisano u ("Konfiguriranje Iptables zaštitnog zida za omogućavanje udaljenog pristupa uslugama").

.

Cisco i Linux kursevi uz zaposlenje!

Požurite sa prijavom! Ostalo je još par mjesta. Grupe počinju 22. jul, i sljedeći 19. avgust, 23. septembar, 21. oktobar, 25. novembar, 16. decembar, 20. januar, 24. februar.

Šta ćeš dobiti?

  • Pomoći ćemo vam da postanete stručnjak za mrežnu administraciju i dobijete međunarodne certifikate Cisco CCNA Routing & Switching ili Linux LPI.
  • Nudimo provereni program i udžbenik od stručnjaka iz Cisco Networking Academy i Linux Professional Institute, sertifikovanih instruktora i ličnog mentora.
  • Pomoći ćemo vam da pronađete posao i izgradite karijeru. 100% naših diplomaca je zaposleno.

Kako ide obuka?

  • Održavamo večernja onlajn predavanja na našoj platformi ili učimo lično u kancelariji u Kijevu.
  • Pitat ćemo vas o pogodnom vremenu za vježbanje i prilagođavanje: razumijemo da je malo vremena za učenje.
  • Ako želite individualni raspored, mi ćemo ga raspraviti i implementirati.
  • Postavićemo jasne rokove za samoorganizaciju. Lični supervizor će vam biti u kontaktu da odgovori na pitanja, da vas savjetuje i motiviše da se pridržavate ispitnih rokova.

Takođe ćemo vam pomoći:

Svrha DNS-a je da prevede imena domena koje je ljudima lako zapamtiti u IP adrese koje računari mogu razumjeti, proces koji se naziva razlučivanje imena. Šta će nam dati instaliranje vlastitog DNS servera za keširanje? Ovo će malo ubrzati odziv sajtova + Linux ne prihvata NetBios imena baš dobro, ali ponekad morate da pronađete računare ili štampače unutar lokalne mreže, ali želite da to uradite po imenu.

Pamtiti IP adrese nije zgodno, a stalno gledanje u dnevnik DHCP servera takođe nije naš metod. Za takve slučajeve potreban vam je DNS na lokalnoj mreži. Sama instalacija bind9 paketa nije teška; greške obično nastaju u fazi njegove konfiguracije, jer Nakon lako čitljivih konfiguracijskih datoteka sistema, osoba se suočava s nerazumljivom sintaksom, koja je, inače, vrlo slična programskom jeziku S. server će raditi unutar lokalne mreže, nema smisla prenositi ga u chroot okruženje i cijelo podešavanje traje vrlo malo vremena. Ovim se lirski dio može završiti, idemo na instalaciju i konfiguraciju.

Hajde da instaliramo Bind9 DNS server:

# apt - nabavite instalaciju bind9

Nakon završetka, preuzimanja i instalacije, moramo urediti njegovu konfiguracijsku datoteku:

#vim /etc/bind/named. konf. opcije

Pronalazimo odeljak, nalazi se na samom početku konfiguracionog fajla, osim njega nema ničeg drugog...

opcije ( direktorij "/var/cache/bind" ; // Ako postoji zaštitni zid između vas i servera imena koje želite// da biste razgovarali, možda ćete morati popraviti firewall da biste omogućili višestruko// portovi za razgovor. Vidi http://www.kb.cert.org/vuls/id/800113// Ako je vaš ISP dao jednu ili više IP adresa za stabilno// servere imena, vjerovatno ih želite koristiti kao prosljeđivače.// Dekomentirajte sljedeći blok i umetnite adrese koje zamjenjuju// čuvar mjesta svih 0. // prosljeđivači ( // 0.0.0.0; // ); auth - nxdomain no ; # u skladu sa RFC1035 slušanje - na - v6 ( bilo koji ; ); );

Odjeljak prosljeđivača je odgovoran za to gdje će biti poslan DNS zahtjev za rješavanje imena ako se ne nalazi u vlastitoj bazi podataka. U zadnje vrijeme nisam nimalo zadovoljan, rad ovih servera sa provajderom je razlog zašto možete povezati one treće strane, na primjer Googleove, vrlo je lako zapamtiti IP 8.8.8.8, koristit ću njegov primjer da konfigurišite ga, ali vam niko ne smeta da koristite one koje vam se najviše sviđaju.

Uređujemo odjeljak, prvo morate ukloniti komentare iz njega i dodati DNS treće strane, ako postoji potreba za dodavanjem nekoliko servera, na primjer, u slučaju da Google server ne može izdržati vaše zahtjeve i pokvari se :), zatim IP drugih servera se može napisati u koloni, tada možete postići veću toleranciju grešaka.

špediteri(8.8.8.8; 193.58.251.251; //Ruski DNS servis -SkyDNS};

U ovom dijelu je bolje unijeti IP servera koji ste naveli u datoteci /etc/resolv.conf ili ga unesite u odjeljak nameserver ovaj IP. Sačuvajte promjene i izađite. Ponovo pokrenite server i provjerite. Ukucavamo u komandnoj liniji nslookup mail.ru
Trebalo bi ispisati:

Neovlašteni odgovor: Ime: mail. ru Adrese: 94.100.191.202

To sugerira da naš server nije glavni u servisiranju ove zone (mail.ru), već je dodao zahtjeve u keš memoriju!
Sada treba da kreiramo DNS zonu za našu mrežu kako bi mašine mogle da pronađu različite mrežne usluge - mogu postojati, na primer, mrežni štampači, oni mogu biti nezavisni ili deljeni na drugim radnim stanicama.
Naša zona se može nazvati imenom organizacije – tj. Naziv organizacije.
Prije svega, kreiramo zonu, za to ćemo urediti named.conf.local

#vim /etc/bind/named. konf. lokalni

i dodajte mu sljedeće:

zona "orgname" ( tip master ; datoteka "/etc/bind/db.orgname" ; );

Sačuvaj i izađi
Sada treba da kreiramo konfiguracioni fajl zone

# vim / etc / bind / db . orgname

i u njega zalijepite sljedeće:
(Molimo obratite pažnju na sintaksu konfiguracijske datoteke, čak i tačke imaju značenje)

@IN SOA ime organizacije. root. orgname. (20101015 4h; vrijeme ažuriranja - 4 sata 1h; ponavljanje svaki sat 1w; koliko dugo čuvati informacije - 1 sedmica 1d); TTL (vrijeme života) zapisa je 1 dan @ IN NS naziv organizacije. ; ime servera @ IN A 192.168.10.1 ; A - zapis - IP adresa našeg DNS servera koji opslužuje ovu zonu, @ znači da je ovo korijenska zona. * IN CNAME @ štampač IN A 192.168.10.25 ; Možete kreirati DNS zapis za mrežni štampač koji se nalazi na 192.168.10.25

Sada, kada dodajete novi mrežni uređaj, trebate učiniti 2 stvari:
1) Rezervišite IP adresu na DHCP serveru, o tome kako to učiniti možete pročitati u članku - Podešavanje DHCP servera
2) Kreirajte DNS zonu za ovu IP adresu, upišite naziv uređaja U XXX.XXX.XXX.XXX. Gdje je: naziv uređaja je naziv mreže uređaja; XXX.XXX.XXX.XXX je njegova IP adresa koja je rezervisana na DHCP serveru.

sada moramo urediti datoteku resolv.conf

# vim / etc / resolv . konf

i unesite tamo:

server imena 127.0.0.1

sve što je bilo može se komentirati stavljanjem #
server se restartuje

# ponovno pokretanje

Ovo je urađeno tako da server traži sve u svojoj bazi podataka, a tek tada će BIND preusmjeriti zahtjeve na server 8.8.8.8 IP čiji je IP uključen u direktivu špediteri.
Sada možete provjeriti funkcionalnost:
Ako se testiranje odvija pod Windowsom:

ping ime uređaja. orgname

Ako testiramo sa Linuxa:

ping ime uređaja. naziv organizacije - c 4

Pingovi bi trebali ići na IP koji ste naveli umjesto XXX.XXX.XXX.XXX

Brzinu obrade zahtjeva možete provjeriti i pomoću naredbe dig

# dig @127.0.0.1 tut.by ;<<>> DiG 9.9.5-9+deb8u6-Debian<<>> @127.0.0.1 tut.by ; (pronađen 1 server) ;; globalne opcije: +cmd ;; Dobio odgovor: ;; ->>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) je važna i prilično teška za konfiguraciju komponenta neophodna za rad web stranica i servera. Mnogi korisnici koriste DNS servere koje obezbeđuje njihov hosting provajder, ali posedovanje sopstvenih DNS servera ima neke prednosti.

U ovom vodiču ćete naučiti kako instalirati Bind9 i konfigurirati ga kao DNS server za keširanje ili prosljeđivanje na Ubuntu 14.04 serveru.

Zahtjevi

  • Razumevanje osnovnih tipova DNS servera. Više detalja možete saznati na.
  • Dvije mašine, od kojih barem jedna koristi Ubuntu 14.04. Prva mašina će biti konfigurisana kao klijent (IP adresa 192.0.2.100), a druga kao DNS server (192.0.2.1).

Naučićete kako da konfigurišete klijentsku mašinu za slanje upita preko DNS servera.

Keširanje DNS servera

Serveri ovog tipa se također nazivaju razrješačima jer obrađuju rekurzivne upite i obično mogu tražiti DNS podatke sa drugih servera.

Kada keširajući DNS server nadzire odgovor na upit klijenta, on vraća odgovor klijentu i takođe ga pohranjuje u keš memoriju za vremenski period koji dozvoljava TTL vrijednost odgovarajućih DNS zapisa. Keš memorija se tada može koristiti kao izvor odgovora na naknadne zahtjeve kako bi se ubrzalo ukupno vrijeme obrade zahtjeva.

Gotovo svi DNS serveri u vašoj mrežnoj konfiguraciji će biti serveri za keširanje. DNS server za keširanje je dobar izbor u mnogim situacijama. Ako ne želite da se oslonite na DNS servere vašeg hosting provajdera ili druge javne DNS servere, postavite sopstveni DNS server za keširanje. Što je kraća udaljenost od DNS servera do klijentskih mašina, to je kraće vrijeme potrebno za servisiranje DNS zahtjeva.

Prosljeđivanje DNS servera

Iz perspektive klijenta, DNS server za prosljeđivanje će izgledati gotovo identično serveru za keširanje, ali su mehanizmi i radno opterećenje potpuno drugačiji.

DNS server za prosljeđivanje ima iste prednosti kao i server za keširanje. Međutim, on zapravo ne izvodi nikakve rekurzivne upite. Umjesto toga, prosljeđuje sve zahtjeve na eksterni server za rješavanje, a zatim kešira rezultate za sljedeće zahtjeve.

Ovo omogućava serveru za preusmjeravanje da poslužuje zahtjeve iz svoje keš memorije bez potrebe da obrađuje rekurzivne zahtjeve. Dakle, ovaj server obrađuje samo pojedinačne zahtjeve (preusmjerene zahtjeve klijenata), a ne cijelu proceduru rekurzije. Ovo može biti prednost u okruženjima sa ograničenim eksternim propusnim opsegom, gde se serveri za keširanje moraju često menjati, iu situacijama kada lokalni zahtevi treba da se preusmere na jedan server, a eksterni zahtevi na drugi.

1: Instalirajte Bind na DNS server

Paket Bind se može naći u službenom Ubuntu spremištu. Ažurirajte svoj indeks paketa i instalirajte Bind koristeći apt manager. Također morate instalirati nekoliko ovisnosti.

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

Nakon toga možete početi s postavljanjem servera. Konfiguracija servera za keširanje može se koristiti kao predložak za konfiguraciju servera za prosljeđivanje, tako da prvo morate konfigurirati DNS server za keširanje.

2: Podešavanje DNS servera za keširanje

Prvo morate da konfigurišete Bind kao DNS server za keširanje. Ova konfiguracija će prisiliti server da rekurzivno traži odgovore na zahtjeve klijenata na drugim DNS serverima. Uzastopno će ispitivati ​​sve odgovarajuće DNS servere dok ne pronađe odgovor.

Konfiguracijske datoteke vezanja pohranjene su u direktoriju /etc/bind.

Većinu datoteka nije potrebno uređivati. Glavna konfiguraciona datoteka se zove named.conf (named i bind su dva imena za istu aplikaciju). Ova datoteka upućuje na datoteke named.conf.options, named.conf.local i named.conf.default-zones.

Da biste konfigurisali DNS server za keširanje, trebate samo urediti named.conf.options.

sudo nano named.conf.options

Ova datoteka izgleda ovako (komentari izostavljeni radi jednostavnosti):

opcije (
direktorij "/var/cache/bind";
dnssec-validation auto;

slušaj-na-v6 (bilo koji; );
};

Da biste postavili server za keširanje, morate kreirati listu kontrole pristupa ili ACL.

Morate zaštititi DNS server koji obrađuje rekurzivne upite od napadača. Napadi DNS pojačanja su posebno opasni jer mogu uključiti server u distribuirane napade uskraćivanja usluge.

Napadi pojačanja DNS-a su jedan od načina da se sruše serveri i web stranice. Da bi to učinili, napadači pokušavaju pronaći javne DNS servere koji obrađuju rekurzivne upite. Oni lažiraju IP adresu žrtve i šalju upit koji će vratiti veoma veliki odgovor DNS serveru. U ovom slučaju, DNS server vraća previše podataka serveru žrtve kao odgovor na mali zahtjev, povećavajući dostupni propusni opseg napadača.

Hostovanje javnog rekurzivnog DNS servera zahteva pažljivu konfiguraciju i administraciju. Da spriječite hakovanje vašeg servera, konfigurirajte listu IP adresa ili mrežnih raspona kojima server može vjerovati.

Prije bloka opcija dodajte blok acl. Kreirajte oznaku za ACL grupu (u ovom vodiču grupa se zove goodclients).

acl goodclients (
};
opcije (
. . .

U ovom bloku navedite IP adrese ili mreže koje će imati pristup ovom DNS serveru. Pošto server i klijent rade na podmreži /24, možete ograničiti pristup ovoj podmreži. Također morate deblokirati localhost i lokalne mreže, koje se automatski povezuju.

acl goodclients (
192.0.2.0/24;
localhost;
lokalne mreže;
};
opcije (
. . .

Sada imate siguran klijentski ACL. Možete započeti postavljanje rezolucije zahtjeva u bloku opcija. Dodajte mu sljedeće redove:

opcije (
direktorij "/var/cache/bind";
rekurzija da;

. . .

Blok opcija eksplicitno omogućava rekurziju, a zatim konfigurira opciju dopuštanja upita za korištenje ACL-a. Također možete koristiti drugi parametar, kao što je dozvoli-rekurziju, za upućivanje na ACL grupu. Kada je rekurzija omogućena, dozvoli-rekurzija će definirati listu klijenata koji mogu koristiti rekurzivne usluge.

Međutim, ako dopusti-rekurzija nije postavljena, Bind se vraća na listu dozvoli-upita-cache, zatim na listu dozvoli-upita i konačno na zadane lokalne mreže i liste lokalnih hostova. Budući da samo postavljamo server za keširanje (nema svoje zone i ne prosljeđuje upite), lista dopuštenih upita će se primjenjivati ​​samo na rekurziju. Ovo je najčešći način definiranja ACL-a.

Sačuvajte i zatvorite datoteku.

Ovo su sve postavke koje treba dodati u konfiguracijski fajl DNS servera za keširanje.

Bilješka: Ako želite da koristite samo ovu vrstu DNS-a, nastavite da proverite konfiguracije, ponovo pokrenite uslugu i konfigurišite svog klijenta.

3: Postavljanje DNS servera za prosljeđivanje

Ako vaša infrastruktura više odgovara DNS serveru za prosljeđivanje, možete malo prilagoditi postavke.

Trenutno datoteka named.conf.options izgleda ovako:

acl goodclients (
192.0.2.0/24;
localhost;
lokalne mreže;
};
opcije (
direktorij "/var/cache/bind";
rekurzija da;
dozvoli-upit(dobri klijenti;);
dnssec-validation auto;
auth-nxdomain br; # u skladu sa RFC1035
slušaj-na-v6 (bilo koji; );
};

Možete koristiti isti ACL da ograničite DNS server na određenu listu klijenata. Međutim, ovo zahtijeva malu promjenu konfiguracije tako da server više ne pokušava izvršiti rekurzivne upite.

Ne mijenjajte rekurziju u ne. Server za preusmjeravanje i dalje podržava rekurzivne usluge. Da biste postavili server za preusmjeravanje, trebate kreirati listu servera za keširanje na koje će on preusmjeravati zahtjeve.

Ovo se radi u bloku options(). Prvo, trebate kreirati novi blok prosljeđivača u njemu, gdje će biti pohranjene IP adrese rekurzivnih servera imena na koje želite da preusmjerite zahtjeve. U ovom slučaju, to će biti Google DNS serveri (8.8.8.8 i 8.8.4.4):

. . .
opcije (
direktorij "/var/cache/bind";
rekurzija da;
dozvoli-upit(dobri klijenti;);
špediteri (

8.8.8.8;

8.8.4.4;

};
. . .

Rezultirajuća konfiguracija izgleda ovako:

acl goodclients (
192.0.2.0/24;
localhost;
lokalne mreže;
};
opcije (
direktorij "/var/cache/bind";
rekurzija da;
dozvoli-upit(dobri klijenti;);
špediteri (
8.8.8.8;
8.8.4.4;
};
samo naprijed;
dnssec-validation auto;
auth-nxdomain br; # u skladu sa RFC1035
slušaj-na-v6 (bilo koji; );
};

Zadnja promjena se odnosi na parametar dnssec. Uz trenutnu konfiguraciju i ovisno o postavkama DNS servera na koje se zahtjevi preusmjeravaju, u zapisnicima se mogu pojaviti sljedeće greške:

Jun 25 15:03:29 keš nazvan: greška (potjera DS servere) rješavanje "in-addr.arpa/DS/IN": 8.8.8.8#53
25. jun 15:03:29 keš nazvan: greška (nema važećeg DS) rješavanja "111.111.111.111.in-addr.arpa/PTR/IN": 8.8.4.4#53

Da biste ih izbjegli, morate promijeniti parametar dnssec-validacije u yes i eksplicitno omogućiti dnssec.

. . .
samo naprijed;
dnssec-enable da;
dnssec-validacija da;
auth-nxdomain br; # u skladu sa RFC1035
. . .

Sačuvajte i zatvorite datoteku. Postavljanje DNS servera za prosljeđivanje je završeno.

4: Provjerite postavke i ponovo pokrenite Bind

Sada morate biti sigurni da postavke rade kako se očekuje.

Da provjerite sintaksu konfiguracijskih datoteka, unesite:

sudo named-checkconf

Ako nema grešaka u datotekama, komandna linija neće prikazati nikakav izlaz.

Ako dobijete poruku o grešci, ispravite je i testirajte ponovo.

Zatim možete ponovo pokrenuti Bind demon da ažurirate postavke.

sudo service bind9 restart

Zatim morate provjeriti zapise servera. Pokrenite naredbu na serveru:

sudo tail -f /var/log/syslog

Sada otvorite novi terminal i počnite postavljati klijentsku mašinu.

5: Podešavanje klijenta

Prijavite se na klijentsku mašinu. Proverite da li je klijent naveden u ACL grupi konfigurisanog DNS servera. U suprotnom, DNS server će odbiti da poslužuje zahtjeve ovog klijenta.

Uredite datoteku /etc/resolv.conf da usmjerite server na server imena.

Promjene napravljene ovdje će postojati samo do ponovnog pokretanja, što je odlično za testiranje. Ako ste zadovoljni rezultatima testnih postavki, ove postavke možete učiniti trajnim.

Otvorite datoteku sa sudo u uređivaču teksta:

sudo nano /etc/resolv.conf

Datoteka treba da navede DNS servere koji će se koristiti za rješavanje upita. Da biste to učinili, koristite direktivu poslužitelja imena. Komentirajte sve trenutne unose i dodajte liniju servera imena koja pokazuje na vaš DNS server:

server imena 192.0.2.1
# server imena 8.8.4.4
# server imena 8.8.8.8
# server imena 209.244.0.3

Sačuvajte i zatvorite datoteku.

Sada možete poslati zahtjev za testiranje kako biste bili sigurni da je ispravno riješen.

Za ovo možete koristiti ping:

ping -c 1 google.com
PING google.com (173.194.33.1) 56(84) bajtova podataka.
64 bajta od sea09s01-in-f1.1e100.net (173.194.33.1): icmp_seq=1 ttl=55 vrijeme=63,8 ms
--- google.com ping statistika ---
1 paket odaslan, 1 primljen, 0% gubitak paketa, vrijeme 0ms
rtt min/avg/max/mdev = 63.807/63.807/63.807/0.000 ms

Gore