Installazione di un server DNS di memorizzazione nella cache in Windows. Creiamo il nostro DNS locale (PDNSD), con blackjack e più veloce del DNS pubblico di Google. Corsi online su Mikrotik

Una cache DNS è un database temporaneo che memorizza informazioni sulle ricerche DNS precedenti. In altre parole, ogni volta che visiti un sito web, il tuo sistema operativo e il tuo browser web manterranno un registro del dominio e dell'indirizzo IP corrispondente. Ciò elimina la necessità di query ripetute ai server DNS remoti e consente al tuo sistema operativo o browser di risolvere rapidamente gli URL dei siti web.

Tuttavia, in alcune situazioni, come la risoluzione dei problemi di rete o dopo aver modificato i risolutori DNS, è necessario svuotare la cache DNS. Ciò cancellerà i record DNS memorizzati nella cache ed eseguirà ricerche successive per risolvere il dominio in base alle impostazioni DNS appena configurate.

Questo articolo fornisce istruzioni per svuotare la cache DNS su diversi sistemi operativi e browser Web.

Cancella/elimina la cache DNS in Windows

Il processo per svuotare la cache DNS è lo stesso per tutte le versioni di Windows. È necessario aprire un prompt dei comandi con diritti di amministratore ed eseguire ipconfig /flushdns.

Windows 10 e Windows 8

Per svuotare la cache DNS su Windows 10 e 8, attenersi alla seguente procedura:

  1. Digita cmd nella barra di ricerca di Windows.
  2. ipconfig/flushdns

    Windows 7

    Per svuotare la cache DNS in Windows 7, attenersi alla seguente procedura:

    1. Fare clic sul pulsante Avvia.
    2. Digita cmd nella casella di testo di ricerca del menu Start.
    3. Fare clic con il tasto destro su Prompt dei comandi e selezionare Esegui come amministratore. Questo aprirà una finestra del prompt dei comandi.
    4. Al prompt dei comandi, digitare la seguente riga e premere Invio:

      ipconfig/flushdns

      In caso di successo, il sistema restituirà il seguente messaggio:

      Configurazione IP di Windows Svuotamento della cache del sistema di risoluzione DNS riuscito.

    Cancella/elimina la cache DNS in Linux

    Linux non dispone della memorizzazione nella cache DNS a livello di sistema operativo a meno che non sia installato e in esecuzione un servizio di memorizzazione nella cache come Systemd-Resolved, DNSMasq o Nscd. Il processo per svuotare la cache DNS varia a seconda del servizio di distribuzione e memorizzazione nella cache utilizzato.

    Systemd risolto

    La maggior parte delle distribuzioni Linux moderne, come , utilizzano un servizio abilitato al sistema per memorizzare nella cache i record DNS.

    Per scoprire se il servizio è in esecuzione, esegui:

    sudo systemctl is-active systemd-resolved.service

    Se il servizio è in esecuzione il comando verrà stampato attivo, altrimenti vedrai inattivo.

    Per svuotare la cache DNS risolta di Systemd, è necessario immettere il seguente comando.

    sudo systemd-resolve --flush-caches

    In caso di successo, il comando non restituisce alcun messaggio.

    Dnsmasq

    Dnsmasq è un server leggero per la memorizzazione nella cache dei nomi DHCP e DNS.

    Se il tuo sistema utilizza DNSMasq come server di caching, per svuotare la cache DNS devi riavviare il servizio Dnsmasq:

    sudo systemctl riavviare dnsmasq.service

    sudo servizio dnsmasq riavvio

    NSCd

    Nscd è un demone di caching ed è il sistema di caching DNS preferito dalla maggior parte delle distribuzioni basate su RedHat.

    Se il tuo sistema utilizza Nscd, dovrai riavviare il servizio Nscd per svuotare la cache DNS:

    sudo systemctl riavviare nscd.service

    sudo servizio nscd riavvio

    Cancella/elimina la cache DNS su MacOS

    Il comando per svuotare la cache in MacOS è leggermente diverso a seconda della versione che stai utilizzando. Il comando deve essere eseguito come utente con diritti di amministratore di sistema (utente sudo).

    Per svuotare la cache DNS su MacOS, attenersi alla seguente procedura:

    1. Apri il Finder.
    2. Vai su Applicazioni > Utilità > Terminale. Questo aprirà una finestra di terminale.
    3. Al prompt dei comandi, digitare la seguente riga e premere Invio:

      sudo killall -HUP mDNSResponder

      Inserisci la tua password sudo e premi nuovamente Invio. In caso di successo, il sistema non restituisce alcun messaggio.

    Per le versioni precedenti di MacOS, il comando per svuotare la cache è diverso.

    Versioni MacOS 10.11 e 10.9

    sudo dscacheutil -flushcache sudo killall -HUP mDNSResponder

    MacOS versione 10.10

    sudo discoveryutil mdnsflushcache sudo discoveryutil udnsflushcaches

    Versioni MacOS 10.6 e 10.5

    sudo dscacheutil -flushcache

    Cancella/elimina la cache DNS del browser

    La maggior parte dei browser Web moderni dispone di un client DNS integrato che impedisce query duplicate ogni volta che visiti un sito Web.

    Google Chrome

    Per svuotare la cache DNS di Google Chrome, procedi nel seguente modo:

    1. Apri una nuova scheda e digita nella barra degli indirizzi di Chrome: chrome://net-internals/#dns.
    2. Fare clic sul pulsante Cancella cache host.

    Se questo non funziona per te, prova a svuotare la cache e a svuotare i cookie.

    1. Premi CTRL+Maiusc+Canc per aprire la finestra di dialogo Cancella dati di navigazione.
    2. Seleziona un intervallo di tempo. Seleziona "Tutto il tempo" per eliminare tutto.
    3. Seleziona le caselle "Cookie e altri dati dei siti" e "Immagini e file memorizzati nella cache".
    4. Fare clic sul pulsante "Cancella dati".

    Questo metodo dovrebbe funzionare per tutti i browser basati su Chrome, inclusi Chromium, Vivaldi e Opera.

    FireFox

    Per svuotare la cache DNS di Firefox, attenersi alla seguente procedura:

    1. Nell'angolo in alto a destra, fai clic sull'icona dell'hamburger ☰ per aprire il menu Firefox:
    2. Fare clic sul collegamento ⚙ Opzioni (Preferenze).
    3. Fare clic sulla scheda "Privacy e sicurezza" o "Riservatezza" a sinistra.
    4. Scorri verso il basso fino alla sezione Cronologia e fai clic sul pulsante Cancella cronologia....
    5. Seleziona un intervallo di tempo da cancellare. Seleziona "Tutto" per eliminare tutto.
    6. Seleziona tutti i campi e fai clic su Cancella ora.

    Se questo non funziona per te, prova il metodo successivo e disabilita temporaneamente la cache DNS.

    1. Apri una nuova scheda e digita about:config nella barra degli indirizzi di Firefox.
    2. Trova network.dnsCacheExpiration, imposta temporaneamente il valore su 0 e fai clic su OK. Successivamente, modifica il valore predefinito e fai clic su OK.
    3. Trova network.dnsCacheEntries, imposta temporaneamente il valore su 0 e fai clic su OK. Successivamente, modifica il valore predefinito e fai clic su OK.

    Conclusione

    Hai imparato come svuotare o svuotare la cache DNS sui sistemi operativi Windows, Linux e MacOS.

    Linux e MacOS possono utilizzare il comando dig per interrogare il DNS e risolvere i problemi DNS.

    Se hai domande o feedback, sentiti libero di lasciare un commento.

