UNPKG

arch-wiki-md-repo

Version:

All arch-wiki articles in markdown format, updated every two days.

179 lines (112 loc) 8.16 kB
dnsmasq fornisce un servizio di cache DNS e di server DHCP. Come Domain Name Server (DNS), può conservare i risultati delle richieste di risoluzione per migliorare la velocità di connessione ai siti già visitati. Come server DHCP. [dnsmasq](https://www.archlinux.org/packages/?name=dnsmasq) può essere usato per fornire indirizzi IP interni ed instradare i computer in una LAN. Uno o entrambi questi servizi possono essere utilizzati. dnsmasq è considerato leggero e semplice da configurare; è progettato sia per l'uso su di un personal computer, che per una rete con meno di 50 computer. Fornisce anche il servizio di server [PXE](/index.php/PXE "PXE"). ## Contents * [1 Installazione](#Installazione) * [2 Configurazione della cache DNS](#Configurazione_della_cache_DNS) * [2.1 File degli indirizzi DNS](#File_degli_indirizzi_DNS) * [2.2 dhcpcd](#dhcpcd) * [2.3 dhclient](#dhclient) * [2.3.1 NetworkManager](#NetworkManager) * [2.3.1.1 Altri metodi](#Altri_metodi) * [2.3.1.2 Configurazione personalizzata](#Configurazione_personalizzata) * [3 DHCP Server Setup](#DHCP_Server_Setup) * [4 Avviare il demone](#Avviare_il_demone) * [5 Test](#Test) * [5.1 DNS Caching](#DNS_Caching) * [6 DHCP Server](#DHCP_Server) * [7 Trucchi e consigli](#Trucchi_e_consigli) * [7.1 Prevenire che OpenDNS reindirizzino le query a Google](#Prevenire_che_OpenDNS_reindirizzino_le_query_a_Google) * [7.2 Visualizzare i lease](#Visualizzare_i_lease) ## Installazione [Installare](/index.php/Pacman_(Italiano) "Pacman (Italiano)") il pacchetto [dnsmasq](https://www.archlinux.org/packages/?name=dnsmasq) dai [repository ufficiali](/index.php/Official_repositories_(Italiano) "Official repositories (Italiano)"). ## Configurazione della cache DNS Per configurare dnsmasq come demone per la cache delle richieste DNS su un singolo computer modificare il file `/etc/dnsmasq.conf` aggiungendo o de commentando l'indirizzo di localhost in ascolto: ``` listen-address=127.0.0.1 ``` Per utilizzare questo computer come server DNS specificare l'indirizzo IP fisso sulla rete: ``` listen-address=<192.168.1.1> #IP di Esempio ``` ### File degli indirizzi DNS Dopo aver configurato dnsmasq il client DHCP dovrà dare precedenza all'indirizzo di localhost rispetto agli indirizzi contenuti nel file di configurazione dei DNS (`/etc/resolv.conf`). Facendo questo, tutte le richieste verranno inviate a dnsmasq prima di provare a risolverle mediante DNS esterni. Dopo che è stato configurato il client DHCP sarà necessario riavviare il servizio di rete affinché le modifiche abbiano effetto. ### dhcpcd [dhcpcd](https://www.archlinux.org/packages/?name=dhcpcd) ha la caratteristica di preporre o posporre i nameserver al file `/etc/resolv.conf` creando o modificando rispettivamente i file `/etc/resolv.conf.head` e `/etc/resolv.conf.tail`: ``` echo "nameserver 127.0.0.1" > /etc/resolv.conf.head ``` ### dhclient Per dhclient, de commentare nel file (o crearlo) `/etc/dhclient.conf`: ``` prepend domain-name-servers 127.0.0.1; ``` #### NetworkManager NetworkManager ha la capacità di avviare `dnsmasq` dal suo file di configurazione. Aggiungere l'opzione `dns=dnsmasq` al file `NetworkManager.conf` (nella sezione `[main]` del file) e togliere dnsmasq dall'avvio automatico: `/etc/NetworkManager/NetworkManager.conf` ``` [main] plugins=keyfile dns=dnsmasq ``` Creare la cartella di configurazione di dnsmasq per NetworkManager se non esiste: ``` mkdir /etc/NetworkManager/dnsmasq.d ``` ##### Altri metodi Se si utilizza il demone dnsmasq, allora sarà necessario aggiungere l'indirizzo di localhost al file `resolv.conf` (che NetworkManager andrà ad interrogare). Dopo l'aggiornamento di [NetworkManager](/index.php/NetworkManager_(Italiano) "NetworkManager (Italiano)") alla versione 0.7, Arch Linux adesso richiama [dhcpcd](https://www.archlinux.org/packages/?name=dhcpcd) direttamente invece di [dhclient](https://www.archlinux.org/packages/?name=dhclient) più comunemente utilizzato come default. Dati gli argomenti utilizzati con [dhcpcd](https://www.archlinux.org/packages/?name=dhcpcd), esso non legge più le configurazioni in `/etc/resolv.conf.head`, e `/etc/resolv.conf.tail` per scelta dei server DNS. Diverse opzioni sono disponibili. La prima opzione potrebbe essere l'aggiunta di uno script al dispatcher di NetworkManager di preporre localhost in `resolv.conf`: `/etc/NetworkManager/dispatcher.d/localhost-prepend` ``` #!/bin/bash # Prepone localhost in resolv.conf per dnsmasq if [[ ! $(grep 127.0.0.1 /etc/resolv.conf) ]]; then sed -i '1s|^|nameserver 127.0.0.1 |' /etc/resolv.conf fi ``` renderlo eseguibile: ``` # chmod +x /etc/NetworkManager/dispatcher.d/localhost-prepend ``` La seconda opzione consiste nell'aprire le impostazioni di NetworkManager (solitamente facendo click con il tasto destro sopra l'applet) ed inserire le impostazioni manualmente. La configurazione dipenderà dal tipo di front-end utilizzato; il processo solitamente consiste nel fare click con li tasto destro sull'applet, modificare (o creare) un profilo, e successivamente impostare il tipo di DHCP in 'Automatic (specify addresses).' Gli indirizzi DNS dovranno essere inseriti e solitamente si utilizza questa forma: `127.0.0.1, DNS-server-one, ...`. Ed infine, NetworkManager può essere usato con dhclient usando ([networkmanager-dhclient](https://aur.archlinux.org/packages/networkmanager-dhclient/)). ##### Configurazione personalizzata A partire da NetworkManager 0.9.6 è possibile creare una configurazione personalizzata per dnsmasq creando i file di configurazione nella cartella `/etc/NetworkManager/dnsmasq.d/` ## DHCP Server Setup Per default dnsmasq ha la funzionalità di server DHCP disabilitata, se si desidera utilizzarla dovrà essere attivata nel file `/etc/dnsmasq.conf`. Di seguito sono riportate le impostazioni più importanti: ``` # Ascolta solamente sulla interfaccia LAN NIC. Così facendo apre per i # protocolli tcp/udp la porta 53 a localhost e per il protocollo udp la porta 67 all'esterno: interface=<LAN-NIC> # dnsmasq aprirà per i protocolli tcp/udp la porta 53 e udp la porta 67 all'esterno # per aiutare con le interfacce dinamiche (assegnazione dinamica degli ip). # Dnsmasq rifiuterà le richieste esterne, ma la paranoia può essere tale da # chiuderle e lasciare al kernel occuparsene: bind-interfaces # Range degli indirizzi IP da rendere disponibili ai pc della LAN dhcp-range=192.168.111.50,192.168.111.100,12h # Se si necessita di assegnare indirizzi statici, effettuare il bind tramite # il MAC address della scheda: dhcp-host=aa:bb:cc:dd:ee:ff,192.168.111.50 ``` ## Avviare il demone Per avviare dnsmasq all'avvio: `# systemctl enable dnsmasq` Per avviarlo immediatamente: `# systemctl start dnsmasq` Per verificare se dnsmasq è stato avviato correttamente, controllare il log; dnsmasq inoltra i suoi messaggi al file `/var/log/messages.log`. La configurazione di rete dovrà essere riavviata affinché il client DHCP possa creare un nouvo `/etc/resolv.conf`. ## Test ### DNS Caching Per effettuare un test di velocità per il lookup ad un sito che ancora non è stato visitato dall'avvio di dnsmasq (`dig` fa parte del pacchetto [bind-tools](https://www.archlinux.org/packages/?name=bind-tools)): ``` $ dig archlinux.org | grep "Query time" ``` Eseguendo ancora il comando verrà utilizzato l'indirizzo IP dalla cache DNS ed il tempo di lookup sarà molto inferiore se dnsmasq è configurato correttamente. ## DHCP Server Da un computer che è collegato ad quello con dnsmasq, configurarlo per ottenere l'assegnamento dell'indirizzo IP mediante DHCP, successivamente tentare di accedere alla rete come di solito. ## Trucchi e consigli ### Prevenire che OpenDNS reindirizzino le query a Google Per impedire che OpenDNS rediriga tutte le richieste a Google ai propri server di ricerca, aggiungere al file `/etc/dnsmasq.conf`: `server=/www.google.com/<IP DNS ISP>` ### Visualizzare i lease `$ cat /var/lib/misc/dnsmasq.leases`