Differences between revisions 3 and 4
Revision 3 as of 2015-08-23 15:57:13
Size: 3140
Editor: Kurgan
Comment:
Revision 4 as of 2015-08-23 16:22:02
Size: 6542
Editor: Kurgan
Comment:
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

Samba4/IntegrazioneSambaDnsmasq (last edited 2016-01-03 17:05:42 by Kurgan)