Ogni anno la velocità di Internet, sia nell'ultimo miglio che nei canali principali, aumenta. Solo una cosa è costante: la latenza ha già raggiunto i limiti fisici: la velocità della luce nella fibra ottica è di circa 200mila chilometri al secondo e, di conseguenza, una risposta da un server oltre l'Oceano Atlantico non può essere ricevuta più velocemente di ~150 ms. futuro prevedibile (anche se ovviamente ci sono delizie, come la fibra ottica con nucleo d'aria o la comunicazione tramite relè radio, ma questo è difficilmente accessibile ai comuni mortali).

Quando proviamo, ad esempio, dalla Russia ad aprire un sito web situato negli Stati Uniti (i suoi server NS probabilmente sono lì) e il dominio non viene trovato nella cache DNS del tuo provider, allora dovremo aspettare molto tempo anche su Internet gigabit, forse anche un secondo intero: mentre attraverseremo l'oceano riceveremo i nomi dei server NS del dominio, mentre risolveremo il loro IP, mentre invieremo e riceveremo la richiesta DNS stessa...

Un paio di anni fa, Google ha lanciato i suoi server DNS pubblici e, per promuovere la transizione verso di essi, ha sviluppato un'utilità chiamata NameBench, che esegue test DNS sulla cronologia di navigazione e mostra quanto è più veloce Google DNS rispetto al server DNS del tuo provider.

Ma sono riuscito a creare il mio server DNS che funziona più velocemente del DNS pubblico di Google e in questa breve nota voglio condividere i risultati.

PDNSD

pdnsd- memorizzazione nella cache del proxy DNS. Oltre alla banale memorizzazione nella cache delle richieste DNS (con la possibilità di impostare rigorosamente il TTL minimo - ciò potrebbe essere necessario su una Internet molto scarsa), può inviare una richiesta contemporaneamente a diversi server DNS "genitori" e dare al client la prima risposta restituita.

È l'inclusione del polling parallelo che ci offre il vantaggio principale in termini di velocità, Perché quando viene trovato un risultato nella cache di uno qualsiasi dei provider, otteniamo il risultato molto rapidamente e non aspettiamo una risoluzione completa e lenta se il primo provider non ha una risposta nella cache.

Installato in Ubuntu usando il banale apt-get.

Un paio di punti nel config

global ( perm_cache=10240; //Dimensione massima della cache in kilobyte. //Per impostazione predefinita era 1024, tutti i miei record non rientravano. cache_dir="/var/cache/pdnsd"; [...] min_ttl=60m; // Tempo minimo per memorizzare una voce nella cache. //Anche se il TTL arriva meno di 60 minuti, saranno 60 minuti max_ttl=1w; // Tempo massimo per salvare una voce nella cache neg_ttl=5m; // Tempo per la memorizzazione nella cache delle risposte negative (ovvero se il dominio non viene trovato) [..] par_queries=3; //Numero di server DNS "principali" interrogati simultaneamente) server ( label = "main"; ip = 85.21.192.5 //Qui ci sono 4 server, se i primi 3 non rispondono, verrà inviata una richiesta al 4°, 213.234.192.7 //I primi 2 server sono il server del tuo provider e qualche server vicino, 8.8.4.4 //Questo è Google Public DNS: memorizza nella cache tutto ciò che è raro e si risolve rapidamente, 8.8.8.8 ; [.. ])

In linea di principio il caching può essere reso meno aggressivo (ad esempio min_ttl=1m), ma nel corso di un anno di funzionamento non sono sorti problemi particolari. In caso di problemi, puoi facoltativamente cancellare una voce dalla cache:
sudo pdnsd-ctl record 3.14.by elimina o tutto in una volta:
sudo pdnsd-ctl vuota-cache

Risultati dei test in NameBench



Vediamo che per il 50% delle richieste riceviamo una risposta in meno di 10ms, per l'85% Google Public DNS è più veloce, e poi i risultati coincidono naturalmente con Google.

Sulla base dei risultati del test, NameBench ci riporta felicemente:

8.8.8.8 Replica più lenta di SYS-192.167.0.98 8.8.4.4 Replica più lenta di SYS-192.167.0.98

Pertanto, un proxy DNS con memorizzazione nella cache intelligente con query parallele consente di velocizzare anche una Internet da 100 megabit. E per i collegamenti (radio) lenti con elevata latenza e perdita di pacchetti, la differenza può essere come cielo e terra.

Immagina come sarebbe se dovessimo ricordare IP-indirizzi di tutti i siti web che utilizziamo quotidianamente. Anche se avessimo una memoria straordinaria, il processo di navigazione su un sito web sarebbe ridicolmente lento e laborioso.

Che cosa succede se dobbiamo visitare più siti Web o utilizzare più applicazioni che risiedono sullo stesso computer o host virtuale? Questo sarà uno dei peggiori mal di testa immaginabili, per non parlare della possibilità di cambiamento IP-indirizzi associati al sito web o all'applicazione senza preavviso.

Il solo pensiero sarebbe una ragione sufficiente per smettere di usare Internet o le Intranet dopo un po'.

Questo è ciò che un mondo senza Domain Name System (noto anche come DNS). Fortunatamente, questo servizio risolve tutti i problemi sopra menzionati, anche se la connessione tra IP-modifiche dell'indirizzo e del nome di dominio.

Per questo motivo, in questo articolo impareremo come impostare e utilizzare un semplice DNS-server, un servizio che ti permetterà di tradurre i nomi di dominio in IP-indirizzi e viceversa.

Risoluzioni dei nomi DNS

Per le reti di piccole dimensioni che non sono soggette a modifiche frequenti, il file /etc/hosts può essere utilizzato come metodo rudimentale per determinare il nome di dominio da risolvere IP-indirizzi.

Questo file, utilizzando una sintassi molto semplice, permette di associare un nome (e/o alias). IP-indirizzo. Questo viene fatto come segue:

Per esempio,

192.168.0.1 gateway gateway.miodominio.com 192.168.0.2 web web.miodominio.com

In questo modo è possibile contattare la macchina web sia per nome web.miodominio.com, o secondo lei IP-indirizzo.

Per reti di grandi dimensioni o soggette a modifiche frequenti, utilizzare il file /etc/hosts su cui risolvere i nomi di dominio IP-gli indirizzi non saranno una soluzione accettabile. È qui che nasce la necessità di un servizio speciale.

Andiamo dietro le quinte del lavoro DNS. DNS-server richiede un database di grandi dimensioni sotto forma di albero, che inizia dalla radice ( «.» ) zone.

La figura seguente ci aiuterà a capire di cosa stiamo parlando:

L'immagine sopra mostra la zona della radice (.) contiene com, edu E netto domini di primo livello. Ciascuno di questi domini è (o potrebbe essere) gestito da diverse organizzazioni per evitare la dipendenza da una grande organizzazione centrale. Ciò consente di distribuire correttamente le query nella gerarchia.

Vediamo cosa succede:

1. Quando un cliente effettua una richiesta per DNS-server per web1.sales.me.com, il server invia una richiesta al top (root) DNS-server che inoltra la richiesta al name server della zona .com.

Questo a sua volta invia una richiesta al nameserver di livello successivo (nella zona me.com), e poi a sales.me.com. Questo processo viene ripetuto tante volte quanto necessario fino a quando il nome di dominio completamente qualificato (FQDN, web1.sales.me.com in questo esempio) non verrà restituito dal name server della zona in cui risiede.

2. In questo esempio, il server dei nomi in sales.me.com responsabile dell'indirizzo web1.sales.me.com e restituisce l'associazione desiderata per il nome di dominio - IP e altre informazioni (se è configurato per questo).

Tutte queste informazioni vengono inviate alla fonte DNS-server, che poi lo restituisce al client che lo ha richiesto. Per evitare di ripetere gli stessi passaggi per future query identiche, i risultati della query vengono archiviati su DNS-server. Questo è l'aspetto importante per il quale viene solitamente chiamata tale impostazione configurazione del server DNS con memorizzazione nella cache ricorsiva.

Installazione e configurazione di un server DNS

IN Linux più usato DNS-il server è legamento(abbreviazione di Berkeley Internet Name Daemon), che può essere installato come segue:

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

Dopo che abbiamo installato legamento e le utilità associate, fare una copia del file di configurazione prima di apportare qualsiasi modifica:

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

Allora apriamo denominato.conf e passare al blocco dei parametri, dove dobbiamo specificare le seguenti impostazioni per il server di caching ricorsivo con IP192.168.0.18/24, a cui possono accedere solo gli host sulla stessa rete (come misura di sicurezza).

Le opzioni della zona di inoltro vengono utilizzate per specificare quali server dei nomi interrogare per primi (nell'esempio seguente utilizziamo i server dei nomi di Google) per host esterni al nostro dominio:

Opzioni ( ... porta di ascolto 53 ( 127.0.0.1; 192.168.0.18); consenti-query ( localhost; 192.168.0.0/24; ); ricorsione sì; forwarder ( 8.8.8.8; 8.8.4.4; ); . ..)

Al di fuori del blocco delle opzioni definiremo la nostra zona sales.me.com(su Ubuntu questo di solito viene fatto in un file separato chiamato denominato.conf.local), che visualizza il dominio con il dato IP-indirizzo e zona inversa per la corrispondenza IP-indirizzi all'area corrispondente.

Tuttavia, la configurazione effettiva di ciascuna zona avverrà in file separati, come specificato nella direttiva file ("master" significa che utilizzeremo un solo server DNS).

Aggiungi le seguenti righe al file denominato.conf:

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

notare che inaddr.arpa(per indirizzi IPv4) e ip6.arpa(per IPv6) sono convenzioni per le configurazioni della zona inversa.

Dopo aver salvato le modifiche precedenti in denominato.conf possiamo verificare la presenza di errori come questo:

# nome-checkconf /etc/nome.conf

Se vengono rilevati errori, il comando precedente produce un messaggio informativo con il motivo e la riga in cui si trovano. Altrimenti non restituirà nulla.

Configurazione delle zone DNS

Nei file /var/named/sales.me.com.zone E /var/named/0.168.192.in-addr.arpa.zone configureremo le zone forward (dominio → indirizzo IP) e reverse (indirizzo IP → dominio).

Diamo prima un'occhiata alla configurazione diretta:

1. Nella parte superiore del file troverai una riga che inizia con TTL(abbreviazione di Time To Live), che specifica per quanto tempo deve vivere una risposta memorizzata nella cache prima di essere sostituita dai risultati di una nuova richiesta.

Nella riga sottostante ci collegheremo al nostro dominio e indicheremo l'indirizzo email da cui dovranno essere inviate le notifiche (attenzione root.sales.me.com significa ).

2. Registrazione SOA(Start of Authority) indica che questo sistema è il server dei nomi autorevole per le macchine all'interno del dominio sales.me.com.

Se disponi di due nameserver (uno master e uno slave), per ciascun dominio sono richieste le seguenti impostazioni (anche se questo non è il nostro caso in quanto non è richiesto nell'esame, sono presentate qui come riferimento):

Seriale utilizzato per separare una versione del file di definizione della zona da quella precedente (dove i parametri potrebbero essere stati modificati). Se la risposta memorizzata nella cache punta a un output con un file diverso Seriale, la richiesta viene eseguita nuovamente invece di essere restituita al client.

In una configurazione con un server dei nomi slave (secondario). ricaricare specifica l'orario durante il quale il server secondario deve verificare la presenza di un nuovo numero di serie dal server primario.

Oltretutto, Riprova dice al server quanto spesso il secondario dovrebbe provare a contattare il primario se non riceve risposta dal primario, mentre Scadenza indica quando una definizione di zona in modalità secondaria non è più valida dopo che non è più possibile ricevere una risposta dal server primario e negativo TTLè il tempo durante il quale un dominio inesistente non viene memorizzato nella cache ( Dominio NX).

3. N.S.-la voce indica che è autorevole DNS-server per il nostro dominio (che è indicato dal segno @ all'inizio della riga).

4. Registrazione UN(per indirizzi IPv4) o AAAA(per indirizzi IPv6) risolve i nomi in IP-indirizzi.

Nell'esempio seguente:

Dns: 192.168.0.18 (il server DNS stesso) web1: 192.168.0.29 (un server web all'interno della zona sales.me.com) mail1: 192.168.0.28 (un server di posta all'interno della zona sales.me.com) mail2: 192.168 .0.30 (un altro server di posta)

5. Registrazione MX specifica i nomi degli agenti di trasferimento di posta (MTA) autorizzati per questo dominio. Il nome host deve essere preceduto da un numero che indica la priorità che dovrebbe avere il server di posta corrente se ce ne sono due o più MTA per un dominio (più basso è il valore, maggiore è la priorità) nell'esempio seguente, posta1è basilare, mentre posta2è secondario MTA).

6. Registrazione CNAME imposta un alias (www.web1) per l'host (web1).

IMPORTANTE: la presenza di un punto è importante (.) alla fine dei nomi.

$TTL 604800 @ IN SOA sales.me.com. root.sales.me.com. (2016051101; Seriale 10800; Aggiorna 3600; Riprova 604800; Scadenza 604800); TTL negativo; @ IN 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 IN CNAME web1

Diamo un'occhiata alla configurazione della zona inversa (/var/named/0.168.192.in-addr.arpa.zone). Documentazione SOA lo stesso del file precedente, mentre le ultime tre righe con la voce PTR(puntatore) indica l'ultimo ottetto nell'indirizzo host IPv4 posta1, web1 E posta2(192.168.0.28, 192.168.0.29 e 192.168.0.30, rispettivamente).

$TTL 604800 @ IN SOA sales.me.com. root.sales.me.com. (2016051101; Seriale 10800; Aggiorna 3600; Riprova 604800; Scadenza 604800); TTL minimo @ 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.

Puoi controllare la presenza di errori nei file di zona:

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

Lo screenshot seguente mostra qual è l'output previsto:

In caso contrario, riceverai un messaggio di errore e consigli su come risolverlo:

Dopo aver verificato il file di configurazione principale e i file di zona, riavviare il servizio denominato per applicare le modifiche.

IN CentOS E openSUSE Fare:

# riavvio systemctl denominato

E non dimenticare di includerlo anche:

# abilitazione systemctl denominata

IN Ubuntu:

$ sudo servizio bind9 riavvio

Infine, dovrai modificare la configurazione delle principali interfacce di rete:

In /etc/sysconfig/network-scripts/ifcfg-enp0s3 per CentOS e openSUSE ---- DNS1=192.168.0.18 ---- In /etc/network/interfaces per Ubuntu ---- dns-nameservers 192.168.0.18

Ora riavvia il servizio di rete per applicare le modifiche.

Test del server DNS

A questo punto siamo pronti per richiedere il ns DNS-server per nomi e indirizzi locali ed esterni. Verranno restituiti i seguenti comandi IP-indirizzo associato all'host web1:

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

Come possiamo scoprire per chi elabora le email sales.me.com? È facile scoprirlo: basta richiedere i record MX per dominio:

# host -t mx vendite.me.com

Allo stesso modo, facciamo la query inversa. Questo ci aiuterà a scoprire il nome IP-indirizzi:

# host 192.168.0.28 # host 192.168.0.29

Puoi provare le stesse operazioni per gli host esterni:

Per garantire che le richieste passino effettivamente attraverso il ns DNS-server, abilitiamo la registrazione:

#rndcquerylog

E controlla il file /var/log/messaggi(su CentOS e openSUSE):

# host -t mx linux.com # host 8.8.8.8

Per disabilitare la registrazione DNS, inserisci nuovamente:

#rndcquerylog

IN Ubuntu Per abilitare la registrazione dovrai aggiungere il seguente blocco indipendente (stesso livello del blocco delle opzioni). /etc/bind/named.conf:

Registrazione ( canale query_log ( file "/var/log/bind9/query.log"; gravità dinamica; categoria di stampa sì; gravità di stampa sì; ora di stampa sì; ); query di categoria ( query_log; ); );

Tieni presente che il file di registro deve esistere ed essere scrivibile per nome.

Risultati

In questo articolo, abbiamo spiegato come impostare un sistema ricorsivo di base, il caching DNS-server e come configurare le zone per un dominio.

Per garantire il corretto funzionamento del tuo DNS-server, assicurati di abilitare questo servizio nel tuo firewall (porta TCP 53) come descritto in ("Configurazione del firewall Iptables per abilitare l'accesso remoto ai servizi").

.

Corsi Cisco e Linux con occupazione!

Affrettati a candidarti! Sono rimasti un paio di posti. Iniziano i gruppi 22 luglio, e quello successivo 19 agosto, 23 settembre, 21 ottobre, 25 novembre, 16 dicembre, 20 gennaio, 24 febbraio.

Cosa otterrai?

  • Ti aiuteremo a diventare un esperto nell'amministrazione di rete e ad ottenere certificati internazionali Cisco CCNA Routing & Switching o Linux LPI.
  • Offriamo un programma e un libro di testo collaudati scritti da esperti della Cisco Networking Academy e del Linux Professional Institute, istruttori certificati e un tutor personale.
  • Ti aiuteremo a trovare lavoro e a costruire una carriera. Il 100% dei nostri laureati è occupato.

Come sta andando la formazione?

  • Conduciamo lezioni serali online sulla nostra piattaforma o studiamo di persona presso l'ufficio di Kiev.
  • Ti chiederemo un momento conveniente per esercitarti e adattarti: capiamo che c'è poco tempo per studiare.
  • Se desideri un programma individuale, lo discuteremo e lo implementeremo.
  • Fisseremo scadenze chiare per l’autorganizzazione. Un supervisore personale ti contatterà per rispondere alle domande, consigliarti e motivarti a rispettare le scadenze degli esami.

Ti aiuteremo anche:

Lo scopo del DNS è tradurre nomi di dominio facili da ricordare per gli esseri umani in indirizzi IP comprensibili ai computer, un processo chiamato risoluzione dei nomi. Cosa ci offrirà l'installazione del nostro server DNS di memorizzazione nella cache? Ciò accelererà un po' la risposta dei siti + Linux non accetta molto bene i nomi NetBios, ma a volte devi trovare computer o stampanti all'interno di una rete locale, ma vuoi farlo per nome.

Ricordare gli indirizzi IP non è conveniente e anche guardare costantemente il registro del server DHCP non è il nostro metodo. È per questi casi che è necessario il DNS sulla rete locale. L'installazione del pacchetto bind9 in sé non è difficile; di solito si verificano problemi durante la fase di configurazione, perché Dopo file di configurazione del sistema facilmente leggibili, una persona si trova di fronte a una sintassi incomprensibile, che, tra l'altro, è molto simile al linguaggio di programmazione S. il server funzionerà all'interno della rete locale, non ha senso trasferirlo in un ambiente chroot e l'intero setup richiede pochissimo tempo. Con questo la parte lirica può essere completata, passiamo all’installazione e configurazione.

Installiamo il server DNS Bind9:

# apt: ottieni l'installazione di bind9

Dopo il completamento, il download e l'installazione, dobbiamo modificare il file di configurazione:

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

Troviamo la sezione, si trova proprio all'inizio del file di configurazione, a parte questa non c'è nient'altro lì...

opzioni (directory "/var/cache/bind"; // Se c'è un firewall tra te e i nameserver che desideri// per parlare, potrebbe essere necessario riparare il firewall per consentirne più// porte per parlare. Vedere http://www.kb.cert.org/vuls/id/800113// Se il tuo ISP ha fornito uno o più indirizzi IP per stable// nameserver, probabilmente vorrai usarli come forwarder.// Decommenta il blocco seguente e inserisce gli indirizzi sostituendoli// il segnaposto di tutti-0. // forwarder ( // 0.0.0.0; // ); auth - nxdomain no ; # conforme a RFC1035 listen - on - v6 ( any ; ); );

La sezione spedizionieri è responsabile di dove verrà inviata la richiesta DNS per la risoluzione del nome se non è nel proprio database. Ultimamente non sono stato per niente contento, il lavoro di questi server con il provider è per questo che puoi collegare quelli di terze parti, ad esempio quelli di Google, è molto facile ricordare l'IP 8.8.8.8, userò il suo esempio per configuralo, ma nessuno ti disturba ad usare quelli che ti piacciono di più.

Modifichiamo la sezione, prima devi rimuovere i commenti da essa e aggiungere DNS di terze parti, se è necessario aggiungere più server, ad esempio, nel caso in cui il server di Google non possa sopportare le tue richieste e si guasti :), quindi L'IP di altri server può essere scritto in una colonna, quindi è possibile ottenere una maggiore tolleranza agli errori.

spedizionieri(8.8.8.8; 193.58.251.251; //Servizio DNS russo -SkyDNS};

In questa sezione è meglio inserire l'IP del server che hai specificato nel file /etc/resolv.conf oppure inseriscilo nella sezione server dei nomi questo IP. Salva le modifiche ed esci. Riavvia il server e controlla. Digitiamo la riga di comando nslookupmail.ru
Dovrebbe produrre:

Risposta non autorevole: Nome: mail. ru Indirizzi: 94.100.191.202

Ciò suggerisce che il nostro server non è il principale nel servire questa zona (mail.ru), ma ha aggiunto richieste alla cache!
Ora dobbiamo creare una zona DNS per la nostra rete in modo che le macchine possano trovare vari servizi di rete: potrebbero esserci, ad esempio, stampanti di rete, possono essere indipendenti o condivise su altre postazioni di lavoro.
La nostra zona può essere chiamata orgname – cioè Nome dell'organizzazione.
Prima di tutto creiamo una zona, per questa la modificheremo denominato.conf.local

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

e aggiungi quanto segue:

zona "nomeorg" (tipo master; file "/etc/bind/db.nomeorg";);

Salva ed esci
Ora dobbiamo creare un file di configurazione della zona

#vim/etc/bind/db. nomeorg

e incollaci dentro quanto segue:
(Prestare molta attenzione alla sintassi del file di configurazione, anche i punti hanno un significato)

@IN SOA nomeorg. radice. nomeorg. (20101015 4h; tempo di aggiornamento - 4 ore 1h; ripetizione ogni ora 1w; per quanto tempo memorizzare le informazioni - 1 settimana 1d); Il TTL (time to live) di un record è 1 giorno @ IN NS orgname. ; nomeservernome @ IN A 192.168.10.1 ; A - record - l'indirizzo IP del nostro server DNS che serve questa zona, @ significa che questa è la zona root. * IN CNAME @ stampante IN A 192.168.10.25 ; È possibile creare un record DNS per una stampante di rete situata su 192.168.10.25

Ora, quando aggiungi un nuovo dispositivo di rete, devi fare 2 cose:
1) Prenotare un indirizzo IP su un server DHCP, puoi leggere come fare nell'articolo - Configurare un server DHCP
2) Crea una zona DNS per questo IP, digita nomedispositivo IN A XXX.XXX.XXX.XXX. Dove: nomedispositivo è il nome di rete del dispositivo; XXX.XXX.XXX.XXX è il suo indirizzo IP riservato sul server DHCP.

ora dobbiamo modificare il file resolv.conf

#vim/etc/resolv. conf

e inserisci lì:

server dei nomi 127.0.0.1

tutto quello che c'era può essere commentato inserendo #
il server si riavvia

# riavviare

Ciò è stato fatto in modo che il server cerchi tutto nel proprio database e solo allora BIND reindirizzerà le richieste all'IP del server 8.8.8.8 il cui IP è incluso nella direttiva spedizionieri.
Ora puoi verificare la funzionalità:
Se il test viene eseguito in Windows:

eseguire il ping del nome dispositivo. nomeorg

Se testiamo da Linux:

eseguire il ping del nome dispositivo. nomeorg - c 4

I ping dovrebbero essere inviati all'IP specificato anziché a XXX.XXX.XXX.XXX

Puoi anche verificare la velocità di elaborazione delle richieste con il comando scavare

# dig @127.0.0.1 tut.da ;<<>> DiG 9.9.5-9+deb8u6-Debian<<>> @127.0.0.1 tut.da ; (1 server trovato) ;; opzioni globali: +cmd ;; Ho ricevuto la risposta: ;; ->>INTESTAZIONE<<- 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

Il DNS (Domain Name System) è un componente importante e piuttosto difficile da configurare, necessario per il funzionamento di siti Web e server. Molti utenti utilizzano i server DNS forniti dal proprio provider di hosting, ma possedere i propri server DNS presenta alcuni vantaggi.

In questo tutorial imparerai come installare Bind9 e configurarlo come server DNS di caching o inoltro su un server Ubuntu 14.04.

Requisiti

  • Comprendere i tipi base di server DNS. Puoi trovare maggiori dettagli su.
  • Due macchine, almeno una delle quali esegue Ubuntu 14.04. La prima macchina verrà configurata come client (indirizzo IP 192.0.2.100) e la seconda come server DNS (192.0.2.1).

Imparerai come configurare una macchina client per inviare query tramite un server DNS.

Memorizzazione nella cache del server DNS

I server di questo tipo sono anche chiamati risolutori perché elaborano query ricorsive e in genere possono cercare dati DNS da altri server.

Quando un server DNS con memorizzazione nella cache monitora la risposta a una query del client, restituisce la risposta al client e la archivia anche nella cache per il periodo di tempo consentito dal valore TTL dei record DNS corrispondenti. La cache può quindi essere utilizzata come fonte di risposte alle richieste successive per accelerare il tempo complessivo di elaborazione delle richieste.

Quasi tutti i server DNS nella configurazione di rete memorizzeranno i server nella cache. Un server DNS con memorizzazione nella cache è una buona scelta per molte situazioni. Se non vuoi fare affidamento sui server DNS del tuo provider di hosting o su altri server DNS pubblici, configura il tuo server DNS di memorizzazione nella cache. Minore è la distanza tra il server DNS e le macchine client, minore sarà il tempo necessario per soddisfare le richieste DNS.

Server DNS di inoltro

Dal punto di vista del cliente, un server DNS di inoltro sembrerà quasi identico a un server di memorizzazione nella cache, ma i meccanismi e il carico di lavoro sono completamente diversi.

Un server DNS di inoltro offre gli stessi vantaggi di un server di memorizzazione nella cache. Tuttavia, in realtà non esegue alcuna query ricorsiva. Invece, inoltra tutte le richieste a un server di risoluzione esterno e quindi memorizza nella cache i risultati per le richieste successive.

Ciò consente al server di reindirizzamento di servire le richieste dalla propria cache senza dover elaborare richieste ricorsive. Pertanto, questo server elabora solo singole richieste (richieste client reindirizzate) e non l'intera procedura di ricorsione. Ciò può rappresentare un vantaggio in ambienti con larghezza di banda esterna limitata, dove i server di memorizzazione nella cache devono essere modificati frequentemente e in situazioni in cui le richieste locali devono essere instradate a un server e le richieste esterne a un altro.

1: installa Bind sul server DNS

Il pacchetto Bind può essere trovato nel repository ufficiale di Ubuntu. Aggiorna l'indice del tuo pacchetto e installa Bind utilizzando il gestore apt. È inoltre necessario installare un paio di dipendenze.

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

Successivamente, puoi iniziare a configurare il server. La configurazione del server di memorizzazione nella cache può essere utilizzata come modello per la configurazione del server di inoltro, pertanto è necessario configurare prima il server DNS di memorizzazione nella cache.

2: Configurazione di un server DNS di memorizzazione nella cache

Per prima cosa devi configurare Bind come server DNS di memorizzazione nella cache. Questa configurazione obbligherà il server a cercare in modo ricorsivo le risposte alle richieste del client su altri server DNS. Interrogarà in sequenza tutti i server DNS corrispondenti finché non troverà una risposta.

I file di configurazione del bind sono archiviati nella directory /etc/bind.

La maggior parte dei file non necessita di modifiche. Il file di configurazione principale si chiama name.conf (named e bind sono due nomi per la stessa applicazione). Questo file fa riferimento ai file Named.conf.options, Named.conf.local e Named.conf.default-zones.

Per configurare un server DNS di memorizzazione nella cache, è sufficiente modificare name.conf.options.

sudo nano name.conf.options

Questo file si presenta così (commenti omessi per semplicità):

opzioni (
directory "/var/cache/bind";
convalida DNSsec automatica;

ascolta-su-v6 (qualsiasi;);
};

Per configurare un server di memorizzazione nella cache, è necessario creare un elenco di controllo degli accessi o ACL.

È necessario proteggere il server DNS che elabora le query ricorsive dagli aggressori. Gli attacchi di amplificazione DNS sono particolarmente pericolosi perché possono coinvolgere il server in attacchi di tipo Denial of Service distribuiti.

Gli attacchi di amplificazione DNS sono un modo per bloccare server e siti Web. Per fare ciò, gli aggressori cercano di trovare server DNS pubblici che elaborano query ricorsive. Falsificano l'indirizzo IP della vittima e inviano una richiesta che restituirà una risposta molto ampia al server DNS. In questo caso, il server DNS restituisce troppi dati al server della vittima in risposta a una piccola richiesta, aumentando la larghezza di banda disponibile dell'aggressore.

L'hosting di un server DNS ricorsivo pubblico richiede un'attenta configurazione e amministrazione. Per evitare che il tuo server venga violato, configura un elenco di indirizzi IP o intervalli di rete di cui il server può fidarsi.

Prima del blocco delle opzioni, aggiungi un blocco ACL. Crea un'etichetta per il gruppo ACL (in questo tutorial il gruppo si chiama goodclients).

acl buoniclienti (
};
opzioni (
. . .

In questo blocco, elenca gli indirizzi IP o le reti che avranno accesso a questo server DNS. Poiché il server e il client sono in esecuzione sulla sottorete /24, è possibile limitare l'accesso a questa sottorete. È inoltre necessario sbloccare localhost e localnets, che si connettono automaticamente.

acl buoniclienti (
192.0.2.0/24;
host locale;
reti locali;
};
opzioni (
. . .

Ora disponi di una ACL client sicura. Puoi iniziare a configurare la risoluzione della richiesta nel blocco delle opzioni. Aggiungi le seguenti righe:

opzioni (
directory "/var/cache/bind";
ricorsione sì;

. . .

Il blocco opzioni abilita esplicitamente la ricorsione e quindi configura l'opzione consenti-query per utilizzare l'ACL. È inoltre possibile utilizzare un altro parametro, ad esempio consentire-ricorsione, per fare riferimento al gruppo ACL. Quando la ricorsione è abilitata, consenti-ricorsione definirà un elenco di client che possono utilizzare servizi ricorsivi.

Tuttavia, se la ricorsione consentita non è impostata, Bind torna all'elenco consenti-query-cache, quindi all'elenco consenti-query e infine agli elenchi localnets e localhost predefiniti. Poiché stiamo configurando solo un server di memorizzazione nella cache (non ha zone proprie e non inoltra query), l'elenco di query consentite si applicherà sempre e solo alla ricorsione. Questo è il modo più comune per definire un ACL.

Salva e chiudi il file.

Queste sono tutte le impostazioni che devono essere aggiunte al file di configurazione del server DNS di memorizzazione nella cache.

Nota: Se desideri utilizzare solo questo tipo di DNS, procedi con la verifica delle configurazioni, riavvia il servizio e configura il tuo client.

3: Configurazione di un server DNS di inoltro

Se la tua infrastruttura è più adatta a un server DNS di inoltro, puoi modificare leggermente la configurazione.

Attualmente il file name.conf.options assomiglia a questo:

acl buoniclienti (
192.0.2.0/24;
host locale;
reti locali;
};
opzioni (
directory "/var/cache/bind";
ricorsione sì;
consentire-query(buoniclienti;);
convalida DNSsec automatica;
dominio auth-nx no; # conforme a RFC1035
ascolta-su-v6 (qualsiasi;);
};

È possibile utilizzare lo stesso ACL per limitare il server DNS a un elenco specifico di client. Tuttavia, ciò richiede una leggera modifica della configurazione in modo che il server non tenti più di eseguire query ricorsive.

Non modificare la ricorsione in no. Il server di reindirizzamento supporta ancora i servizi ricorsivi. Per configurare un server di reindirizzamento, è necessario creare un elenco di server di cache a cui reindirizzerà le richieste.

Questo viene fatto nel blocco options(). Innanzitutto, è necessario creare al suo interno un nuovo blocco forwarder, in cui verranno archiviati gli indirizzi IP dei server dei nomi ricorsivi a cui si desidera reindirizzare le richieste. In questo caso si tratterà dei server DNS di Google (8.8.8.8 e 8.8.4.4):

. . .
opzioni (
directory "/var/cache/bind";
ricorsione sì;
consentire-query(buoniclienti;);
spedizionieri (

8.8.8.8;

8.8.4.4;

};
. . .

La configurazione risultante è simile alla seguente:

acl buoniclienti (
192.0.2.0/24;
host locale;
reti locali;
};
opzioni (
directory "/var/cache/bind";
ricorsione sì;
consentire-query(buoniclienti;);
spedizionieri (
8.8.8.8;
8.8.4.4;
};
solo avanti;
convalida DNSsec automatica;
dominio auth-nx no; # conforme a RFC1035
ascolta-su-v6 (qualsiasi;);
};

L'ultima modifica riguarda il parametro dnssec. Con la configurazione attuale e a seconda delle impostazioni dei server DNS a cui vengono reindirizzate le richieste, nei log potrebbero comparire i seguenti errori:

25 giugno 15:03:29 cache denominata: errore (inseguimento dei server DS) risoluzione di "in-addr.arpa/DS/IN": 8.8.8.8#53
25 giugno 15:03:29 cache denominata: errore (nessun DS valido) risoluzione di "111.111.111.111.in-addr.arpa/PTR/IN": 8.8.4.4#53

Per evitarli, è necessario modificare il parametro dnssec-validation su yes e abilitare esplicitamente dnssec.

. . .
solo avanti;
abilitazione DNSsec sì;
convalida DNSsec sì;
dominio auth-nx no; # conforme a RFC1035
. . .

Salva e chiudi il file. La configurazione del server DNS di inoltro è completata.

4: controlla le impostazioni e riavvia Bind

Ora devi assicurarti che le impostazioni funzionino come previsto.

Per verificare la sintassi dei file di configurazione, inserire:

sudo denominato-checkconf

Se non sono presenti errori nei file, il prompt dei comandi non visualizzerà alcun output.

Se ricevi un messaggio di errore, correggilo e riprova.

È quindi possibile riavviare il demone Bind per aggiornare le impostazioni.

Riavvio del servizio sudo bind9

Quindi è necessario controllare i log del server. Esegui il comando sul server:

sudo tail -f /var/log/syslog

Ora apri un nuovo terminale e inizia a configurare il computer client.

5: Configurazione del cliente

Accedi al computer client. Verificare che il client sia elencato nel gruppo ACL del server DNS configurato. Altrimenti, il server DNS rifiuterà di servire le richieste di questo client.

Modifica il file /etc/resolv.conf per indirizzare il server a un nameserver.

Le modifiche apportate qui persisteranno solo fino al riavvio, il che è ottimo per i test. Se sei soddisfatto dei risultati delle impostazioni del test, puoi rendere queste impostazioni permanenti.

Apri il file con sudo in un editor di testo:

sudo nano /etc/resolv.conf

Il file deve elencare i server DNS che verranno utilizzati per risolvere le query. Per fare ciò, utilizzare la direttiva nameserver. Commenta tutte le voci correnti e aggiungi una riga del server dei nomi che punta al tuo server DNS:

server dei nomi 192.0.2.1
# server dei nomi 8.8.4.4
# server dei nomi 8.8.8.8
# server dei nomi 209.244.0.3

Salva e chiudi il file.

Ora puoi inviare una richiesta di prova per assicurarti che si risolva correttamente.

Puoi usare ping per questo:

ping -c 1 google.com
PING google.com (173.194.33.1) 56(84) byte di dati.
64 byte da sea09s01-in-f1.1e100.net (173.194.33.1): icmp_seq=1 ttl=55 tempo=63,8 ms
--- Statistiche ping di google.com ---
1 pacchetto trasmesso, 1 ricevuto, 0% perdita di pacchetti, tempo 0 ms
rtt min/avg/max/mdev = 63,807/63,807/63,807/0,000 ms

Su