Integrazione in Dnsmasq della risoluzione dei nomi da Samba4 per Active Directory

Questo matrimonio difficile si puo` consumare in piu` modi. Nello specifico:

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:

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 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).

Una sola macchina, Dnsmasq come resolver per i client che inoltra le richieste a Samba e/o al DNS upstream del provider

Qui la difficolta` e` che dobbiamo fare convivere Dnsmasq con Samba sulla stessa macchina. Come per il primo caso, Dnsmasq ha il ruolo di server DHCP (volendo) e di DNS per i client sulla rete interna, e inoltra a Samba le richieeste di risoluzione dei nomi che riguardano il funzionamento di AD.

Dato che i due convivono sulla stessa macchina, devo prima di tutto dare un alias alla scheda di rete della macchina che serve i client, in modo che Samba possa bindarsi a un alias e Dnsmasq all'altro alias. Non posso usare un paio di alias locali (127.0.0.x) perche` Dnsmasq, per fare da DHCP, deve potersi bindare alla scheda di rete sulla quale si trovano i client. Configuriamo quindi due alias:

Una sola macchina, Samba come resolver per i client che inoltra le richieste a Dnsmasq il quale le inoltra al DNS upstream del provider

Qui la difficolta` e` che dobbiamo fare convivere Dnsmasq con Samba sulla stessa macchina. 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.

Dato che i due convivono sulla stessa macchina, devo prima di tutto dare un alias alla scheda di rete della macchina che serve i client, in modo che Samba possa bindarsi a un alias e Dnsmasq all'altro alias. Non posso usare un paio di alias locali (127.0.0.x) perche` Dnsmasq, per fare da DHCP, deve potersi bindare alla scheda di rete sulla quale si trovano i client. Configuriamo quindi due alias: