Impostazione di dnsmasq per una rete locale


18

Io e un piccolo gruppo di sviluppatori ci siamo appena trasferiti in un nuovo ufficio e mi piacerebbe impostare dnsmasq sul nostro server di sviluppo, quindi quando distribuiamo app Web lì, non dobbiamo modificare i nostri file host. Abbiamo un router a 192.168.3.1 a cui non abbiamo accesso. Ho pensato di installare un server DNS nella casella di sviluppo e tutti registriamo il suo IP come server DNS secondario. Purtroppo sto lottando per farlo funzionare.

Il nome del server di sviluppo è devbox, il suo IP è 192.168.3.99 e esegue l'ultimo Ubuntu Server (Karmic)

Il mio computer esegue Ubuntu Desktop (Karmic)

Cosa mi piacerebbe ottenere

Diciamo che ho tre siti Web, website1, website2, website3, in esecuzione sulla casella di sviluppo. Mi piacerebbe accedervi dagli URL:

http://website1.devbox
http://website2.devbox
http://website3.devbox

Quindi ho configurato Apache nella casella di sviluppo, ho installato dnsmasq e ho inserito le seguenti righe nel suo file hosts:

192.168.3.99 website1.devbox
192.168.3.99 website2.devbox
192.168.3.99 website3.devbox

e modificato il mio file resolv.conf per includere la casella di sviluppo come nameserver:

nameserver 192.168.3.99 

Funziona bene, posso accedere ai siti. Il problema è che non si adatta bene. Vorrei che tutti i domini che terminano con .devbox vengano inoltrati alla casella di sviluppo, e questo è ciò con cui sto lottando.

Ho provato a mettere

192.168.3.99 devbox

nel file hosts e modificando la riga in dnsmasq.conf:

# Add local-only domains here, queries in these domains are answered
# from /etc/hosts or DHCP only.
local=/devbox/

Ma non riesco a farlo funzionare. Se provo qualsiasi URL non esplicitamente presente nel file hosts della casella di sviluppo, la ricerca DNS non riesce.

La direttiva locale è qualcos'altro? Sto guardando nel posto sbagliato?

Risposte:


14

Fare riferimento alla documentazione DNSmasq , in particolare la manpage dnsmasq e il file di configurazione di esempio . La parola chiave locale indica a DNSmasq di eseguire tali ricerche di dominio con dati locali. Ciò influisce , ad esempio, sulle richieste inviate a DNSmasq per foo.localnet e bar.localnet . Non penso sia questo ciò che vuoi.

# Add local-only domains here, queries in these domains are answered
# from /etc/hosts or DHCP only.
local=/localnet/

Per forzare le ricerche dell'host / sottodominio a risolvere un indirizzo specifico, è consigliabile utilizzare la parola chiave address . Il secondo esempio che segue dovrebbe consentire a web1.devbox e web2.devbox e web73872.devbox di risolvere tutti all'indirizzo specificato.

# Add domains which you want to force to an IP address here.
# The example below send any host in doubleclick.net to a local
# webserver.
address=/doubleclick.net/127.0.0.1

# for your example
address=/devbox/192.168.3.99

Uso DNSmasq a casa per gestire semplici cose DNS per la mia LAN; in tal caso, le parole chiave local e the domain associate e expand-hosts sono appropriate. Il server DNSmasq è il mio nameserver principale, quindi tutte le richieste lo attraversano; eventuali indirizzi non locali vengono restituiti al nameserver dell'ISP. È possibile prendere in considerazione tale configurazione, se possibile.


una risposta su un'altra domanda indica che address=/.devbox/192.168.3.99potrebbe essere la sintassi più adatta ai tuoi scopi.
Quack Quixote,

Accidenti, avrei dovuto leggere le parti che avevo incollato dalla configurazione, era ovvio che non era quello di cui avevo bisogno. La direttiva sull'indirizzo ha risolto il problema, grazie!
K. Norbert,

Ho usato quanto sopra con una svolta: il server web / dns / dhcp ha un'interfaccia wireless in modalità Adhoc. Anche se durante l'acquisizione dei pacchetti posso vedere la richiesta e la risposta mDNS, non riesco ad accedere al server per nome. Come se il contenuto della risposta non venisse mai registrato. Qualche idea?
George,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.