Integrazione in Dnsmasq della risoluzione dei nomi da Samba4 per Active Directory
Questo matrimonio difficile si puo` consumare in piu` modi. Nello specifico:
- Su due macchine diverse, con Dnsmasq come resolver per i client
- Su due macchine diverse, con Samba come resolver per i client
- Sulla stessa macchina, con Dnsmasq come resolver per i client
- Sulla stessa macchina, con Samba come resolver per i client
Due macchine, Dnsmasq come resolver per i client che inoltra le richieste a Samba e/o al DNS upstream del provider
La configurazione semplice per integrare il DNS fornito da Samba 4 per AD dentro al sistema della risoluzione dei nomi e` quella che prevede che Dnsmasq (o altro resolver) sia l' upstream per Samba, e che i client facciano le richieste DNS a Samba. Questo pero` non mi piace, perche` sono un vecchio rompicoglioni che vuole sempre fare di testa sua.
La mia idea e` quella di lasciare Dnsmasq come DNS per i client, e istruirlo a comportarsi come segue:
- Se la query riguarda il dominio locale, prima cerca in /etc/hosts e poi chiedi al DNS di Samba4
- Se la query NON riguarda il dominio locale, chiedi ai server upstream
Una configurazione adatta e` questa: (/etc/dnsmasq.conf)
# per integrare Samba AD (notare il punto all'inizio della stringa del dominio) server=/.dominio.locale/10.66.1.10
E` importante che alcune impostazioni non siano definite, altrimenti Dnsmasq non inoltra le query al server Samba. Le opzioni che non devono essere usate sono:
local=/<dominio>/ filterwin2k stop-dns-rebind
Se si vuole usare stop-dns-rebind occorre consentire con "rebind-ok" la zona che inoltriamo a Samba.
Per fare un test, abilitare il log delle query e poi vedere se Dnsmasq inoltra correttamente a Samba le richieste fatte come indicato nella sezione "Test" della pagina ../ConfigAD
Notare che la risoluzione dovrebbe essere tentata anche dal file hosts locale, e nei log questo si vede quando si abilita il log delle query.
Due macchine, Samba come resolver per i client che inoltra le richieste a Dnsmasq il quale le inoltra al DNS upstream del provider
In questa configurazione, che e` parecchio semplice, Dnsmasq ha il ruolo di server DHCP (volendo) e di cache DNS. Samba ha il ruolo di DNS per la rete interna (i client usano Samba come DNS) e si appoggia a Dnsmasq.
- In Samba, indicare l'indirizzo IP della macchina che esegue Dnsmasq:
dns forwarder = 10.66.1.1
- In Dnsmasq, ricordarsi di indicare ai client del DHCP che il DNS da interrogare non e` l'host su cui gira Dnsmasq (default) ma quello su cui gira Samba:
dhcp-option=6,10.66.1.10
In questo modo Samba rispondera` alle query a cui sa rispondere, e inoltrera` il resto a Dnsmasq. I client chiederanno a Samba di risolvere i nomi. Il limite di questa soluzione e` che se Samba ha problemi anche l'accesso a internet di fatto smette di funzionare, e che Samba e` molto limitata nella configurabilita` del DNS interno (dove "molto limitata" significa che NON C'E` ALCUNA CONFIGURAZIONE POSSIBILE).