Newsgroup: it.comp.os.linux.sys
Titolo: bind9 slave zone transfer non va se non forzando

ciao a tutti
ho un dns master e uno slave per un dominio.
lo slave riceve i notify ma non aggiorna la sua mappa.
perchè?
sul master:
zone "XXX.it" {
        type master;
        file "/etc/bind/XXX.it";
        allow-transfer { IPSLAVE; localhost; };
        notify yes;
  allow-query { any; };
};
e nel file /etc/bind/XXX.it
;
; Zone file for XXX.it
;
;
$TTL 3D
@       IN      SOA     
ns1.YYY.com
. 
webmaster.YYY.com
. (
                        1000000       ; serial, todays date + todays
serial
                        8H              ; refresh, seconds
                        2H              ; retry, seconds
                        4W              ; expire, seconds
                        1D )            ; minimum, seconds
;
                NS      
ns1.YYY.com
.  ; Inet Address of name server
                NS      
ns2.YYY.com
.  ; Inet Address of name server
                MX      10 
smtp1.YYY.com
. ; Primary Mail Exchanger
;
;localhost       A       127.0.0.1
www             A       IPDELWWW
sullo slave:
zone "XXX.it" {
        type slave;
        file "/etc/bind/XXX.it";
        masters { IPMASTER; };
        allow-query { any; };
};
nei log dello slave, se faccio un rndc reload sul master, aggiornando il
seriale, vedo solo:
received notify for zone 'XXX.it'
mentre se faccio sullo slave rndc refresh XXX.it
received control channel command 'refresh XXX.it'
queue_soa_query: zone XXX.it/IN: enter
soa_query: zone XXX.it/IN: enter
refresh_callback: zone XXX.it/IN: enter
refresh_callback: zone XXX.it/IN: serial: new 1000000, old 7
queue_xfrin: zone XXX.it/IN: enter
calling free_rbtdb(XXX.it)
done free_rbtdb(XXX.it)
zone XXX.it/IN: zone transfer finished: success
zone XXX.it/IN: transferred serial 1000000
transfer of 'XXX.it/IN' from 212.110.12.144#53: end of transfer
zone_timer: zone XXX.it/IN: enter
zone_maintenance: zone XXX.it/IN: enter
zone XXX.it/IN: sending notifies (serial 1000000)
qualche idea del perchè?
grazie.
max
 

         allow-transfer { IPSLAVE; localhost; };
a occhio, direi che questa riga debba stare sullo slave e non sul 
master. prova.
ciao

 ciao
No, deve stare sul master.

 
Esatto

 
La configurazione sembra giusta (a parte la direttiva file.. ti ha detto 
Davide perchč).
Quello che non ti č chiaro secondo me, č la direttiva serial...
Se fai una modifica alla zona XXX.it oggi, dovrebbe somigliare a 
2005061301 anzichč 1000000...
Hope this helps..

 ha scritto:

grazie ad entrambi, ho provato, ma il comportamento è lo stesso, a parte
che con "file", quando fa lo zone transfer (forzato) il file viene
aggiornato.
Se non gli dico "file", non aggiorna il file.
in entrambi i casi non fa lo zone
transfer, nè il dig sullo slave (ho aggiunto un www5, www6, etc sul master
per vedere se si propagano...) 

 > Esatto
ah e poi a dire il vero l'ho copiato dall'howto del sito tldp
 
