3140
Comment:
|
6542
|
Deletions are marked like this. | Additions are marked like this. |
Line 58: | Line 58: |
== 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: * eth0 con ip 192.168.5.1 (per Samba) * eth0:0 con ip 192.168.5.2 (per Dnsmasq) * In Dnsmasq, devo bindare una sola interfaccia, e devo istruirlo a inviare a Samba le richieste che riguardano AD. {{{ # per integrare Samba AD (notare il punto all'inizio della stringa del dominio) server=/.dominio.locale/192.168.5.1 # per bindarsi alla sola interfaccia dedicata a Dnsmasq listen-address=192.168.5.2 bind-interfaces dhcp-option=6,192.168.5.2 }}} * Sempre in Dnsmasq 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. * In Samba, dobbiamo dire a Samba di usare SOLO eth0 e non l'alias. {{{ interfaces = lo 192.168.5.1 bind interfaces only = Yes }}} * Per finire, dobbiamo dire alla macchina (in /etc/resolf.conf) che il DNS e` Dnsmasq {{{ nameserver 192.168.5.2 }}} == 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: * eth0 con ip 192.168.5.1 (per Samba) * eth0:0 con ip 192.168.5.2 (per Dnsmasq) * In Samba, dobbiamo dire a Samba di usare SOLO eth0 e non l'alias, e di chiedere a Dnsmasq di risolvere i nomi upstream. {{{ interfaces = lo 192.168.5.1 bind interfaces only = Yes dns forwarder = 192.168.5.2 }}} * In Dnsmasq, dobbiamo bindare solo nostra interfaccia, e indicare ai client del DHCP che il DNS da interrogare e` invece l'interfaccia di Samba: {{{ listen-address=192.168.5.2 bind-interfaces dhcp-option=6,192.168.5.1 }}} * Per finire, dobbiamo dire alla macchina (in /etc/resolf.conf) che il DNS e` Samba {{{ nameserver 192.168.5.1 }}} |
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).
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:
- eth0 con ip 192.168.5.1 (per Samba)
- eth0:0 con ip 192.168.5.2 (per Dnsmasq)
- In Dnsmasq, devo bindare una sola interfaccia, e devo istruirlo a inviare a Samba le richieste che riguardano AD.
# per integrare Samba AD (notare il punto all'inizio della stringa del dominio) server=/.dominio.locale/192.168.5.1 # per bindarsi alla sola interfaccia dedicata a Dnsmasq listen-address=192.168.5.2 bind-interfaces dhcp-option=6,192.168.5.2
Sempre in Dnsmasq 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.
- In Samba, dobbiamo dire a Samba di usare SOLO eth0 e non l'alias.
interfaces = lo 192.168.5.1 bind interfaces only = Yes
- Per finire, dobbiamo dire alla macchina (in /etc/resolf.conf) che il DNS e` Dnsmasq
nameserver 192.168.5.2
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:
- eth0 con ip 192.168.5.1 (per Samba)
- eth0:0 con ip 192.168.5.2 (per Dnsmasq)
- In Samba, dobbiamo dire a Samba di usare SOLO eth0 e non l'alias, e di chiedere a Dnsmasq di risolvere i nomi upstream.
interfaces = lo 192.168.5.1 bind interfaces only = Yes dns forwarder = 192.168.5.2
- In Dnsmasq, dobbiamo bindare solo nostra interfaccia, e indicare ai client del DHCP che il DNS da interrogare e` invece l'interfaccia di Samba:
listen-address=192.168.5.2 bind-interfaces dhcp-option=6,192.168.5.1
- Per finire, dobbiamo dire alla macchina (in /etc/resolf.conf) che il DNS e` Samba
nameserver 192.168.5.1