Dnsmasq è un open source, completamente gratuito, facile da configurare e leggero software di riga di comando progettato dall'offset per agire come server DHCP (Dynamic Host Configuration Protocol) e DNS (Domain Name System ) di spedizioniere su sistemi operativi GNU / Linux e UNIX.
Il software è stato progettato in modo tale da fornire alla rete DNS, così come la funzionalità DHCP. È in grado di servire i nomi delle macchine locali che non sono nel DNS globale e contiene numerose caratteristiche attraenti.
Potenti opzioni di riga di comando
Per questo progetto è disponibile una vasta gamma di opzioni di riga di comando, che possono essere visualizzate in un'occhiata eseguendo il comando & lsquo; dnsmasq --help & rsquo; in un'applicazione Terminal. Tra questi possiamo citare la possibilità di specificare un indirizzo locale da ascoltare, di specificare la dimensione della cache nelle voci, nonché di specificare un file di configurazione personalizzato.
Come iniziare con Dnsmasq
L'installazione di Dnsmasq su un sistema operativo GNU / Linux è la stessa cosa che si farebbe con qualsiasi altro programma open source distribuito come archivio di origine. Prima di scaricare il pacchetto, salvarlo sul computer (preferibilmente la tua home directory) e estrarre il contenuto utilizzando un programma di utilità di archiviazione.
Quindi passare alla posizione in cui hai estratto il file di archivio in un emulatore di terminali (ad esempio cd /home/softoware/dnsmasq-2.72 - sostituisci & lsquo; softoware & rsquo; con il tuo nome utente), eseguire il & lsquo; ./ configure & amp ; & amp; fare & rsquo; comando per configurare e compilare il programma seguito da & lsquo; sudo make install & rsquo; comando per installarlo a livello di sistema.
Funziona su GNU / Linux, BSD e Mac OS X
Dnsmasq supporta più sistemi operativi, tra cui Linux (Debian, Gentoo, Slackware, Smoothwall, SUSE, IP-Cop, Firebox, floppyfw, LEAF, CoyoteLinux, Clarkconnect, Freesco ecc.), BSD (FreeBSD) e Mac OS X. Esegue su piattaforme computer a 32 bit e 64 bit.
Cosa c'è di nuovo in questa release:
- Genera un errore quando viene configurato con un ciclo CNAME anziché un incidente. Grazie a George Metz per aver notato questo problema.
- Calcola correttamente la lunghezza del pacchetto di risposta errore TFTP. Questo risolve un problema quando il messaggio di errore in un pacchetto TFTP supera il limite arbitrario di 500 caratteri. Il messaggio è stato troncato correttamente, ma non la lunghezza dei pacchetti, in modo da aggiungere dati aggiuntivi. Questo è un possibile rischio di sicurezza, poiché i dati aggiuntivi provengono da un buffer utilizzato anche per DNS, in modo che le query DNS precedenti o le risposte possano essere perdute. Grazie a Mozilla per finanziare l'audit di sicurezza che ha notato questo errore.
- Corregge l'errore di logica nel codice netlink di Linux. Ciò potrebbe causare dnsmasq ad entrare in un anello stretto sui sistemi con un numero molto elevato di interfacce di rete. Grazie a Ivan Kokshaysky per la diagnosi e la patch.
- Risolvere il problema con --dnssec-timestamp per cui la ricezione di SIGHUP avrebbe impegnato erroneamente il controllo timestamp. Grazie a Kevin Darbyshire-Bryant per questo lavoro.
- Bump zone serial per ricaricare / etc / hosts e amici quando fornisce DNS autorevole. Grazie a Harrald Dunkel per aver notato questo.
- Gestire gli indirizzi IPv6 v4 mappati in modo sincero in --synth-domain. Questi hanno la rappresentazione standard come: ffff: 1.2.3.4 e sono ora convertiti in nomi come -ffff-1-2-3-4.
- Gestire i server a rilegatura a un'altra interfaccia (--server=1.2.3.4@eth0) quando l'interfaccia denominata viene distrutta e ricreata nel kernel. Grazie a Beniamino Galvani per la patch.
- Consenti i record CNAME wildcard in zone autorevoli. Ad esempio --cname = * .example.com, default.example.com Grazie a Pro Backup per sponsorizzare questo sviluppo.
- Bump il numero arretrato consentito delle connessioni TCP da 5 a 32 e fai questo un'opzione configurabile in fase di compilazione. Grazie a Donatas Abraitis per aver diagnosticato questo problema come potenziale.
- Aggiungere la variabile di ambiente DNSMASQ_REQUESTED_OPTIONS allo script di sostituzione del lease. Grazie a ZHAO Yu per la patch.
- Fiobare il foobar in codice rrfilter, che potrebbe causare risposte non formulate, in particolare quando la convalida DNSSEC è attiva e il server upstream restituisce la risposta con i RR in un particolare ordine. L'unico server DNS noto a solleticare questo è Nominum's. Grazie a Dave Taht per aver notato il bug e aiutato nella correzione.
- Correggi la manpage che ha mentito che solo l'indirizzo primario di un'interfaccia viene usata da - nome interfaccia.
- Make --localise-query si applicano ai nomi da --interface-name. Grazie a Kevin Darbyshire-Bryant e Eric Luehrsen per spingere questo.
- Migliora la gestione dei collegamenti quando si parla con server TCP upstream. Specificamente, essere pronti ad aprire una nuova connessione TCP quando vogliamo fare più query, ma il server upstream accetta meno query per connessione.
- Migliora la registrazione dei server a monte quando ci sono molte voci di "indirizzi locali". Grazie a Hannu Nyman per la patch.
- Fare --bogus-priv applicare a IPv6, per i prefissi specificati in RFC6303. Grazie a Kevin Darbyshire-Bryant per lavorare su questo.
- Consenti l'utilizzo di indirizzi MAC con root -tftp-unique. Grazie a Floris Bos per la patch.
- Opzione Add -dhcp-reply-delay. Grazie a Floris Bos per la patch.
- Aggiungi la funzione di impostazione mtu a --ra-param. Grazie a David Flamand per la patch.
- Cattura STDOUT e STDERR l'output da dhcp-script e lo registri come parte del flusso di registro dnsmasq. Rende la vita più facile per diagnosticare problemi imprevisti negli script. Grazie a Petr Mensik per la patch.
- Genera errori fatali quando non riesce a analizzare l'output dello script dhcp in modalità "init". Evita errori strani quando lo script emette casualmente messaggi di errore. Grazie a Petr Mensik per la patch.
- Crea -rev-server per un lavoro subnet di RFC1918 anche in presenza della bandiera -bogus-priv. Grazie a Vladislav Grishenko per la patch.
- Estendi --ra-param mtu: campo per consentire un nome di interfaccia. Ciò consente di pubblicizzare l'MTU di un'interfaccia WAN sulle interfacce interne di un router. Grazie a Vladislav Grishenko per la patch.
- Controlla ICMP-ping per l'indirizzo in uso per DHCPv4 quando il client specifica un indirizzo in DHCPDISCOVER e quando un indirizzo è configurato localmente. Grazie a Alin Nastac per scoprire il problema.
- Aggiungi nuovo tag DHCP "known-othernet", che viene impostato quando esiste solo un host dhcp per un'altra sottorete. Può essere utilizzato per assicurare che gli host privilegiati non siano indirizzati indirizzi "ospiti". Grazie a Todd Sanket per il suggerimento.
- Rimuove l'inserimento automatico storico del supporto IDN durante la creazione di un supporto di internazionalizzazione. Ciò non va bene ora c'è una scelta di librerie IDN. Assicurati di includere -DHAVE_IDN o -DHAVE_LIBIDN2 per il supporto IDN.
Cosa c'è di nuovo nella versione 2.72:
- Aggiungi la modalità ra-advrouter, per il supporto IPv6 mobile per RFC-3775.
- Aggiungere il supporto per "ipsets" in * BSD, usando pf. Grazie a Sven Falempim per la patch.
- Corregge la condizione di gara che potrebbe bloccare dnsmasq quando un'interfaccia scende e scende rapidamente. Grazie a Conrad Kostecki per aver aiutato a inseguire questo problema.
- Aggiungere i metodi DBus SetFilterWin2KOption e SetBogusPrivOption. Grazie al progetto Smoothwall per la patch.
- Fix non riuscito a costruire contro Nettle-3.0. Grazie a Steven Barth per scoprire questo e trovare la correzione. Quando assegna i lease esistenti di DHCP a intefaces confrontando le reti, gestisci il caso che due o più interfacce hanno la stessa parte di rete, ma le lunghezze di prefisso differenti (favoriscono la lunghezza del prefisso più lungo). Grazie a Lung-Pin Chang per la patch.
- Aggiungere una modalità che rileva e rimuove i cicli di inoltro DNS, ossia una query inviata a un server upstream restituisce una nuova query a dnsmasq e viene quindi nuovamente inoltrata, creando una query che si estende più volte prima di essere eliminata. I server upstream che sono stati disattivati e questo evento viene registrato. Grazie a Smoothwall per la loro sponsorizzazione di questa funzionalità.
- Estendi --conf-dir per consentire il filtraggio di file. Così --conf-dir = / etc / dnsmasq.d, *. Conf caricherà tutti i file in /etc/dnsmasq.d che finiscono in .conf
- Corregge l'errore quando ha risposto NXDOMAIN al posto di NODATA in alcune circostanze.
- Fix bug che ha causato dnsmasq a non rispondere se non è riuscito a inviare pacchetti a causa di un'interfaccia di rete che scompare. Grazie a Niels Peen per aver notato questo.
- Risolvere il problema con l'opzione -local-service su piattaforme big-endian. Grazie a Richard Genoud per la patch.
Cosa c'è di nuovo nella versione 2.68:
- Utilizza indirizzi casuali per allocazioni temporanee di indirizzi DHCPv6 anziché indirizzi stabili determinati in modo algoritmico.
- Correggere l'errore che significava che il DHCPv6 DUID non era disponibile in script DHCP durante la durata del processo dnsmasq che ha creato il DUID de-novo. Una volta che il DUID è stato creato e memorizzato nel file di locazione e riavviato dnsmasq, questo errore è scomparso.
- Fix bug introdotto in 2.67 che potrebbe causare errori NXDOMAIN ritorna alle query CNAME.
- Correggere errori di generazione su MacOS X e openBSD.
- Consentire alle specifiche di subnet in -auth-zone di essere nomi di interfaccia e di letterali di indirizzo. Ciò consente di configurare il DNS autorevole quando le intervalli di indirizzi locali sono dinamiche e funzionano molto meglio rispetto al precedente lavoro in cui sono esenti i contratti di DHCP variabili dal filtro dell'indirizzo IP. Di conseguenza, tale lavoro viene rimosso. In determinate circostanze, questa modifica interrompe la configurazione esistente: se si basa sull'eccezione di gamma controversa, è necessario modificare la zona -auth per specificare la stessa interfaccia utilizzata per la creazione di intervalli DHCP, probabilmente con un trailing "/ 6" come questo: --auth-zone = example.com, eth0 / 6 per limitare gli indirizzi agli indirizzi IPv6 di eth0.
- Risolve i problemi quando pubblica prefissi IPv6 eliminati. Se il prefisso viene eliminato (anziché sostituito), non viene pubblicizzato con zero tempo preferito. Grazie a Tsachi per il rapporto bug.
- Fix segfault con alcuni CNAME localmente configurati. Grazie a Andrew Childs per aver notato il problema.
- Risolve la perdita di memoria sulla nuova lettura di / etc / hosts e amici, introdotta in 2.67.
- Controllare l'interfaccia di arrivo delle richieste DNS e TFTP in arrivo tramite IPv6, anche in modalità -bind-interfaces. Questo non è possibile per IPv4 e può generare avvisi spaventosi, ma come è sempre possibile per IPv6 (l'API esiste sempre) allora dobbiamo farlo sempre.
- Modifica le regole sulle lunghezze del prefisso in -dhcp-range per IPv6. La nuova regola è che la lunghezza del prefisso specificato deve essere maggiore o uguale alla lunghezza del prefisso dell'indirizzo corrispondente nell'interfaccia locale.
Cosa c'è di nuovo nella versione 2.63:
- L'aggiunta principale in questa versione è una nuova modalità, --bind-dynamic, che evita di legare l'indirizzo IP jolly e copes con le interfacce di rete create in modo dinamico, eliminando così le principali limitazioni delle due modalità di rete esistenti.
Cosa c'è di nuovo nella versione 2.61:
- Questa versione ha un sacco di lavori aggiuntivi sul codice DHCPv6 che ha debuttato in 2,60.
- Molti bug sono stati risolti e sono aggiunte nuove funzionalità.
- La funzionalità di pubblicità del router è ora molto più configurabile e c'è una modalità che consente a dnsmasq di creare record DNS AAAA per gli host che utilizzano gli indirizzi IPv6 SLAAC e gli indirizzi IPv4 DHCP.
Cosa c'è di nuovo nella versione 2.59:
- Questa versione affronta un paio di problemi che sono emersi da dnsmasq-2.58, che potrebbero causare problemi all'avvio con indirizzi IP-link-locali.
- Una è una regressione in dnsmasq e l'altra deriva da una modifica del comportamento delle interfacce di bridge nei recenti kernel Linux.
Cosa c'è di nuovo nella versione 2.58:
- versione 2.58
- Fornire una definizione della macro SA_SIZE in cui manca. Le correzioni creano guasti su openBSD.
- Non includere un terminatore zero alla fine dei messaggi inviati a / dev / log quando / dev / log è una socket datagramma. Grazie a Didier Rabound per aver notato il problema.
- Aggiungi-flag di sequenza-ip-add, per forzare l'allocazione degli indirizzi IP in ordine crescente. Si noti che la modalità pseudo-casuale predefinita è generalmente migliore, ma alcune applicazioni di distribuzione del server necessitano di questo.
- Risolvere il problema quando un server-id di 0.0.0.0 viene inviato a un client quando un DHCP relè è in uso se un client rinnova un contratto di locazione dopo il riavvio di dnsmasq e prima che qualsiasi client della subnet riceva un nuovo contratto di locazione. Grazie a Mike Ruiz per aiutarti a cacciare questo uno.
- Non restituire NXDOMAIN a una query AAAA se abbiamo CNAME che indica un solo record A: NODATA è la risposta corretta in questo caso. Grazie a Tom Fernandes per aver notato il problema.
- Rilascia la necessità di fornire un netmask in -dhcp-range per reti che utilizzano un relay DHCP. Mentre ciò è ancora desiderabile, in assenza di una maschera di rete, dnsmasq utilizzerà un default basato sulla classe (A, B o C) dell'indirizzo. Questo dovrebbe almeno rimuovere una causa di errore misterioso per le persone che utilizzano indirizzi RFC1918 e relè.
- Aggiungere il supporto per la marcatura di connessione conntrack di Linux. Se abilitato con --conntrack, il contrassegno di connessione per le query DNS in arrivo verrà copiato alle connessioni in uscita utilizzate per rispondere a tali query. Ciò consente un firewall intelligente e una routine di contabilità. Disponibile solo se dnsmasq viene compilato con HAVE_CONNTRACK e aggiunge una dipendenza su libntfilter-conntrack. Grazie a Ed Wildgoose per l'idea iniziale, la sperimentazione e la sponsorizzazione di questa funzione.
- Fornire un messaggio di errore sano quando qualcuno cerca di corrispondere a un tag in -dhcp-host.
- Modificare il comportamento di --dominio necessario, per evitare problemi con i nomi ricorsivi a valle di dnsmasq. Il nuovo comportamento interrompe le query A e AAAA e restituisce NODATA piuttosto che le risposte NXDOMAIN.
- La correzione dell'efficienza per le configurazioni DHCP molto grandi, grazie a James Gartrell e Mike Ruiz per aiutarci.
- Consenti all'indirizzo del server TFTP in -dhcp-boot di essere un nome di dominio che viene visualizzato in / etc / hosts. Ciò può dare indirizzi IP multipli che vengono utilizzati in round-robin, facendo quindi il bilanciamento del carico del server TFTP. Grazie a Sushil Agrawal per la patch.
- Quando due opzioni contrassegnate da dhcp per un determinato numero di opzioni sono entrambe valide, utilizzare quello valido senza un tag della gamma dhcp. Consente di superare il valore di un'opzione DHCP per un particolare host e per i valori della rete.
- - dhcp-range = set: Interface1, ......
- - dhcp-host = set: myhost, .....
- - dhcp-option = tag: Interface1, opzione: nis-domain, "domain1"
- - dhcp-option = tag: myhost, opzione: nis-domain, "DOMAIN2"
- imposterà il dominio NIS a domain1 per gli host nell'intervallo, ma
- sovrascrivi che a domain2 per un host particolare.
- Fix bug che ha causato file e timeout troncati per alcuni trasferimenti TFTP. Il bug si verifica solo con i trasferimenti netascii e necessita di una relazione sfortunata tra la dimensione del file, il blocco di blocco e il numero di nuove righe nell'ultimo blocco prima che si manifesti. Molte grazie a Alkis Georgopoulos per aver individuato il problema e fornendo una prova completa.
- Regolare la regressione nel server TFTP su piattaforme * BSD introdotte nella versione 2.56, a causa della confusione con la lunghezza del sockaddr. Molte grazie a LoA & macr; c Pefferkorn per averlo trovato.
- Supporto agli indirizzi IPv6 di nameservers da /etc/resolv.conf e in opzioni -server. E
- Ad esempio il nameserver fe80 :: 202: a412: 4512: 7bbf% eth0
- server = fe80 :: 202: A412: 4512: 7bbf% eth0. Grazie a
- Michael Stapelberg per il suggerimento.
- Aggiorna la traduzione polacca, grazie a Jan Psota.
- Aggiorna la traduzione francese. Grazie a Gildas Le Nadan.
Cosa c'è di nuovo nella versione 2.57:
- Questa versione corregge un paio di regressioni nella versione precedente e aggiunge il supporto per la piattaforma Android.
Cosa c'è di nuovo nella versione 2.56:
- Aggiungere una patch per consentire a dnsmasq di ottenere i nomi di interfaccia proprio in una zona Solaris. Grazie a Dj Padzensky per questo.
- Migliora l'euristica di parsing dei dati in modo che --dhcp-option = option: domain-search ,. tratta il valore come una stringa e non un indirizzo IP. Grazie a Clemens Fischer per averlo notato.
- Aggiungere il supporto IPv6 al server TFTP. Molte grazie a Jan 'RedBully' Seiffert per le patch.
- Digita le query DNS al livello LOG_INFO, piuttosto che LOG_DEBUG. Ciò rende le cose coerenti con la registrazione DHCP. Grazie a Adam Pribyl per aver notato il problema.
- Assicurarsi che dnsmasq termina in modo chiaro quando si utilizza - syslog-async anche se non è in grado di eseguire una connessione con il syslogd.
- Aggiungi l'opzione -add-mac. Questo è quello di supportare attualmente strutture sperimentali di filtraggio DNS. Grazie a Benjamin Petrin per la patch orignale.
- Fix bug che significava che le tag sono state ignorate nella configurazione del range dhcp che specifica il servizio PXE-proxy. Grazie a Cristiano Cumer per aver notato questo.
- Sollevare un errore se c'è una rottura aggiuntiva, che non fa parte di un'opzione, sulla riga di comando.
- Segnala un paio di messaggi di registro in cache.c provenienti dal sottosistema DHCP. Grazie a Olaf Westrik per la patch.
- Trascina i timestamp dai log quando: a) la registrazione a stderr e b) --keep-in -groundground è impostata. L'impianto di registrazione all'altra estremità di stderr può essere assunto per fornirli. Grazie a John Hallam per la patch.
- Non si lamenta di stringhe più lunghe di 255 caratteri in record -txt, bensì dividono le stringhe lunghe in blocchi di 255character.
- Fix crash su doppio-libero. Questo errore può accadere solo quando lo script dhcp è in uso e quindi solo in circostanze rari innescato da un alto tasso di transazioni DHCP e uno script lento. Grazie a Ferenc Wagner per trovare il problema
- Registrare solo che un file è stato inviato da TFTP dopo che il trasferimento è stato completato con successo.
- Un buon suggerimento di Ferenc Wagner: estendi l'opzione --domain per consentire questo tipo di cosa: --domain = thekelleys.org.uk, 192.168.0.0 / 24, locale che crea automaticamente
- - locale = / thekelleys.org.uk /
- - locale = / 0.168.192.in-addr.arpa /
- Stringere il controllo della sintassi dei contanti esenti nel file di configurazione. Grazie a Fred Damen per aver notato questo.
- Aggiungi dnsmasq logo / icon, contribuito da Justin Swift. Molte grazie per questo.
- Non eseguire mai la cache delle risposte DNS che hanno il set di bit "cd" o risultano dalle query inoltrate con il set di bit "cd". Il bit "cd" indica un server di convalida DNSSEC a monte per ignorare i fallimenti della firma e comunque restituisce le risposte. Senza questa modifica è possibile inquinare la cache dnsmasq con dati difettosi eseguendo una query con il set di bit "cd" e le query successive restituiranno questi dati senza che venga contrassegnato come sospetto. Grazie a Anders Kaseorg per indicare questo problema.
- Aggiungi la bandiera --proxy-dnssec per la conformità con RFC 4035. Dnsmasq eliminerà ora il bit "annuncio" nelle risposte restituite dai server di nomi di validazione a monte a meno che questa opzione non sia impostata.
- Consente un file nome di "-" per il file -conf per leggere stdin. Suggerimento di Timothy Redaelli.
- Ruotare l'ordine dei record SRV nelle risposte per fornire il bilanciamento del carico rotondo quando tutte le priorità sono uguali. Grazie a Peter McKinney per il suggerimento.
- Modifica contrib / MacOSX-launchd / uk.org.thekelleys.dnsmasq.plist in modo che non registri tutte le query a un file per impostazione predefinita. Grazie ancora a Peter McKinney.
- Per impostazione predefinita, l'impostazione di un indirizzo IPv4 per un dominio ma non di un indirizzo IPv6 causa dnsmasq a restituire una risposta NODATA per IPv6 (o viceversa). Così --address = / google.com / 1.2.3.4 arresta le query IPv6 per * google.com da inoltrare. Consentire l'override di questo comportamento definendo la sematica se lo stesso dominio viene visualizzato sia nel server che nell'indirizzo. In questo caso, l'indirizzo ha la priorità per la famiglia di indirizzi in cui viene visualizzato, ma il server ha la priorità della famiglia di indirizzi che non viene visualizzata in corrispondenza di
- Quindi:
- - indirizzo = / google.com / 1.2.3.4
- - server = / google.com / #
- Restituisce 1.2.3.4 per le query IPv4 per * .google.com ma inoltra le query IPv6 al normale nameserver a monte. Allo stesso modo, quando si imposta un indirizzo IPv6 solo questo consentirà l'inoltro delle query IPv4. Grazie a William per aver indicato la necessità di questo.
- Consentire più di un file -dhcp-optsfile e -dhcp-hostsfile e farli comprendere le directory come argomenti allo stesso modo di -addn-hosts. Suggerimento da John Hanks.
- Ignora le richieste di rivendicazione per le locazioni che non conosciamo. Rebind viene trasmesso, per cui potremmo ascoltare una richiesta per un altro server DHCP. NAKing questo è errato. Grazie a Brad D'Hondt per l'assistenza.
- Corregge l'errore estetico che ha prodotto l'output strano quando si scarica statistiche di cache con alcune configurazioni. Grazie a Fedor Kozhevnikov per aver notato questo.
Cosa c'è di nuovo nella versione 2.55:
- Fix crash quando è in uso / etc / ethers. Grazie a Gianluigi Tiesi per averlo trovato.
- Fix crash in netlink_multicast (). Grazie a Arno Wald per averlo trovato.
- Consenti il dominio vuoto "." in opzioni di dominio di ricerca dhcp (119).
I commenti non trovato