DNS HOWTO Nicolai Langfeldt (....
A slave is simply a nameserver that copies zone files from a master. You
set it up like this: zone "linux.bogus" {
          type slave;
          file "sz/linux.bogus";
          masters { 192.168.196.2; };
};

 Hope this helps..
secondo me il serial è solo un numero appunto seriale, che il dns usa per
stabilire qual è l'informazione più recente in base al confronto fra
numeri interi. quindi anche 1,2,3 vanno bene.
comunque ho seguito il tuo suggerimento ma il comportamento non è
cambiato!

 cambiato!
dopo il notify nei log dello slave c'era un "up to date"? o dici
che mettendo un serial + recente nel master (controllando a mano
il tutto) e dando un reload non va?!
controlla che sia veramente cosi`, eventualmente aggiungere allo
slave (ma dovrebbe funzionare o dire qualcosa di + nei log oltre
al notify)
allow-notify  { IPMASTER; };
transfer-source  { IPMASTER; };
occhio che il dns howto e` per bind8 se non ricordo male

 No, deve stare sul master.
giusto, confondevo con allow-update per gli update dinamici.

 occhio che il dns howto e` per bind8 se non ricordo male
riprovo e ricontrollo!

 riprovo e ricontrollo!
Ma non è che sullo slave hai un serial > di quello del master ?
Max

 Ma non è che sullo slave hai un serial > di quello del master ?
it's coffee time, glielo stiamo dicendo da mo' ;)

 it's coffee time, glielo stiamo dicendo da mo' ;)
non ve l'ho detto perchè mi sembrava banale, ma no, 
slave_serial < master_serial
ogni volta che faccio la prova me ne accerto
 

 > 
aggiungo inoltre che questa notte lo slave si è aggiornato in seguito al
normale scadere del timer di refresh. 
mentre ieri non l'ha fatto all'arrivo del notify. boh! 
potete notare i seriali che ho messo ieri per provare la sequenza
DATA+SERIALE
refresh_callback: zone XXX.it/IN: serial: new 2005061304, old
2005061301 queue_xfrin: zone XXX.it/IN: enter
zone_timer: zone XXX.it/IN: enter
zone_maintenance: zone XXX.it/IN: enter
queue_soa_query: zone XXX.it/IN: enter
soa_query: zone XXX.it/IN: enter
refresh_callback: zone XXX.it/IN: enter
refresh_callback: zone XXX.it/IN: serial: new 2005061304, old
2005061301 queue_xfrin: zone XXX.it/IN: enter
calling free_rbtdb(XXX.it)
done free_rbtdb(XXX.it)
zone XXX.it/IN: zone transfer finished: success
zone XXX.it/IN: transferred serial 2005061304
transfer of 'XXX.it/IN' from IPMASTER#53: end of transfer

ho forse trovato un motivo:
il master ha vari indirizzi ip, il principale è X.X.X.1 ma ns1 è
registrato come X.X.X.2
quindi come master sul server ho messo X.X.X.2 e secondo me il master
quando manda le notifiche le manda come X.X.X.1 e quindi lo slave le
ignora.
infatti ho provato a mettere l'ip X.X.X.1 e va.
ora però, siccome l'indirizzo X.X.X.1 sarebbe per il www, e per il dns ho
registrato un  X.X.X.2, non c'è un modo di dire a bind di usare questo ip?
qualcosa come query-source ?
ciao e grazie a tutti per l'attenzione
cits

cits ha scritto:

A memoria mi pare
query-source address * port 53;
Dove * è l'indirizzo IP che vuoi usare.

cits ha scritto:

notify-source ma a sto punto vai qui e trovi tutto
http://www.bind9.net/manual/bind/9.3.1/Bv9ARM.html

 
http://www.bind9.net/manual/bind/9.3.1/Bv9ARM.html
si infatti l'avevo giusto trovato, ecco la configurazione del master
corretta:
zone "XXX.it" {
        type master;
        file "/etc/bind/XXX.it";
        allow-transfer { SLAVE_IP; localhost; };
        notify-source MASTER_IP;
        notify yes;
  allow-query { any; };
};
grazie a tutti
cits

 Che io sappia l'entry "file" se e' slave non serve ad una mazza.
Su macchine con uptime spaventosi e' vero. Pero' se il server slave viene
riavviato e il master non e' immediatamente raggiungibile almeno hai una
"copia di backup" con cui iniziare a lavorare...
Almeno questo e' quello che ho imparato...
ciao
Michele